Problem mit Mail Funktion
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
anzahl
aussehen
beitrag
betreff
datensatz
email
empfnger
erste
falsch mache
fehler
mengen
mu
parameter
pawort
quelltext
status
test
username
zeile
-
Hallo,
ich habe nun einen Quelltext geschrieben, in dem man ein neues Passwort bekommen soll. Man schreibt in ein Formular Username und E-Mail und dann soll ein neues Passwort zugeschickt werden. Das klappt auch so an sich. Doch ich habe noch ein Problem. Ich bekomme das als Antwort, auch wenn ich nichts rein schreibe:
Warning: mail() expects parameter 1 to be string, resource given in /home/webpages/lima-city/jensico-airlines/html/pw.php on line 34
Ein neues Passwort wurde ihnen per E-Mail zugesendet.
Hier mein Quelltext:
<?php $verbindung = mysql_connect("mysql.lima-city.de", "USER72063" , "") or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); mysql_select_db("") or die ("Datenbank konnte nicht ausgewählt werden"); $username = $_POST['username']; $email = $_POST['email']; $passwort = test; $password = md5($passwort); $name = mysql_query("SELECT id FROM Geheim WHERE username LIKE '$username'"); $email = mysql_query("SELECT id FROM Geheim WHERE email LIKE '$email'"); $menge = "$name - $email"; if($menge == 0) { $aendern = "UPDATE Geheim SET password='$password' WHERE username='$username' AND email='$email'"; $aendernn = mysql_query($aendern); if($aendernn == true) { $empfaenger = $email; $betreff = "Neues Passwort"; $from = "From: Jensico Airlines"; $text = "Sie haben nun ein neues Passwort angefordert. Ihr neues Passwort lautet: test Ich bitte sie das Passwort so schnell wir möglich im Privaten Bereich zu ändern. Mfg Jens Behnke"; mail($empfaenger, $betreff, $text, $from); if(mail == true) { echo "Ein neues Passwort wurde ihnen per E-Mail zu gesendet."; } } else { echo "Ihre Angaben waren Falsch."; } } ?>
Kann mir jemand sagen, was ich falsch mache?
Beitrag geaendert: 18.4.2007 17:39:31 von jensico-airlines -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hmm auf den ersten Blick würde ich sagen... das $from auch eine eMail Adresse enthalten müsste...
also der Art: $from = 'From: Jensico Airlines <info@domain.de>';
...weiß allerdings nicht ob´s der einzigste Fehler ist.
Grüßle
PS: ..und Zeile 35 geht auch nicht... das muß etwa wie folgt aussehen...
<?php $status = mail($rcpt, $subj, $text, $header); if ($status == true) { echo "gesendet"; } else { echo "Fehler"; } ?>
ach und deine Queries würde ich auch anders prüfen...
<? $res = mysql_query($query); if ( !is_resource($res)) { echo "Fehler"; exit; } ?>
Zeile 16 geht auch nicht...
<?php $query1 = "Select * from ...."; $res1 = mysql_query($query1); $anz1 = mysql_num_rows($res1); $query2 = "Select * from ...."; $res2 = mysql_query($query2); $anz2 = mysql_num_rows($res2); $diff = $anz1 - $anz2; // aber warum ziehst du die Anzahl der Nutzernamen von der Anzahl der eMail Adressen ab? // Willst du nicht 1 Datensatz haben der username und email enthält ? // Dann müsste das so aussehen... $query = "Select id from Geheim where username like '".$username"' and email like '".$email."';"; $res = mysql_query($query); $anz = mysql_num_rows($res); if ($anz == 0) { echo "kein Datensatz gefunden"; } if ($anz > 1) { echo "Fehler: zu viele Datensätze"; } ?>
Zeile 11 soll wahrscheinlich heißen $passwort = "test"; oder?
Grüßle
Beitrag geaendert: 18.4.2007 18:27:18 von scout -
Du belegst $email zweimal.
Zuerst mit der $_POST-Variable, die die Mailadresse enthält und später hast du nochmal ein Query, das $email heißt: $email = mysql_query('SELECT id FROM...
Somit kann er die Mail nicht senden, das $email erstens keine Adresse mehr enthält und zweitens nicht mal mehr ein String ist. Deshalb auch die Fehlermeldung. -
Danke, jetzt klappt es.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage