mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 22.12.2004, 23:49   #1
TP-Junior
 
Registriert seit: Dec 2004
webhero macht alles soweit korrekt

Passwort vergessen Script


Hallo,ich hoffe mir kann jemand helfen.
Und zwar ich habe ein Memberlogin Script und möchte da gerne eine Passwort vergessen funktion einbauen.
Der User soll an der E-mail adresse identifiziert werden und dann das Passwort aus der MySQL Datenbank per e-mail erhalten.
Kann mir da jemand mal sowas schreiben??? Wäre ganz nett....

Hier der aufbau der Datenbank falls benötigt
Code:
CREATE TABLE users (
  userID int(3) unsigned NOT NULL auto_increment,
  username varchar(80) NOT NULL default '',
  login varchar(30) NOT NULL default '',
  pwd varchar(30) NOT NULL default '',
  email varchar(80) NOT NULL default '',
  PRIMARY KEY  (userID),
  UNIQUE KEY userID (userID),
  KEY userID_2 (userID)
) TYPE=MyISAM;
Vielen Dank

Webhero

Geändert von webhero (22.12.2004 um 23:51 Uhr).
webhero ist offline   Mit Zitat antworten


Alt 22.12.2004, 23:57   #2
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
für 40 tacken schreib ichs dir
pauel ist offline   Mit Zitat antworten
Alt 23.12.2004, 00:00   #3
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Naja, generell ist das ja nur ein

SELECT pwd FROM users where email = '$gesendete_email' LIMIT 0, 1

Mit diesem Query bekommst du das Passwort, mit der PHP Funktion mail(); kannst du das Passwort dann per email versenden! Kurz noch nen HTML Formular dazu und in weniger als 2 Minuten ist das Skript fertig^^

Ich sehe da jetzt kein großes Problem! Problematischer würde es dann schon werden, wenn du in der DB nicht das Passwort selber speicherst, sondern lediglich den Hash. Dann musst du dem User halt ein neues Passwort generieren lassen und zuschicken, oder sowas in der Art!
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

Geändert von Dennis The Menace (23.12.2004 um 00:02 Uhr).
Dennis The Menace ist offline   Mit Zitat antworten
Alt 23.12.2004, 00:12   #4
TP-Junior
 
Registriert seit: Dec 2004
webhero macht alles soweit korrekt
Hallo,
ok das mit dem SQL befehl habe ich nun verstanden aber irgendwie muss ich auch das resultat von der Datenbank wiedergeben damit es in der E-mail auch angegeben wird.Wäre nett wenn du mir mal das ganze schreiben könntest wie es dann aussehen muss.

Danke

webhero
webhero ist offline   Mit Zitat antworten
Alt 23.12.2004, 00:37   #5
TP-Junior
 
Registriert seit: Dec 2004
webhero macht alles soweit korrekt
Also ich hab es nun mal so gemacht:
PHP-Code:
<?
//Verbinden zum Server 
    
mysql_connect("localhost","benutzer","passwd") or die("Connect nicht möglich: ".mysql_error()); 
//Daten holen 
    
$sql "SELECT pwd from users WHERE email ='$email' LIMIT 0,1"

  
$result mysql_db_query('database',$sql) or die(mysql_error()); 
    
$row mysql_fetch_assoc($result);

$subject "Passwortanfrage";
$text "Dein Passwort lautet: echo "$result";

mail($email, $subject, $text, "
From"Admin") or die("Die Mail konnte nicht versendet werden.");
?>
Die Datenbank sachen habe ich so raus genommen das war absicht.
Aber das Problem ist das ich dabei die ganze zeit ein parse error kriege, und ich weiss nicht warum.
Wäre nett wenn da mal jemand schaut.

Webhero

Geändert von webhero (23.12.2004 um 15:58 Uhr).
webhero ist offline   Mit Zitat antworten
Alt 23.12.2004, 00:47   #6
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
PHP-Code:
<?
//Verbinden zum Server
    
mysql_connect("localhost","benutzer","passwd") or die("Connect nicht möglich: ".mysql_error());
//Daten holen
    
$sql "SELECT pwd from users WHERE email ='$email' LIMIT 0,1";

  
$result mysql_db_query('database',$sql) or die(mysql_error());
    
$row mysql_fetch_assoc($result);

$subject "Passwortanfrage";

$text "Dein Passwort lautet: $result";
mail($email$subject$text"From: Admin") or die("Die Mail konnte nicht versendet werden.");
?>
Naja, du hast da jetzt erschreckend einfache Syntaxfehler reingebracht. Ein String in PHP beginnt immer mit einem ", und endet mit einem ". Wenn du dazwischen Gänsefüßchen ausgeben willst, musst du \" verwenden, sonst gibts den parse error.

