Anzeige

benötige funktion für loginüberprüfung (anfänger)

benötige funktion für loginüberprüfung (anfänger) | PSD-Tutorials.de

Erstellt von Vali, 03.06.2008.

  1. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    Also ich will ein cms basteln und brauche eine funktion mit der überprüft wird ob der user im Moment eingeloggt ist oder nicht.
    Wenn der User nicht eingeloggt ist soll mein login formular erscheinen und wenn ein er eingeloggt ist soll dann das login menü dastehen.

    Es wäre auch klasse wenn ihr mir bei der logout funktion helfen könnt.

    die mysql variablen die ich bis jetzt habe sind:
    ID (auto_increment)
    benutzername
    passwort (MD5)
    session_id
    admin (da gibts nur 1 für ja und 0 für nein)
    anmelde_datum
    letzer_login_datum

    Gibt es da vllt. auch noch Spalten die sinnvoll wären?

    Danke schonmal für eure hilfe
     
    #1      
  2. wattnwurm

    wattnwurm Aktives Mitglied

    Dabei seit:
    08.01.2008
    Beiträge:
    281
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    tu dir das nicht an, es sei denn du willst daran etwas üben.

    Es gibt eine Menge fertiger CMS, die diese Funktionen alle enthalten. Modifiziere den Quellcode, dabei kannst du auch eine Menge lernen.
     
    #2      
  3. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Also ich will daran bischen PHP üben... Also Usermanagemend, sowie Seitenmanagemend, glaube das ist nicht so schwer, also gedanklich wüsst ich auch wie ich das machen könnte, jedoch mach ich kein Forum, weil ich glaube daran würde ich kleglich scheitern... naja und jetzt stehe ich an dem problem loginüberprüfung und logout aber glaube, da kann mir sicher jemand hier weiterhelfen :)
     
    #3      
  4. dataworld

    dataworld Nicht mehr ganz neu hier

    Dabei seit:
    04.03.2008
    Beiträge:
    85
    Geschlecht:
    männlich
    Ort:
    Weit weit weg
    Software:
    3D Studio Max 2008, Creative Suite 3, ...
    Kameratyp:
    DSLR Sony Alpha 300
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Es gibt eine Spalte die nicht sinnvoll ist, außer du hast etwas spezielles vor damit ^^
    Du musst deine Session Id nicht in ein Feld speichern. Beim erstellen einer Session wird automatisch ein Cookie erzeugt, der die Daten beinhaltet.

    zum prüfen ob ein User eingeloggt ist kannst du ja sowas hier benutzen:

    Check.php
    PHP:
    1. <?php
    2. if (!isset ($_SESSION["user_id"]))
    3. {
    4.   header('Location: index.php');
    5. }
    6. ?>
    einfach auf jeder Seite die geschützt sein soll includen (ganz am Anfang)

    mfg Dw
     
    Zuletzt bearbeitet: 03.06.2008
    #4      
  5. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Achso danke, weil ich habe das sonst immer so gemacht das ich die session_id in die variable übergebe und dann immer auf die variable zugreife, so ist das ja viel einfacher wie du das jetzt gemacht hast, danke!
     
    #5      
  6. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    @dataworld, ich hab da noch ne frage, woher weiß man denn jetzt ob man eingeloggt ist oder nicht? Jeder der die Seite betritt bekommt doch eine SessionID? Oder muss ich das so programmieren, dass man eine bekommt wenn man sich einloggt?
     
    #6      
  7. KillePille

    KillePille Nicht mehr ganz neu hier

    Dabei seit:
    18.08.2006
    Beiträge:
    88
    Geschlecht:
    männlich
    Ort:
    Dorsten
    Software:
    CS Suite
    Kameratyp:
    Canon EOS 400D
    benötige funktion für loginüberprüfung (anfänger)
    #7      
  8. dataworld

    dataworld Nicht mehr ganz neu hier

    Dabei seit:
    04.03.2008
    Beiträge:
    85
    Geschlecht:
    männlich
    Ort:
    Weit weit weg
    Software:
    3D Studio Max 2008, Creative Suite 3, ...
    Kameratyp:
    DSLR Sony Alpha 300
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Ich habe das so gelöst: Die Session ID wird nur dann zugewiesen, wenn du dich einloggst. Ungefähr so:

    PHP:
    1. <?php
    2.  
    3. session_start (); //WICHTIG! Muss vor allem anderen ausgeführt werden!
    4. $name=$_POST["MyUser"];
    5. $pass=$_POST["MyPassword"];
    6.  
    7. include "connect.inc.php"; //zum verbinden mit der Datenbank
    8.  
    9.       $sql="SELECT * FROM User WHERE Name = '".$name."'"; /*holt sich die
    10.   Daten wo der Nick gleich dem Nick in der Spalte Name ist*/
    11.      
    12.       $result=mysql_query($sql);
    13.      
    14.       $count = @mysql_fetch_array($result);
    15.  
    16.  
    17.  
    18.   if($count['Pass']==md5($pass) AND $count['Name']==$name) /*Prüft ob
    19.   der Nickname mit dem Passwort übereinstimmt*/
    20.   {
    21.    /*Hier werden die Sessions gesetzt. Diese Daten sind danach überall
    22.   aufrufbar, solange sich der User auf deiner Seite befindet*/
    23.  
    24.   $_SESSION["user_id"] = $count['Id'];
    25.   $_SESSION["user_nickname"] = $count['Name'];
    26.   $_SESSION["user_nachname"] = $count['Nachname'];
    27.   $_SESSION["user_vorname"] = $count['Vorname'];
    28.  
    29.  header('Location: eingeloggt.php'); /*Wenn alles geklappt hat wird der
    30.   User sofort auf die "geschützte" Seite weitergeleitet*/
    31.   }
    32.   else{
    33.     echo "Sry, Fehler beim einloggen";
    34.   }
    35. ?>
    36.  
    Mit der Check.php die ich schon weiter oben geschrieben habe prüfst du dann nur ob das array $_SESSION['user_id'] gesetzt ist.

    Und wenn du dich dann wieder ausloggen willst musst du nur die Session zerstören. Hier ein Beispiel:

    logout.php
    PHP:
    1. <?php  
    2.  
    3. session_unset (); /*löscht alle    Session-Variablen, die gegenwärtig registriert
    4.  sind*/
    5. session_destroy (); /* löscht alle Daten, die durch die Sessions erzeugt wurden*/
    6.  
    7. echo "Erfolgreich ausgeloggt!";
    8. ?>
    9.  
    Hoffe ich kann dir damit etwas helfen.

    mfg Dw
     
    #8      
  9. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    danke dataworld, habe mir das schon fast gedacht, dass du das so gemacht hast, ist aber auch sinnvoll. Wäre aber ohne deine hilfe nicht auf die idee gekommen, wusste jedenfalls nicht das man das so lösen kann.
    Ich werd mich dann mal daran versuchen.
     
    #9      
  10. danielx11

    danielx11 Nicht mehr ganz neu hier

    Dabei seit:
    08.04.2008
    Beiträge:
    217
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Hey vielen Dank für die Infos, kann ich auch gerade gut gebrauchen :)
     
    #10      
  11. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    hmm habe jetzt ein weiteres Problem, hatte gestern keine Zeit mehr das Loginskript zu testen, jedoch funktioniert bei mir da etwas nicht...

    Ich habe das bis jetzt so

    login.php
    PHP:
    1.  
    2. <?php
    3. if (isset($_POST["login"]))
    4. {
    5.     $name=$_POST["benutzername"];
    6.     $pass=$_POST["passwort"];
    7.  
    8.     $sql="SELECT * FROM valox_users Where benutzername = '".$name."'";
    9.     $result = mysql_query($sql);
    10.     $count = @mysql_fetch_array($result);
    11.     if($count['passwort']==md5($pass) AND $count['benutzername']==$name)
    12.     {
    13.         $_SESSION["user_id"] = $count['ID'];
    14.         $_SESSION["user_nickname"] = $count['benutzername'];
    15.  
    16.         echo "erfolgreich eingeloggt";
    17.     }
    18.     else
    19.     {
    20.         echo "Fehler beim einloggen";
    21.     }
    22. }
    23. else
    24. {
    25.     echo"
    26.        <form method=\"POST\" action=\"main.php\">
    27.            Benutzername:
    28.            <input type=\"text\" name=\"benutzername\" size=\"15\" style=\"color: #FFFFFF; border: 1px solid #FFFFFF; padding: 0; background-color: #484545\">
    29.            Passwort:
    30.            <input type=\"password\" name=\"passwort\" size=\"15\" style=\"color: #FFFFFF; border: 1px solid #FFFFFF; padding: 0; background-color: #484545\">
    31.            <br>
    32.            <br>
    33.            <input type=\"submit\" value=\"login\" name=\"user_login\" style=\"color: #FFFFFF; border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 0; padding-bottom: 0; background-color: #C0C0C0\"></p>
    34.        </form>    
    35.    ";
    36. }
    37.  
    38. ?>
    39.  
    nicht wunder mysql datenbank connectet er schon in der main.php (index.php ist nur ein Entermenü), sowie auch die session_start(), also die login ist ein include...

    Mein Problem ist jetzt wenn ich mich einloggen will, dann macht der nichts, der aktualisiert die seite nur und ich kann wieder benutzername und passwort eingeben.

    Hoffe mal das du mir da nocheinmal weiterhelfen kannst dataworld ^^
     
    #11      
  12. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    So habe einen Fehler schonmal gefunden!
    hatte bei isset login stehen da musste aber user_login hin.
    Jetzt ist ein weiteres problem da, also wenn ich mich einlogge dann kommt sofort Fehler beim einloggen!
    Da stimmt doch was nicht? Ist was in meine IF Funktion falsch?
     
    #12      
  13. dataworld

    dataworld Nicht mehr ganz neu hier

    Dabei seit:
    04.03.2008
    Beiträge:
    85
    Geschlecht:
    männlich
    Ort:
    Weit weit weg
    Software:
    3D Studio Max 2008, Creative Suite 3, ...
    Kameratyp:
    DSLR Sony Alpha 300
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Ist dein Passwort in der Datenbank eh in md5 Verschlüsselung gespeichert?
    In der Datenbank steht zb. "pass" als Passwort drinnen. Bei der Abfrage

    PHP:
    1. if($count['passwort']==md5($pass) AND $count['benutzername']==$name)
    steht dann für $count['passwort']=pass und in md5($pass) steht
    "1a1dc91c907325c69271ddf0c944bc72" drin. probier mal statt md5($pass) nur $pass

    sry, is jetzt etwas kompliziert erklärt aber ich bin schon etwas müde :muede:
     
    #13      
  14. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Habe deine Antwort schon sehnligst erwartet ^^
    Also habe in der Datenbank ein md5 verschlüsseltes Passwort.
    Habe zum testen erstmal nur admin genommen und in der Datenbank steht dann:
    "21232f297a57a5a743894a0e4" also passwort

    Also muss ich doch dann md5($pass) in dem code stehen.

    aber ich probier das dann gleich mal aus


     
    #14      
  15. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Hmm wäre ja zu schön um war zu sein, hat leider nicht funktioniert, also an dem MD5 liegt das nicht, ich bin echt Ratlos, weiß echt nicht woran das liegt, habe den Code mehrmals durchgelesen aber komme echt nicht darauf woran es liegen kann...
     
    #15      
  16. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    Ohman ist das peinlich :rot:
    Ich habe gerade meine mysql datenbank durchgeschaut und gesehen beim passwort hatte ich varchar eingestellt jedoch nur 25 zeichen =/
    Das kommt wieder davon wenn man zu eilig ist... habe das wieder zu schnell gemacht und da kam die zweite 5 nicht mehr mit...
    Jetzt funktioniert es endlich.
    Großen Dank an dich dataworld, dein loginskript ist klasse vorallen mit dem übergeben der der Werte direkt beim login, das find ich spitze.
    Danke nochmal
     
    #16      
  17. Vali

    Vali Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    33
    Geschlecht:
    männlich
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    So und ein weiteres Problem tritt auf, ich kann die $_SESSION["variablenname"] nicht ausgeben mit echo, gibt es da einen anderen befehl zu?
    Wenn ich das mit echo mache kommt immer der fehler "unexpectet "" line .... und die fehlernummern"
     
    #17      
  18. dataworld

    dataworld Nicht mehr ganz neu hier

    Dabei seit:
    04.03.2008
    Beiträge:
    85
    Geschlecht:
    männlich
    Ort:
    Weit weit weg
    Software:
    3D Studio Max 2008, Creative Suite 3, ...
    Kameratyp:
    DSLR Sony Alpha 300
    benötige funktion für loginüberprüfung (anfänger)
    AW: benötige funktion für loginüberprüfung (anfänger)

    PHP:
    1. echo $_SESSION["variable"];
    geht bei mir.

    Fehler hört sich nach falschem Variablennamen an. Du musst auch auf die Groß- und kleinschreibung achten.

    mfg Dw
     
    #18      
x
×
×