Fehlermeldungen genau anzeigen lassen.

  • Themenstarter Themenstarter joky_joky
  • Beginndatum Beginndatum
J

joky_joky

PHP:
<?
	
if ($gesendet) {

if ($username == "" OR $pwd == "" OR $nn == "" OR $vn == "" OR $email == "" OR $land == "" OR $plz == "" OR $ort == "")
    {header ("Location: ../../mainregistration.php?fehler");}
	
else {

  	$dbconnect = mysql_connect("$host","$user","$pass");

  	mysql_select_db("$database");
  	
  	$eintrag  = "INSERT INTO $table (Username, Kennwort, Nachname, Vorname, Email, Land, PLZ, Ort) VALUES ";
  	$eintrag .= "('$username', MD5('$pwd'), '$nn', '$vn', '$email', '$land','$plz', '$ort')";
  
  	$eintragen = mysql_query($eintrag);
  
  	echo "Sie haben sich erfolgreich angemeldet";
  
  	mysql_close($dbconnect);
	}
}

?>


So dies ist mein Code aber ich habe ein Problem wie hier zu sehen ist schaut er nach ob alle Felder richtig ausgefüllt worden sind.
Ist auch gut so nun soll er noch in der Datenbank nachschauen ob dort schon ein Eintrag vorhanden ist mit dem gleichen Usernamen oder der E-Mail Adresse und wenn ja eine Fehlermeldung in der vorherigen Seite anzeigen. z.B. Der Username wird schon verwendet, bitte benutze einen anderen. oder Diese E-Mail Adresse wird schon verwendet bitte benutze eine andere.

So wenn mir jetzt jemand sagen kann wie ich des hinbekomme wäre ich sehr dankbar.
Denn ich habe keine Ahnung wie des gehen sollte habe es mit If Abfragen probiert die mit Headern arbeiten also so

header ("Location: ../../mainregistration.php?fehler");
blos wenn ich mehrere solcher Abfragen mache kommt immer dies

Warning: Cannot modify header information - headers already sent by (output started at
/blabla/bla/bla/pages/includes/registration.php:17) in /blabla/bla/bla/pages/includes/registration.php on line 29

Kann mir jemand helfen MfG Joky_Joky
 
Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob normale HTML Tags, leere Zeilen in einer Datei oder von PHP. Ein weit verbreiteter Fehler ist mittels include(), require(), oder anderen Dateizugriffsmethoden Code zu lesen, und so unbewusst Leerzeichen oder Leerzeilen auszugeben, bevor header() aufgerufen wird. Das gleiche Problem besteht auch bei Verwendung einer einzigen PHP/HTML Datei.
Anmerkung: In PHP 4 können Sie dieses Problem umgehen, indem Sie Output Buffering benutzen (mit dem Overhead, dass alle Ihre Ausgaben an den Browser gepuffert werden, bis Sie diese Senden). Um dies zu tun, verwenden Sie in Ihrem Skript ob_start() und ob_end_flush(), oder setzten die Konfigurationsdirektive output_buffering in der php.ini bzw. in den Server Konfigurationsdateien.

Weitere Informationen:
--> [phpf]header[/phpf]
 
Das Problem ist das schon eine Ausgabe an Textt erfolgt ist und du deswegen keinen header mehr senden kannst.

Zu denem Konstrukt, um abzufragen ob irgendeine Variable keinen Wer hat würde ich das so machen
PHP:
if( !$variable) oder if( empty($variable) )

Um nun die einzelnen Felder anzufragen würde ich ein if-elseif Konstrukt vorschlagen
PHP:
if( !$var1 )
     header("LOcation: mainregistration.php?fehlerfeld=var1");
elseif( !$var2 )
          header("LOcation: mainregistration.php?fehlerfeld=var2");
....

Dann kannst du in mainregistration.php enfach das fehlerfeld abfragen und dementsprechen sagen feld x wurde falsch ausgeeben.
 
Danke schonmal für die hilfe gerade.

das mit dem elseif habe ich verstanden und jetzt gibt er mir auch immer das richtige aus aber wenn nun 2 felder leer gelassen wurden musten ja 2 fehlermeldungen kommen aber es kommt nur eine
wie kann ich diese problem noch lösen?
 
Zurück