kostenloser Webspace werbefrei: lima-city


PHP Loginscript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. f************r

    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
  4. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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 !
  5. 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.
  6. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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);
    
    ?>
  7. f************r

    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
  8. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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>");
    }
    ?>
  9. Hallo,

    ich würde statt rand "mt_rand()" verwenden, und nochwas: Vergiss nicht, die daten in eine tabelle zu schreiben.

    Gruß Tillorgias
  10. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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?
  11. f************r

    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
  12. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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? -->
    
    ?>
  13. f************r

    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
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!