[PHP] Usersystem (Einloggen - Ausloggen)

  • Hallo an alle,
    Ich machs kurz und schnell.
    Erstmal müssen wir eine MySQL Abfrage machen. Dies kannst du unter Phpymadmin machen.

    Spoiler anzeigen
    Tabellenspalte Wert
    UserID - brauchen wir nicht wird automatisch gemacht
    UserName admin
    UserPass Mesut
    UserSession NULL
    NULL ist der Standardwert
    UserMail mesut@w.cn

    Spoiler anzeigen
    Wenn man alles richtig gemacht hat - sieht man folgendes als Funktion (Die uns herausgebt):
    User ID: 1
    UserName: admin
    UserPass: c1e794e11028517c71edb9f5b7532be9 (md5 hash)
    UserSession: NULL
    UserMail: mesut@w.cn



    Um sich Einloggen zu können brauchen wir einen kleinen Formular.
    Dies machen wir ganz einfach & schnell. Wir erstellen eine neue Datei, nennen es zu "login.php"
    Bitte die Endung immer richtig eingeben.
    So - Haben wir jetzt einen login.php(?) - Dann Öffnen wir diese Datei und Kopieren das: (Dann natürlich einfügen) & Abspeichern.

    PHP
    <form method="post" action="login.php">
      <label>Benutzername:</label><input name="username" type="text">
      <br>
      <label>Passwort: </label><input name="userpass" type="password" id="userpass">
      <br>
      <input name="login" type="submit" id="login" value="Einloggen"></form>



    Jetzt hat man Dort eine Tabelle bzw. einen Formular mit: Benutzername & Passwort: sowie Einloggen.
    Nun - Wenn wir jetzt irgendwas hin schreiben und Einloggen drücken wird nichts passieren. Um was passieren zu können.
    Also öffnen wir wieder die login.php und erweitern das mit diesem Code:


    Nun - Nicht jeder sollte Zugriff auf dem System haben. Um dies zu verhindern erstellen wir eine Datei Namens: logged_in.php und fügen diesen Code ein: (copy & pase &abspeichern)

    PHP
    <?php 
    session_start(); 
    include 'sessionhelpers.inc.php'; 
    echo 'Sie sind '; 
    if (!logged_in()) 
        echo 'nicht '; 
    echo 'eingeloggt.<p />'; 
    echo '<a href="login.php">Start</a>'; 
    ?>


    Um die "Session" den Ticket zu beenden müssen wir einen Code einbauen, damit man sich Ausloggen kann. Das heißt, wir erstellen eine neue Datei Namens logout.php und fügen diesen Code hinein:


    Achtung: Wenn ihr aufgepasst haben wir eine Datei Namens: "sessionhelpers.inc.php" eingebunden.
    Ohne diese Funktion würde kein Ausloggen oder Einloggen funktionieren. Für euch hab ich dies schnell gemacht - Einfach Downloaden.



  • Die Checkuser Funktion, dort findest du was mit MD5.
    Versuch das ganze am besten mal selber, dann lernst du besser daraus ;).

  • ich ahb es nun so


    da sagt er mir wen ich mich einloggen will

    Code
    FUNCTION samp.Passwort does not exist
  • was muss ich ändern das er nicht nach den MD5 Passwort fragt?
    sonst ganz gutes Tutorial


    Änderst das:

    Code
    $sql="SELECT UserId
        FROM users
        WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
        LIMIT 1";


    in:

    Code
    $sql="SELECT UserId FROM users WHERE UserName='".$name."' AND UserPass = '".$pass."' LIMIT 1";
  • okay nun hab ich es so

    Code
    $sql="SELECT ID FROM accounts WHERE Name='".$name."' AND UserPass = '".$pass."' LIMIT 1";


    Kommt nun das

    Code
    Unknown column 'UserPass' in 'where clause'


    //edit

    Code
    Table 'samp.Name' doesn't exist


    Bei

  • Komisch ist aba alles da
    ich weis auch nicht was ich da falsch gemacht haben Könnte




  • so ist es richtig ;)

  • Sind hier nicht Injection möglich? Wär es da dann nicht sinnvoller es so zu machen?

    PHP
    $sql = sprintf("SELECT UserId FROM users WHERE UserName='%s' AND UserPass=MD5('%s') LIMIT 1",
        	mysql_real_escape_string($name)
        	mysql_real_escape_string($pass));

  • so ist es richtig ;)


    wen ich mich nun einloggen will sagt er mir "Ihre Anmeldedaten waren nicht korrekt!", Dürfte doch nun aba alles richtig sein oda?
    //Edit hab die Daten auch richtig eingegeben aba er will mich da nicht duch lassen warum?
    //Edit hat da wer noch eine idee ?

    2 Mal editiert, zuletzt von Kevin B. ()