php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.01.2011, 17:31  
Benutzer
 
Registriert seit: 26.11.2010
Beiträge: 32
PHP-Kenntnisse:
Anfänger
tintifaxine befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Frage wegen Bestätigungslink

Liebes Forum,

vielleicht krieg ich ja vom Moderator wieder auf den Deckel, aber ich kann leider weder in meinem Hirn noch im www eine Antwort auf meines Frage finden

Es handelt sich auch eher um eine grundsätzliche Verständnisfrage. Ich hoffe dennoch auf Hilfe.

Ich habe eine Seite, bei man sich registrieren soll. Die Daten werden in die DB (mysql) geschrieben und ein Mail mit dem Bestätigungslink wird verschickt.

So weit, so gut, alles klar, alles funktioniert pipifein.

Nun das Problem:
die Seite, wie sie im Link angegeben ist, existiert ja (noch) nicht. Wie also kommt mein potenzieller Benutzer zu seiner Seite?

Muss für jeden Link, den ich generiert habe, eine eigene Seite angelegt werden?
Mein Link sieht bspw. so aus:
http://localhost/bubi-test/de/regist...l.com&id=69078

Bitte, wenn's möglich wäre ....

Vielen Dank im Voraus!
tintifaxine ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.01.2011, 17:39  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Das macht man einfach so:

Du brauchst in deiner Usertabelle eine art passwort, z.B.

PHP-Code:
$code md5(time()); 
Dann schreibst du in die Email folgendes:

PHP-Code:
mailtext =  'Bitte hier klicken um die Registrierung abzuschließen: ';
mailtext .=  'http://example.org/register.php&email=' $email '&code=' $code
In register.php fragst du die beiden Parameter dann ab:

PHP-Code:
$email $_GET['email'];
$code $_GET['code']; 
und schaust nach, ob das in dre Usertabelle zu finden ist.


Nur ein Link, so wie du ihn hast (register.php?id=123) ust nicht sicher, weil Leute, die diese Mail bekommen dann ausprobieren können und werden, was passiert, wenn sie eine andere Zahl nehmen als hier die 123.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 15.01.2011, 17:39  
Erfahrener Benutzer
 
Registriert seit: 23.03.2010
Beiträge: 626
PHP-Kenntnisse:
Anfänger
ByStones befindet sich auf einem aufstrebenden Ast
Standard

Nein, du musst nur eine Datei anlegen, z.B. aktivieren.php und dann die entsprechenden $_GET-Parameter auslesen.