PHP-Code:
echo "So kann man \" Diese \" tollen zeichen ausgeben"
Im Anhang habe ich jetzt einfach mal einen Screenshot angehängt, da siehst du, wie das Syntax Highlighting den Fehler schon erkenntlich macht!
Miniaturansicht angehängter Grafiken
passwort-vergessen-script-unbenannt-2.gif  
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Dennis The Menace ist offline   Mit Zitat antworten
Alt 23.12.2004, 00:54   #7
TP-Junior
 
Registriert seit: Dec 2004
webhero macht alles soweit korrekt
Hallo,
also einen parse error bekomme ich nicht mehr.Soweit scheint es ja geklappt zu haben.
Nur ich bekomme keine E-mail gesendet komischerweise
Ich hab wirklich noch nie so ein Passwortanfrage script geschrieben.

Weiss da jemand ne Idee?

webhero
webhero ist offline   Mit Zitat antworten
Alt 23.12.2004, 01:27   #8
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Naja, du musst die Variable $email auch einfach mal übergeben. Außerdem fehlt noch eine Fehlerüberprüfung, nämlich der Fall, der ausgeführt werden soll, wenn die Emailadresse nicht in der Datenbank steht!

Dein nächster Schritt muss jetzt erstmal sein, dass Formular zu kreieren, wo der User, der sein passwd vergessen hat, seine emailadresse eintragen kann.

Code:
<form action="zielZurphpdatei.php" method="post">
Ihre eMail-Adresse: <input type="name" name="email" />
</form>
Hier mal ganz primitiv gelöst.

Tja, jetzt solltest du; ist für einen Anfänger das einfachste, die Variable eMail abfangen. Das geht am einfachsten, in dem du in der ersten Zeile des PHP Codes ein

PHP-Code:
$email $_POST["email"]; 
Schreibst. Zusammen mit den rot markierten Wörtern im HTML Code sollt das eigentlich mehr oder weniger selbsterklärend sein. Dein nächster Schritt müsste dann sein, auf:

http://php.net/mysql_fetch_assoc zu gucken, ob das die Funktion ist, die du brauchst. Und, ob du sie richtig verwendet. Beides ist bei dir im Moment nämlich noch nicht der Fall. Daher würde ich mal

http://php.net/mysql_Result empfehlen. Da sind auch viele Beispiele, wie man diese Funktion verwendet!
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Dennis The Menace ist offline   Mit Zitat antworten
Alt 23.12.2004, 03:36   #9
TP-Junior
 
Registriert seit: Dec 2004
webhero macht alles soweit korrekt
Hallo,
danke es klappt nun soweit.Ich habe es nun folgendermassen
PHP-Code:
<?php
$email 
$_POST["email"];
$login $_POST["login"];
 
$conn mysql_connect("localhost""$name""$passwd");

if (!
$conn) {
   echo 
"Keine Verbindung zur DB: " mysql_error();
   exit;
}

if (!
mysql_select_db("$database")) {
   echo 
"Kann $database nicht auswählen: " mysql_error();
   exit;
}

$sql "SELECT pwd FROM users WHERE email ='".$email."' AND login ='".$login."' LIMIT 0,1";

$result mysql_query($sql);

if (!
$result) {
   echo 
"Anfrage ($sql) konnte nicht ausgeführt werden : " mysql_error();
   exit;
}

if (
mysql_num_rows($result) == 0) {
   echo 
"Die angegebene E-mail adresse oder der Username konnte keinem Benutzer zugeordnet werden!";
   exit;
}

while (
$row mysql_fetch_assoc($result)) {
   echo 
$row["pwd"];
}

mysql_free_result($result);

?>
Läuft auch alles wunderbar, aber es gibt das Passwort direkt aus.Wie kann ich das nun in eine E-mail fassen?

Webhero

Geändert von webhero (23.12.2004 um 15:59 Uhr).
webhero ist offline   Mit Zitat antworten
Alt 23.12.2004, 09:25   #10
TP-Insider
 
Registriert seit: May 2002
Ort: Baden - Württemberg Nähe Stuttgart
StSnake ist auf einem guten Weg
Per email verschicken kannst du es mit der mail-Funktion von PHP

http://php3.de/mail

Gruss
Steffen
__________________
Man kann niemanden überholen, wenn man in seine Fußstapfen tritt.
StSnake ist offline   Mit Zitat antworten
Alt 23.12.2004, 11:57   #11
TP-Junior
 
Registriert seit: Dec 2004
webhero macht alles soweit korrekt
Hallo ich habe jetzt den letzten absatz von der ausgabe geändert.Also von
PHP-Code:
if (mysql_num_rows($result) == 0) {
   echo 
"Die angegebene E-mail adresse oder der Username konnte keinem Benutzer zugeordnet werden!";
   exit;
}

while (
$row mysql_fetch_assoc($result)) {
   echo 
$row["pwd"];
}

mysql_free_result($result);

