Pagina 1 van 1

Fout in php

Geplaatst: 13 okt 2004, 20:36
door Speedyboy

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:

Geplaatst: 13 okt 2004, 21:59
door mosymuis
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!";
	}
}

?>

Geplaatst: 17 okt 2004, 17:15
door Speedyboy
Bedankt, het werkt :thumb: !