php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.08.2005, 16:15  
Gast
 
Beiträge: n/a
Standard Passwort-vergessen-Funktion

Hallo zusammen,

ich habe ein riesiges Problem.

Ich habe mir vorgestellt, wenn ein Benutzer sein Passwort vergessen hat, dass er sich dies dann an seine E-Mail-Adresse zusenden lassen kann.

Die E-Mail-Adresse und das Passwort sind in einer mysql-Datenbank abgespeichert. Ich habe jetzt jedoch keinen blassen Schimmer, wie ich so eine Abfrage umsetzen soll. Alle meine Versuche sind kläglich gescheitert.

Kann mir jemand evtl. ein paar Tipps geben, wie ich so etwas umsetzen kann.

Im Voraus vielen Dank für eure Hilfe!

Gruß
Micha
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.08.2005, 16:30  
Gast
 
Beiträge: n/a
Standard

lass einfach ein neues Passwort erstellen, z.B per http://php.net/uniqid
Dieses dann in der Datenbank eintragen und per http://php.net/mail oder z.B. http://phpmailer.sourceforge.net/ eine mail mit dem neuen Passwort an den Benutzer schicken.

Aber ich nehme mal an, Du hast spezifischere Probleme. In diesem Fall frag bitte auch spezifischer.
  Mit Zitat antworten
Alt 06.08.2005, 17:04  
Gast
 
Beiträge: n/a
Standard

In Sachen php und mysql bin ich ein absoluter Noob, wie man sicherlich unschwer erkennen kann.

Mein erstes Problem:
Ich muß mir ja eine Seite erstellen, wo der Benutzer seine E-Mail-Adresse eingeben muss. Das könnte ich ja eventuell über ein Formular mit einem Texteingabefeld und einen Absendebutton lösen. Aber wie gebe ich jetzt diese E-Mail-Adresse zur Datenbank weiter, dass dort der richtige Datensatz angesprochen wird?

Mein zweites Problem:
Wenn ich nun dieser Benutzer (über die E-Mail-Adresse) eindeutig zu einem Datensatz in der Datenbank zugeordnet worden ist, wie lese ich dann das dort gespeicherte Passwort aus?

Mein drittes Problem:
Wie schicke ich dem Benutzer das ausgelesene Passwort zu (das hat sich vielleicht schon über die mail()-Funktion geklärt.

Ich hoffe, das ich mich einigermaßen verständlich ausgedrückt habe, dass auch Ihr als Profis versteht, was ich meine.

Ich wäre euch dankbar, wenn Ihr mir vielleicht einen Mustercode zeigen könntet, den ich dann angleichen kann.

Gruß
Micha
  Mit Zitat antworten
Alt 06.08.2005, 18:34  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

@MichaG:

1) Es ist nicht ratsam Kennwörter unverschlüsselt in der Datenbank zu speichern. Wenn irgendwann mal jemand auf deine Datenbank zugreifen kann durch irgendeine Sicherheitslücke, dann hat er alle Kennwörter aller User. Das ist sehr bitter, glaub mir!

2) Wenn du noch keine Ahnung von PHP hast, dann würde ich dir raten, mal in diesem Thread: http://www.phpfriend.de/ftopic15782.html nachzuschauen, dort sind viele hilfreiche Links mit TUtorials für Anfänger enthalten, die dir zeigen, wie du PHP in Zusammenarbeit mit MySQL nutzen kannst.
Eine andere Alternative wäre folgendes Tut, mit dem ich meiner Zeit PHP "gelernt" habe bzw. den allgemeinen Umgang angeeignet habe was MySQL angeht: http://www.dynamicwebpages.de/50.tut...p_tutorialID=7

Nutze ansonsten auch die Foren-Suche, wenn du speziellere Fragen hast, es gibt mit Sicherheit nichts für einen Anfänger, was nicht schon irgendwann mal gefragt und beantwortet wurde.
MrNiceGuy ist offline   Mit Zitat antworten
Alt 06.08.2005, 22:27  
Gast
 
Beiträge: n/a
Standard

So, ich hab jetzt eine Lösung erarbeitet, und es funktioniert sogar.

PHP-Code:
<?
 
include ("./function/base_info.php");
 
 
mysql_pconnect("localhost""$Sdb_user""$Sdb_pass");
 
mysql_select_db("$Sselect_db");
 
$subject 'blablabla';
 
$row mysql_fetch_array(mysql_query("SELECT passwd, url FROM {$Stb_name} WHERE email = '$email'"));

 if (
$row)
 {
  
mail$email$subject"Ihr Passwort für Ihren Eintrag $row[url] lautet: $row[passwd]");
usw.
Jetzt hab ich nur noch ein Problem ... angenommen ein Benutzer hat auf ein und die selbe E-Mail-Adresse mehrere Einträge in der Datenbank. Wie könnte man dann alle Passwörter gleichzeitig verschicken??