?> 
auf
PHP-Code:
if (mysql_num_rows($result) == 0) {
   echo 
"Die angegebene E-mail adresse oder der Username konnte keinem Benutzer zugeordnet werden!";
   exit;
}
$row[pwd] = $passwort
mail
($_POST[email], Passwort$passwort"From: Admin")
  or die(
"Die Mail konnte nicht versendet werden.");

?> 
Kann das so gehen ?

webhero

// Edit ... die frage hat sich erledigt ... gab nur wieder parse error, kann mich jemand korrigieren ?

Geändert von webhero (23.12.2004 um 16:00 Uhr).
webhero ist offline   Mit Zitat antworten
Alt 23.12.2004, 12:37   #12
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Na PHP hat Dir bestimmt gesagt, in welcher Zeile der Fehler ist - ich könnte wetten, er meint das fehlende ; hier:

$row[pwd] = $passwort;
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 23.12.2004, 13:00   #13
TP-Junior
 
Registriert seit: Dec 2004
webhero macht alles soweit korrekt
Jetzt habe ich den Fehler.Es funktioniert super.Es musste so sein
PHP-Code:
if (mysql_num_rows($result) == 0) {
   echo 
"Die angegebene E-mail adresse oder der Username konnte keinem Benutzer zugeordnet werden!";
   exit;
}

while (
$row mysql_fetch_assoc($result)) {
   
mail($_POST[email], Passwort$row["pwd"], "From: Admin")
  or die(
"Die Mail konnte nicht versendet werden.");
}

mysql_free_result($result);

?> 
danke nochmal allen für die kräftige Hilfe

webhero

// Edit ... jetzt noch ne kleine frage.. wie bekomme ich das hin das da nicht nur das Passwort in der E-mail steht sondern ... Dein Passwort lautet: *****
Wenn ich
PHP-Code:
$text "Dein Passwort lautet: $row["pwd"];
oder
$text = "
Dein Passwort lautet$row["pwd"]";
sowie 
$text = Dein Passwort lautet: echo $row["
pwd"]; 
bekomm ich nen parse error ...

Geändert von webhero (23.12.2004 um 16:00 Uhr).
webhero ist offline   Mit Zitat antworten
Alt 23.12.2004, 13:32   #14
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Also ganz korrekt wäre es per concat!
PHP-Code:
//So macht man es eigentlich
$text "Dein Passwort lautet: ".$row["pwd"]; //Wobei man dann keine double quotes verwendet, sondern $row['pwd'] single ;)

//Zwar schlecht programmiert, aber noch funktionstüchtig ist auch:
$text "Dein Passwort lautet: $row[pwd]";

echo 
"Wenn du also strings und ".$variablen."ausgeben willst, so ".$oft.$und.$lange."du willst, macht man dass immer mit einem PUNKT. Dass nennt sich concat, dessen deutsches Wort ich nicht schreiben kann ;). Das klappt natürlich auch mit ".$array["array"]." sogar mit ".$array["dim1"]["dim2"]." mehrdimensionalen. Du kannst so sogar ".date('r')." jede funktion einbinden, und erhältst dadurch ihren Rückgabewert."//:) 
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

Geändert von Dennis The Menace (23.12.2004 um 13:37 Uhr).
Dennis The Menace ist offline   Mit Zitat antworten
Alt 23.12.2004, 13:41   #15
TP-Junior
 
Registriert seit: Dec 2004
webhero macht alles soweit korrekt
Danke
es funktioniert großartig
Wenn ihr das zusammen gebastelte verwenden möchtet dann tut das ..hier nochmal alles im überblick.
Code:
<?php
$email = $_POST["email"];
$login = $_POST["login"];
  
$conn = mysql_connect("localhost", "$user", "$passwd");

if (!$conn) {
   echo "Keine Verbindung zur DB: " . mysql_error();
   exit;
}

if (!mysql_select_db("$database")) {
   echo "Kann $database nicht auswählen: " . mysql_error();
   exit;
}

$sql = "SELECT pwd FROM users WHERE email ='".$email."' AND login ='".$login."' LIMIT 0,1";

$result = mysql_query($sql);

if (!$result) {
   echo "Anfrage ($sql) konnte nicht ausgeführt werden : " . mysql_error();
   exit;
}

if (mysql_num_rows($result) == 0) {
   echo "Die angegebene E-mail adresse oder der Username konnte keinem Benutzer zugeordnet werden!";
   exit;
}

while ($row = mysql_fetch_assoc($result)) {
$text = "Dein Passwort lautet: ".$row["pwd"];   
   mail($_POST[email], Passwort, $text, "From: Admin")
  or die("Die Mail konnte nicht versendet werden.");
}

mysql_free_result($result);

?>
webhero
webhero ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Passwort vergessen Script Passwort vergessen Script
« SQL abfrage | PHP+MYSQL Fakturierung gesucht »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu