php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Login-Skript bzw. User-Registrierung mit Email-Verifikation?


 
Hendy84
28-08-2018, 15:09 
 
Hallo in die Runde,



ich bin neu hier und versuche gerade PHP an Hand eines Video-Kurses (bzw. Tutorials) plus zwei PHP/MySQL-Büchern zu lernen.

Als Projekt arbeite ich an einer durchsuchbaren Datenbank, die ist auch kein Problem, das funktioniert alles wie es soll.

Nun will ich diese Datenbank aber um einen Mitglieder-Bereich erweitern mit dem Endergebnis, dass unregistrierte Benutzer die Datenbank nur durchsuchen können, registrierte User Datensätze hinzufügen / editieren können und Admins auch Datensätze komplett löschen können.

Da habe ich nun gerade das Registrierungs- und das Login/Logout-Script fertig, scheint auch alles erstmal zu funktionieren.

Jedoch stößt mir etwas sauer auf, dass sich jeder mit Username, Mailadresse und Passwort registrieren kann, will sagen: ich würde gerne eine real existierende Mailadresse zur Bedingung der Registrierung machen, also dass nach dem Abschicken der Registrierung nicht nur der User in der MySQL-Tabelle angelegt wird, sondern dass per eMail ein zufällig generierter Code / Token als Link an den User abgeschickt wird und erst nach Aufrufen des Links aus der Mail, erhält der User den Status "aktiv" (meinetwegen auch Status 1 für aktiv, Status 0 für inaktiv) und kann sich dann erst in den Mitgliederbereich einloggen.

Parallel zu dieser eMail sollte eine Mail an Admins rausgeschickt werden, dass sich ein neuer User registriert hat.



Gibt es dafür eine entsprechende Funktion, die ihr mir empfehlen könnt, die ich mir näher ansehen sollte? Am besten auch so, dass es eine möglichst sichere Anwendung wird, die Mails also vielleicht per SSL verschlüsselt werden? Oder reicht es dafür, dass auf der Website ein SSL-Zertifikat aktiviert ist und die Seite nur via HTTPS aufrufbar ist?



Vielen Dank schon mal im Voraus für eure Vorschläge / Ideen dazu bzgl. einer möglichen Umsetzung dieser Funktion!





Liebe Grüße

 
SysOp
30-08-2018, 13:06 
 
Ich mache das in zwei Schritten.

1.
Key und Dateiname generieren, dazu verwende ich

$key = '.'.md5(microtime());
$dateiname = '.'.$key;

unter dem Dateinamen lege ich in einem temp-Verzeichnis eine Textdatei mit den Userinhalten ab, der führende Punkt verhindert, dass die Datei direkt aufgerufen werden kann.

2.
An den User sende ich eine Mail an seine angegebene Mailaderesse mit einem Verifikationslink z.B. verify.php?key=KEY.
Der Link ruft ein Script auf, dass nach dem Textfile sucht und die Inhalte in die Datenbank einträgt. Zumindest hast du so eine gültige Mailadresse.

 
h3ll
30-08-2018, 13:24 
 
Wozu Dateien und nicht gleich direkt in die Datenbank?

 
projektphp
18-09-2018, 15:37 
 
Bezüglich der Mail Verification würde ich ein bestehendes Tool benützen:

https://github.com/annebarrat/PHP-registration-with-email-verification

Dafür musst du aber phpmailer einrichten was aber nicht so schwer ist:
How to Send e-Mail using PHPMailer and Gmail SMTP | Coding Cage (http://www.codingcage.com/2015/08/how-to-send-e-mail-using-phpmailer-and.html)

Auf Github findest du oft Tools die dir das Leben erleichtern bezüglich Sicherheit.

h3ll hat recht, wieso in Files schreiben wenn man eine DB hat

Gruss

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:51 Uhr.