Wo ist der Fehler?!

Arster-Boy

Erfahrenes Mitglied
Nach der <form> wird das echo irgendwie nicht beendet und man sieht den ganzen Code im Browser:
PHP:
if($login == "") {
	if(empty($_POST['nick'])) {
		echo '<form method="post">Wenn du dein Passwort vergessen hast, kannst du dir ein neues zuschicken lassen.<br /> Trage dazu deinen Nick hier ein: <input type="text" name="nick" 	 /><input type="submit" value="Passwort anfordern" /></form> ';
	} else {
		$nick = $_POST['nick'];
		$query = "SELECT * FROM user WHERE nick = '$nick'";
		$sql = mysql_query($query);
		while ($ds = mysql_fetch_object($sql)) {
 			$nick2 = $ds -> nick;
			$mail = $ds -> mail;
		}

Die if-Struktur scheint falsch, da ich nur einen Teil kopiert habe.

EDIT:
Der Fehler tritt ab der dritten Zeile auf.
 
Zuletzt bearbeitet:
Versuchs mal so:

PHP:
if($login == "") {
    if(empty($_POST['nick'])) {
        echo '<form method="post">Wenn du dein Passwort vergessen hast, kannst du dir ein neues zuschicken lassen.<br /> Trage dazu deinen Nick hier ein: <input type="text" name="nick" /><input type="submit" value="Passwort anfordern" /></form>';
    } else {
        $nick = $_POST['nick'];
        $query = "SELECT * FROM user WHERE nick = '$nick'";
        $sql = mysql_query($query);
        while ($ds = mysql_fetch_object($sql)) {
             $nick2 = $ds -> nick;
            $mail = $ds -> mail;
        }
 
Wo ist dort die Änderung, außer dass dort der Tabsprung weg ist. Es funktioniert leider immer noch nicht. Ist übrigens auf dem Localhost.
 
Hallo,
euch beiden ist schon aufgefallen das die erste if-Bedingung und die zweite else nicht geschlossen ist oder?
PHP:
if($login == "") {
    if(empty($_POST['nick'])) {
        echo '<form method="post">Wenn du dein Passwort vergessen hast, kannst du dir ein neues zuschicken lassen.<br /> Trage dazu deinen Nick hier ein: <input type="text" name="nick" /><input type="submit" value="Passwort anfordern" /></form>';
    } else {
        $nick = $_POST['nick'];
        $query = "SELECT * FROM user WHERE nick = '$nick'";
        $sql = mysql_query($query);
        while ($ds = mysql_fetch_object($sql)) {
             $nick2 = $ds -> nick;
            $mail = $ds -> mail;
        }
    }
}

Gruß
KaiBone
 
Versuchs doch einfach mal folgendermaßen um zu Testen ob HTML richtig dargestellt wird.

PHP:
if($login == "") { 
    if(empty($_POST['nick'])) { 
        ?>
<form method="post">Wenn du dein Passwort vergessen hast, kannst du dir ein neues zuschicken lassen.<br /> Trage dazu deinen Nick hier ein: <input type="text" name="nick" /><input type="submit" value="Passwort anfordern" /></form>
<?php 
    } else { 
        $nick = $_POST['nick']; 
        $query = "SELECT * FROM user WHERE nick = '$nick'"; 
        $sql = mysql_query($query); 
        while ($ds = mysql_fetch_object($sql)) { 
             $nick2 = $ds -> nick; 
            $mail = $ds -> mail; 
        }

Also ganz ohne ECHO... einfach nur so ausgeben lassen.
Ich habe dein HTML Code übrigens getestet. der ist voll und ganz in ordnung.
 
Jetzt bekomm ich die Meldung, dass die If-Struktur falsch sei.
Parse error: syntax error, unexpected '}' in Datei on line 21

Ich prüf die Struktur, wenn ich keinen Fehler finde, schicke ich hier die ganze Quelldatei.
 
Das kann ich mir aber gar nicht erklären:
PHP:
<span class="uberschrift">Passwort vergessen</span>
<p>
<?
function generatePW($length=8) {         
	$dummy = array_merge(range('0', '9'), range('a', 'z'), range('A', 'Z'), array('#','&','@','$','_','%','?','+')); // shuffle array         
	mt_srand((double)microtime()*1000000);                
	for ($i = 1; $i <= (count($dummy)*2); $i++) {           
 		$swap = mt_rand(0,count($dummy)-1);            
 		$tmp = $dummy[$swap];           
 		$dummy[$swap] = $dummy[0];            
 		$dummy[0] = $tmp;        
	}                 
	return substr(implode('',$dummy), 0, $length);    
}     

if($login == "") { 
    	if(empty($_POST['nick'])) { 
        	echo '<form method="post">Wenn du dein Passwort vergessen hast, kannst du dir ein neues zuschicken lassen.<br /> Trage dazu deinen Nick hier ein: <input type="text" name="nick" /><input type="submit" value="Passwort anfordern" /></form>';
    	} else {
		$nick = $_POST['nick']; 
        	$query = "SELECT * FROM user WHERE nick = '$nick'"; 
        	$sql = mysql_query($query); 
        	while ($ds = mysql_fetch_object($sql)) { 
             		$nick2 = $ds -> nick; 
            		$mail = $ds -> mail; 
        	}
		if ($nick2 != "") {
			$passu = generatePW(8);
			$passun = md5($passu);
			mail($mail, "Dein neues Passwort", "text", "From: gruseldich.de");
			echo 'Dir wurde eine Mail mit deinem neuen Passwort zugeschickt! Klicker hier, um zur Startseite zu gelangen: <a href="index.php?site=home">Home</a>';
   			$query = "UPDATE user SET pass = '$passun' WHERE nick = '$nick2'";
   			$sql = mysql_query($query);
		}
	}
} else {
	echo "Du bist eingeloggt...";
}
?>
</p>
 
Zuletzt bearbeitet:
Zurück