Wenn der User einen Account anlegt, einfach einen Eintrag in die DB machen mit dem Usernamen und einem zufälligen Schlüssel und einem Verfallsdatum. Dann verschickst du einen Link (http://example.org/aktivieren.php?us...dsv4sd5f4s3d5f).

In deiner Datei überprüfst du dann ob der Schlüssel mit dem Namen passt und wenn ja aktivierst du den User.
Sobald das Verfallsdatum erreicht ist ohne dass der User aktiviert wurde löschst du den User, da dann unwahrscheinlich ist dass er nochmal wiederkommt und einfach nur einen Usernamen verbraucht den vllt ein anderer (potenzieller) User haben möchte.
__________________
Signatur:
PHP-Code:
$s '0048656c6c6f20576f726c64';
while(
$i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

Geändert von ByStones (15.01.2011 um 17:42 Uhr).
ByStones ist offline   Mit Zitat antworten
Alt 15.01.2011, 17:49  
Benutzer
 
Registriert seit: 26.11.2010
Beiträge: 32
PHP-Kenntnisse:
Anfänger
tintifaxine befindet sich auf einem aufstrebenden Ast
Standard

Super, vielen herzlichen Dank!!!!
tintifaxine ist offline   Mit Zitat antworten
Alt 15.01.2011, 18:26  
Gesperrt
 
Registriert seit: 03.12.2010
Beiträge: 860
PHP-Kenntnisse:
Anfänger
coola wird schon bald berühmt werden
Standard

Also bei mir schaut dieser Link anders aus.
Er besteht nicht aus E-Mail-Adresse und ID, sondern aus:

- ID des Users in der DB
- Signatur

Die Signatur ergibt sich aus:

- ID des Users in der DB
- einem Salt, der für alle Registrierungen gleich ist, z. B. 'k309c2'
- einem Salt, der bei jeder Registrierung anders ausschaut, und in der DB eingetragen wird.
Und das alles sha1-kodiert.
coola ist offline   Mit Zitat antworten
Alt 15.01.2011, 19:58  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Das ist genauso gut. Man braucht einen Link-Bestandteil, den ein unberechtigter Dritter nicht erraten kann. Du kannst auch die ersten 6 Bytes eines hashes und die Zeilennummer der Tabelle nehmen.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 15.01.2011, 20:24  
Gesperrt
 
Registriert seit: 03.12.2010
Beiträge: 860
PHP-Kenntnisse:
Anfänger
coola wird schon bald berühmt werden
Standard

Ich mache das wie mit Passwörtern.

Passwörter werden bei mir SHA1-kodiert in der DB abgespeichert.

Ich hätte die URL-Signatur auch aus dem Hash des Passworts machen können, das der User im Registrierungs-Formular eingibt. Aber das ist mir zu unsicher. Vielleicht gibt der User 123 als Passwort ein. Mal abgesehen davon, dass man Passwörter sowieso nicht irgendwohin verschicken sollte.

Darum bilde ich ein eigenes Passwort. Es besteht aus dem immer gleich aussehenden Salt und dem jedes mal anders aussehenden Salt (werden per Zufall ein paar Zeichen zu einem String verkettet). Das immer gleich aussehende Salt ist nur für den Fall, dass ich irgendwo einen Programmierfehler habe und es bei der Erzeugung des anderen Salt irgendwie Probleme gab.

Die User-ID wäre gar nicht nötig, auch noch in der Signatur aufgenommen zu werden. Aber kann nicht schaden. Zumindest ist so sichergestellt, dass der String, der dann gehasht wird, immer anders ausschaut.

EDIT:

Nur so nebenbei: eine E-Mail-Adresse muss nicht unbedingt eindeutig einer Person zuordenbar sein. Es kann ohne weiters sein, dass a@b.de im Jahre 2009 der User A hatte, diese E-Mail-Adresse jetzt aber jemand ganz anderem gehört, vielleicht User B. Das darf man dann nicht im PHP-Script vergessen, wenn man den Registrierungsvorgang abschließt. In der DB darf die Spalte email nicht unique sein.

Geändert von coola (15.01.2011 um 20:43 Uhr).
coola 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
Eine Frage zum guten Code-Layout SilentSight JavaScript, Ajax und mehr 3 14.07.2010 09:18
[Erledigt] Frage zu JOIN Befehl und dem Auslesen desselben apo PHP Tipps 2010 11 13.06.2010 19:32
[PDO] Frage zur Portabilität freq.9 PHP-Fortgeschrittene 2 29.07.2005 13:28
[Erledigt] frage PHP Tipps 2005-2 9 15.06.2005 13:22
.htaccess - Frage Stümper PHP Tipps 2005 11 30.05.2005 11:56
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
Frage: gibt es bei PHP sowas wie target="_blank" PHP Tipps 2005 6 20.04.2005 06:27
mal ne Frage PHP Tipps 2005 7 14.04.2005 09:46
Technische Frage zur Realisation einer Online-Umfrage Stefano PHP Tipps 2005 5 16.03.2005 17:39
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Kurze Frage an die Php Profis PHP Tipps 2004-2 11 24.11.2004 17:38
Frage zur Formatierung von Text obi PHP Tipps 2004 1 03.11.2004 13:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bestätigungslink in mail php, php mail bestätigungslink, email bestätigungslink php, formular mit bestätigungslink, bestätigungslink generieren php, php bestätigungslink mail, php localhost bestätigungslink, bestätigungslink generieren, bestätigungsmail mit dem link zum aktivieren php, php bestätigungslink, php bestätigungslink gut?, php bestätigungslink schreibt nicht auf datenbank, php script bestätigungslink senden, link datenbank php mit bestätigungs e mail, php bestätigungslink generieren sicherheit, e mail bestätigung mit php md5, registrieren mit bestätigungslink php, php account bestätigungslink, php formular \bestätigungslink\, bestätigungslink

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:52 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