Fout in php

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Plaats reactie
Gebruikersavatar
Speedyboy
Berichten: 69
Lid geworden op: 12 mei 2004, 21:21
Locatie: Markegem
Contacteer:

Fout in php

Bericht door Speedyboy » 13 okt 2004, 20:36

Code: Selecteer alles

<? 
	if($action=="subscribe")
	{ 
	if($aanafmelden=="Aanmelden")
	{ 
    if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$email)){ 
      header("location:$phpself?error=1");exit; 
    }
	else{ 
    $file=file("emaillist.txt"); 
    for($i=0;$i<count($file);$i++)
	{ 
    if(eregi("$email",$file[$i]))
	{ 
    header("location:$phpself?error=2");exit; 
    }; 
    }; 
    $bestand=fopen("emaillist.txt","a"); 
    fwrite($bestand,"$email\n"); 
    fclose($bestand); 
    mail("$email","Succesvol aangemeld","Je bent succesvol aangemeld bij de nieuwsbrief!"); 
    header("location:$phpself?error=3");exit; 
    }; 
  	}
  	elseif($aanafmelden=="Afmelden")
	{ 
    if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$email)){ 
    header("location:$phpself?error=1");exit;}; 
    $bestand=file("emaillist.txt","r"); 
    for($i=0;$i<count($bestand);$i++)
	{ 
    if(!eregi("$email",$bestand[$i])){ 
        $list.=$bestand[$i]; 
    }; 
    }; 
    $bestand=fopen("emaillist.txt","w"); 
    fwrite($bestand,"$list"); 
    fclose($bestand); 
    mail("$email","Succesvol afgemeld","Je bent succesvol afgemeld bij de nieuwsbrief!"); 
    header("location:$phpself?error=4");exit; 
  	}; 
	}
	else{ 
	if($error==1)
	{ 
  	echo"Het email adres is niet goed!"; 
	}
	elseif($error==2){ 
  	echo"Je bent al aangemeld!"; 
	}
	elseif($error==3){ 
  	echo"Je bent succesvol aangemeld!"; 
	}elseif($error==4){ 
 	echo"Je bent succesvol afgemeld!"; 
	}; 
?>
Wat is er mis aan deze php code?

De fout is:

fout op regel *** = laatste regel waar er </html> staat.

Aan de html ligt het niet, want zonder dat scriptje werkt het wel.

Hulp is welkom :thumb:

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 13 okt 2004, 21:59

Heb je dit zelf geschreven? Het overzicht is totaal kwijt, exit na een header redirect regel is nutteloos en een puntkomma na een accollade } is niet nodig.

De fout kwam door een vergeten if-einde. Zo is hij weg, als ik de indeling goed begrepen heb klopt hij zo:

Code: Selecteer alles

<?

if( $action=="subscribe" )
{
	if( $aanafmelden=="Aanmelden" )
	{
		if( !eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$email) )
		{
		header("location:$phpself?error=1");
		}

	} else {

		$file=file("emaillist.txt");
		for( $i=0;$i<count($file);$i++ )
		{
			if( eregi("$email",$file[$i]) )
			{
				header("location:$phpself?error=2");
			}
		};
		$bestand=fopen("emaillist.txt","a");
		fwrite($bestand,"$email\n");
		fclose($bestand);
		mail("$email","Succesvol aangemeld","Je bent succesvol aangemeld bij de nieuwsbrief!");
		header("location:$phpself?error=3");
	}
	
} elseif( $aanafmelden=="Afmelden" ) {

	if( !eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$email) )
	{
		header("location:$phpself?error=1");
	}
	$bestand=file("emaillist.txt","r");
	for( $i=0;$i<count($bestand);$i++ )
	{
		if(!eregi("$email",$bestand[$i]))
		{
			$list.=$bestand[$i];
		}
	}
	$bestand=fopen("emaillist.txt","w");
	fwrite($bestand,"$list");
	fclose($bestand);
	mail("$email","Succesvol afgemeld","Je bent succesvol afgemeld bij de nieuwsbrief!");
	header("location:$phpself?error=4");

} else {

	if( $error==1 )
	{
		echo"Het email adres is niet goed!";

	} elseif( $error==2 ) {

		echo"Je bent al aangemeld!";

	} elseif( $error==3 ) {

		echo"Je bent succesvol aangemeld!";

	} elseif( $error==4 ) {

		echo"Je bent succesvol afgemeld!";
	}
}

?>

Gebruikersavatar
Speedyboy
Berichten: 69
Lid geworden op: 12 mei 2004, 21:21
Locatie: Markegem
Contacteer:

Bericht door Speedyboy » 17 okt 2004, 17:15

Bedankt, het werkt :thumb: !

Plaats reactie