Fehler in der if/ elseif Schleife!

icefire

Erfahrenes Mitglied
Guten Abend!
Ich habe ein Skript, das die Änderung der Emailadresse in die Datenbank eintragen soll. Leider wird der Eintrag aber nicht vorgenommen! Die Email wird vorher noch überprüft - die Überprüfung läuft auch. Und wenn ich nur die Eintragung ohne Überprüfung vornehme, werden die Daten auch übermittelt. Diesen Code nutze ich auch für ein anderes Skript - allerdings ohne Session! Ich vermute den Fehler ja bei }elseif($kontakt != 1){, doch ich stehe aufm Schlauch! ^^


Die Schleife sieht wie folgt aus:
PHP:
if ($_SESSION[user_id] == ""){die("Die ID wurde nicht übermittelt!");}
	else{
	
if($_REQUEST["action"] == 'change'){
	
if($_POST[contc_mail]==''){
	$kontakt = 1;
	echo'Es wurde keine Mail angegeben';}
		
if($_POST[contc_mail]!=$_POST[contc_mail2]){
	$kontakt = 1;
	echo'Die angegebenen Mails stimmen nicht überein.';}
			
if (!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*". "@([a-z0-9]+([\.-][a-z0-9]+))*$",$_POST[contc_mail])){
	$kontakt = 1;  
	echo'Die angegebene Mailadresse '.$_POST[contc_mail].' ist ungültig.';}
			
if($kontakt == 1){
   echo'<a href="index.php?file=cge_mail&user_id='.$_SESSION[user_id].'">Zurück</a>
       ';}

}elseif($kontakt != 1){

/*
Verbindung zur Datenbank, Update, usw.
*/
	}	   
}

Kann mir da jemand einen kleinen Tip geben? :)
 
jup

PHP:
if ($moep == 1) {
  $blub = 1;
} else if ($moep == 2) (
  $blub = 2;
} else if ($moep == 3) {
  $blub = 3;
}

Verstanden? ;)
 
Ja, Dank dir! ;-)

PHP:
if ($_SESSION[user_id] == ""){die("Die ID wurde nicht übermittelt!");}
	else if($_REQUEST["action"] == 'change'){ /* usw. */
 
Falls das Thema damit geklaert ist denk bitte daran den Thread als erledigt zu markieren.

Uebrigens solltest Du Dir angewoehnen bei Arrays mit assoziativem Index die String als solche zu markieren (mit '' oder "") um Kollisionen mit evtl. vorhandenen Konstanten zu vermeiden.

Der Code
PHP:
echo $mein_array[bla];
funktioniert in der Regel zwar, da PHP so kulant ist die nicht existente Konstante bla als String zu behandeln, aber wenn es eine Konstante bla gibt kann das fuer schlecht auffindbare Fehler sorgen.
Weiterhin wird Dir bei dieser Variante eine Warning oder Notice (ich tendiere zur Notice) geworfen wenn das Error-Reporting entsprechend eingestellt ist.
Die sauberere Variante ist auf jeden diese:
PHP:
echo $mein_array['bla']
 
Zurück