Zum Inhalt springen

Benutzerkonto mit PHP script aktivieren


Empfohlene Beiträge

Hallo Leute,

ich habe schon seit paar Tagen eine Problem die ich nicht lösen kann. Hab schon viel Forums durchgesucht, aber…

Jetzt aber zu Sache. Ich habe vor eine so genante "GelbeSeiten" zu erstellen. Ich habe fast alles fertig. Als letzte habe ich mir vorgestellt, dass die Kunden, wessen Daten angezeigt werden, sich registrieren lassen müssen. Mit dem Drück auf den Button "Speichern", sollen die Kunden automatisch eine E-Mail erhalten und MÜSSEN in dieser E-Mail angegebenen Link aufrufen. Bevor sie dies nicht getan haben, werden ihren Daten nicht angezeigt.

Ich habe die Site mit PHP programmiert und bitte um die Hilfe auch im PHP. Eigentlich kann ich E-Mails mit mail() senden. Wie kann ich die auch empfangen und Ergebnis, als boolesche wert in den Datenbank speichern.

danke

MfG max

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast CheckerVomNeckar

Hi, ich mach das auf meiner Seite so:

1. Zufalls-Aktivierungscode generieren und in DB unter User-ID speichern, in DB "status=inactive"

2. Mail an User schicken (mit Aktivierungslink, z.B. ... index.php?action=activate&userid=2&code=123456

3. Wenn User auf Link klickt wird geprüft ob der Aktivierungscode mit dem in der DB gespeicherten übereinstimmt, wenn ja dann wird "status=active" in der DB gesetzt, wenn nicht, dann bleibt der User inaktiv ("status=inactive")

Mit dem Code kannst du umgehen, das der User einfach

"index.php?action=activate&userid=2" (ohne Code)

eintippt und dann freigeschaltet ist ohne eine Bestätigungsemail bekommen zu haben

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit dem Code kannst du umgehen, das der User einfach

"index.php?action=activate&userid=2" (ohne Code)

eintippt und dann freigeschaltet ist ohne eine Bestätigungsemail bekommen zu haben

das ist nicht dein ernst oder ? wenn irgend jemand so eine mail liest und sie zu verstehen weiss, zerschiesst er dir die daten sofort mit einer for schleife

code sollte schon md5 verschlüsselt sein in der DB.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast CheckerVomNeckar
das ist nicht dein ernst oder ? wenn irgend jemand so eine mail liest und sie zu verstehen weiss, zerschiesst er dir die daten sofort mit einer for schleife

code sollte schon md5 verschlüsselt sein in der DB.

Ja, hast Recht! Das Beispiel sollte nur stark vereinfacht sein.

Aber ich denke im Prinzip funktioniert so eine Aktivierung schon ganz gut.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, das hab ich auch alles so ungefähr vorgestellt.

Habe ein Feld Status mit Typ enum('inactive','active') in mein MySQL-Datenbank gesetzt.

Jetzt habe ich noch zwei weitere Fragen. Erste: aus welchen Daten besteht ein Link und Zweite: kann ich auf einem lokal installierten Apache Server das alles Testen?

Noch was dazu: bei Anmeldung brauchen die Kunden keinen Passwort, da die Daten nur eingeben und die, Daten, dann nicht mehr bearbeiten dürfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

von palvoelgyi

In dem Link sollte die richtige Seite aufgerufen werden und der Aktivierungscode sollte mitgegeben werden.

Hallo noch mal

Ja das ist klar dass die richtige Seite aufgerufen werden soll und der Aktivierungscode sollte mitgegeben werden. Jetzt frage ich aber aus welchen Komponenten ein Link besteht?

Hier ist kleine Beispiel:


Teil 1:
$update_sql=mysql_query("UPDATE kundendaten SET Status='active' WHERE pass='0cd2e631fcad84a74c35f60ec1c93463'");
$Ergebnis1 = mysql_query($update_sql, $connect) or die (mysql_error());

Teil 2:
$empfaenger = "m1@web.de";
$betreff = "Deine Anmeldung beim www.xxxx.de";
$from = "From: max<max@web.de>";

mail("$empfaenger","$betreff","Hallo $username! <br><br>
Vielen Dank, dass du dich in der Community von D.t.K. regsitriert hast.
Um deine Anmeldung abzuschließen klicke bitte auf folgenden Aktivierungslink: <br><br>
http://localhost/Registrierung.php?action=active&pass=0d2451e1e349a0db20e2c65813753788
","$from");

[/PHP]

wie soll ich beide Teile zusammen setzen und welche header soll ich noch eintragen, da wenn ich Teil 2 so sende, wie es ist, sagt er mir den Fehler.

[PHP]Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in D:\program files\xampp\htdocs\MyRusTel\Registrierung.php on line 276
Die Mail konnte nicht versendet werden.

MfG max

Link zu diesem Kommentar
Auf anderen Seiten teilen

$from = "From: max<max@web.de>";
mail("$empfaenger","$betreff","Hallo $username! <br><br>
Vielen Dank [...]","$from");[/PHP]

wie soll ich beide Teile zusammen setzen und welche header soll ich noch eintragen, da wenn ich Teil 2 so sende, wie es ist, sagt er mir den Fehler.

[PHP]Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in D:\program files\xampp\htdocs\MyRusTel\Registrierung.php on line 276
Die Mail konnte nicht versendet werden.

der fehler resultiert möglicherweise daher (habs nicht getestet), dass du den mailbody durch eigene zeilenümbrüche und nicht CRLF (\r\n) terminierst.

versuch mal das $from eine zeile raufzuziehen, <br><br> schmeiss weg, das ist HTML formatierung und deinem quellcode zufolge versendest du dein mail im format plain, was sollen da <br>'s bringen. die scheinen dann ja nur im mailtext auf und werden logischerweise nicht als umbrüche interpretiert.

im übrigen würde ich dir schon allein aus sicherheitsüberlegungen heraus die verwendung einer mailklasse empfehlen, z.b. PEAR::Mail oder den phpmailer.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Antwort auf Eingabe von Amstelchen

Ich habe, ehrlich zu sagen, noch keine Erfahrungen mit einem Mailserver. Kannst du mir, bitte, mal helfen. Ich habe auch ein Mailserver Name Hamster bei mir installiert, aber ich bin nicht ganz sicher, dass ich ihn richtig konfiguriert habe. Brauche ein Rat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...