Ich wäre über jeden Tipp dankbar.

Gruß
Micha
  Mit Zitat antworten
Alt 07.08.2005, 00:10  
Gast
 
Beiträge: n/a
Standard

wenn die email mehrmals vorhanden ist, wirst du auch die jeweiligen Passwörter erhalten.
Bin zwar selber ein Anfänger, aber mit mysql_num_rows() kannst du Treffer abfragen und dann kannst du sie zB mit einer while-Schleife einzeln abfragen.
Oder du verhinderst einfach, dass eine emailaddresse 2 mal vorkommen kann.

Aber du soltest dir echt überlegen, die Passörter verschlüsselt zu speichern... mag sein, dass du damit keinen Unfug anfängst... solte aber jemand dein Passwort herausbekommen, hat er die deiner User auch, und die könnten ihr Passwort auch für wichtigere Dinge verwenden, zB ihr eMail-Konto.
  Mit Zitat antworten
Alt 07.08.2005, 01:42  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Hmm... Passwörter in DBs... Achja, wieso sollte es möglich sein, mehrere Felder auf ein Mal zu bedienen?! geht doch auch mit einen befehl
MrNiceGuy ist offline   Mit Zitat antworten
Alt 07.08.2005, 09:47  
Gast
 
Beiträge: n/a
Standard

Jetzt versteh ich nur noch Bahnhof.

Wie würde das mit mysql_num_rows() und einer while-Schleife in meinem Fall denn aussehen???

Ihr redet immer vom verschlüsselten Abspeichern der Passwörter in meiner Datenbank. Wie mach ich denn sowas??

Gruß
Micha
  Mit Zitat antworten
Alt 07.08.2005, 15:11  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php

 
include ("./function/base_info.php");
 
 
mysql_pconnect("localhost""$Sdb_user""$Sdb_pass");
 
mysql_select_db("$Sselect_db");
 
$subject 'blablabla';
 
$result mysql_query("SELECT passwd, url FROM {$Stb_name} WHERE email = '$email'") or die(mysql_error() );

if (
mysql_num_rows ($result) == 0)
{
    echo 
"Keine Übereinstimmung";    }
else
{  
      while(
$dsatz mysql_fetch_assoc($result))
    {
        
$password .= $dsatz["passwd"]." ";
    }

    
mail$email$subject"Ihr Passwort für Ihren Eintrag ".$dsatz["url"]." lautet:".$password);

}
?>
...das wär mal ein vorschlag von mir.
da ist sicherlich noch ein fehler drin :wink: und es geht bestimmt auch einfacher.

Aber ich hab noch nicht verstanden, warum jemand einen Eintrag mit mehreren emails schreiben sollte.

Dann noch schnell etwas zur Verschlüsslung.
Normal verschlüsselst du die Passwörter mit md5().
Da aber md5 nur eine Prüfsumme generiert und du das Passwort nicht mehr entschlüsseln kannst, hätte sich das eh erledigt.
Wenn du deine Passwörter verschlüsseln willst ( was ich dir empfehle), müsstest du ein neues Passwort generieren, und dieses deinem User senden.
  Mit Zitat antworten
Alt 08.08.2005, 01:26  
Erfahrener Benutzer
 
Registriert seit: 30.10.2004
Beiträge: 160
Jacks Rache
Standard

Sorry, das hat jetzt leider mit dem Thema nichts zu tun, sondern viel mehr mit dieser Passwort-Verschlüsselung. Angegenommen, ich möchte das Passwort eines Benutzers verschlüsselt bei dem Benutzer in einem Cookie speichern: Wie soll ich das dann machen, wenn das Passwort bereits verschlüsselt in meiner Datenbank gespeichert ist? Mit md5() das verschlüsselte Passwort noch mal verschlüsseln und dann im Cookie abspeichern lassen?
Jacks Rache ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
[Erledigt] Passwort vergessen funktion -- php und mysql coraplanet PHP Tipps 2008 15 22.04.2008 15:34
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
sql passwort vergessen ... BRAUCH HILFE Datenbanken 2 03.12.2005 02:26
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Passwort vergessen - Formular PHP Tipps 2005-2 2 31.10.2005 10:40
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] Passwort vergessen-Script PHP Tipps 2004-2 8 11.11.2004 18:56
Passwort vergessen / Aktualisierungs-Erinnerung PHP Tipps 2004 1 06.08.2004 14:20
[Erledigt] Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
passwortvergessen fuktion php tutorial, passwort vergessen funktion in datenbank eintragen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.