PHP Loginscript
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
befehl
benutzer
benutzerdaten
betreff
code
domain
email
fehler
funktion
kommentar
login
rand
registrierung
set
tabelle
test
text
url
versenden
-
Hi !
Ich habe ein einfaches Loginsystem für meine Seite gefunden unter http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html . Ist es möglich, eine Bestätigungsemail Funktion einzubauen. Also, dass der User nach der Anmeldung eine eMail mit einem Bestätigungslink bekommt, und freigeschaltet wird, wenn er den klickt?
Viele Grüße David !
Beitrag zuletzt geändert: 12.5.2009 18:35:38 von davy -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ja, dies ist möglich!
Aber willst du, dass bei jedem Login der Benutzer eine E-Mail bestätigen muss?
Und was mir auffällt: Das Tutorial beinhaltet gar keine Registrierung!
MfG
Steffen -
fusballmanager schrieb:
Ja, dies ist möglich!
Aber willst du, dass bei jedem Login der Benutzer eine E-Mail bestätigen muss?
Und was mir auffällt: Das Tutorial beinhaltet gar keine Registrierung!
MfG
Steffen
Die Registrierung habe ich schon.
Ich meinte nicht, dass der User bei jedem Login eine email bekommt, sondern nur bei der Registrieung zum bestätigen ! -
Ja, natürlich ist es möglich.
Aber da du weder PHP kannst, noch vorhast es irgendwann zu können, sondern immer nur andere deine gesammten Codes schreiben lässt...
Aber, falls du denncoh mal dazu komst PHP zu lernen, dann solltest du ein Auge auf die mail() und die mt_rand() Funktionen werfen. Du generierst einen zufälligen Code mit mt_rand, checkst ob es in der Datenbank ein Tupel mit diesem zufälliegn Code, wenn ja neu generieren, wenn nein schreibst dus rein. Dann schickste mit mail() eine Email mit dem Code. -
Ich habe es schon geschafft, bei der Registrierung in die Zeile des Users bei "activated" eine 0 einzutragen und das beim Login nur User mit einer 1 eingeloggt werden.
Wie mache ich das aber mit der Aktivierungsmail?
Soweit bin ich schon:
<?php $empfaenger = "empf@domain.de"; $betreff = "Aktivierungsmail"; $from = "From: Test <absender@domain.de>"; $text = "Bitte bestätige deinen Account unter: www.deinedomain.de/activated.php?code=?????? Viel Spaß noch !"; mail($empfaenger, $betreff, $text, $from); ?>
-
Sieht doch gut aus!
Aber überprüfnoch, ob die Funktion nicht false zurückgibt!
Und den Code mahcst du einfahc mit einer Rand-Funlktion!
MfG -
fusballmanager schrieb:
Sieht doch gut aus!
Aber überprüfnoch, ob die Funktion nicht false zurückgibt!
Und den Code mahcst du einfahc mit einer Rand-Funlktion!
MfG
Ungefähr so?
<?php $aktivierungscode = rand(); $empfaenger = "empf@domain.de"; $betreff = "Aktivierungsmail"; $from = "From: Test <absender@domain.de>"; $text = "Bitte bestätige deinen Account unter: www.deinedomain.de/activated.php?code=$aktivierungscode . Viel Spaß noch !"; if (mail($empfaenger, $betreff, $text, $from)) { echo("<font size='2'>Die Mail wurde erfolgreich versendet !</font>"); }else{ echo("<font size='2'>Beim Versenden der Mail ist leider ein Fehler aufgetreten. Bitte probiere es erneut.</font>"); } ?>
-
Hallo,
ich würde statt rand "mt_rand()" verwenden, und nochwas: Vergiss nicht, die daten in eine tabelle zu schreiben.
Gruß Tillorgias -
tillorgias schrieb:
Hallo,
ich würde statt rand "mt_rand()" verwenden, und nochwas: Vergiss nicht, die daten in eine tabelle zu schreiben.
Gruß Tillorgias
So?
<?php $aktivierungscode = mt_rand(); @mysql_query("INSERT INTO benutzerdaten SET aktivierungscode = '$activierungscode' WHERE Nickname = '".$_POST['username']."'") $empfaenger = "empf@domain.de"; $betreff = "Aktivierungsmail"; $from = "From: Test <absender@domain.de>"; $text = "Bitte bestätige deinen Account unter: www.deinedomain.de/activated.php?code=$aktivierungscode . Viel Spaß noch !"; if (mail($empfaenger, $betreff, $text, $from)) { echo("<font size='2'>Die Mail wurde erfolgreich versendet !</font>"); }else{ echo("<font size='2'>Beim Versenden der Mail ist leider ein Fehler aufgetreten. Bitte probiere es erneut.</font>"); } ?>
Wie muss die activated.php aussehen? -
Hi,
Du könnest das auch in den selben Befehl mahcne, wo du die Benutzerdaten (Name, Passwort) in die DB schriebst, aber das ist egal!
In der activated.php suchst du den User mit dem Code und setzt seinen Status von 0 auf 1!
MfG
Steffen -
fusballmanager schrieb:
Hi,
Du könnest das auch in den selben Befehl mahcne, wo du die Benutzerdaten (Name, Passwort) in die DB schriebst, aber das ist egal!
In der activated.php suchst du den User mit dem Code und setzt seinen Status von 0 auf 1!
MfG
Steffen
Ist das so ungefähr richtig?
<?php include ("sql.php"); ?> <?php @mysql_query("UPDATE benutzerdaten SET activated = '1' WHERE Nickname = '".$user."' AND aktivierungscode = '$_GET['code']'"); <!-- Kannst du mir noch eine if Abfrage einbauen, die einen Text ausgibt? --> ?>
-
Hi,
ich habe erstmal eine Frage: wie wird die Variable $user gesetzt?
Diese benutzt du nämlich in dem MySQL Befehl!
Dann noch 2 Sachen:
1. Der PHP-Kommentar geht // und nicht so wie ein HTML-Kommentar, dies erzeugt eine Fehlermeldung!
2. Du musst den Code vor einer Injektion schützen! Den $_GET['code'] auf jeden Fall mit mysq_escape_strings() schützen!
Für die If-Abfrage:
Mache erst eine Abfrage die Checkt es ob überhaubt einen User mit dem Code gibt.
Wenn diese erfolgreich ist (mysql_num_rows()) kannst du updaten(Auch hier auf Fehler prüfen) und einen Text ausgeben.
Wenn diese Abfrage nicht erfolgreich war, kannst du einen anderen Text ausgeben!
MfG
Steffen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage