Anzeige

PHP problem beim Login

PHP problem beim Login | PSD-Tutorials.de

Erstellt von Lexia, 27.10.2005.

  1. Lexia

    Lexia Noch nicht viel geschrieben

    Dabei seit:
    02.11.2004
    Beiträge:
    37
    Geschlecht:
    weiblich
    PHP problem beim Login
    Hallo, ich habe ein Loggin mit PHP erstellt und zwar einmal mit

    login.php
    logged_in.php
    logout.php
    sessionhelpers.inc.php

    jetzt ist das aber so das ich eine hp mit iframes habe einmal "content" und einmal "main"

    das login feld soll im "content" stehen was ich auch hinbekommen habe, aber mein problem ist ich habe nun eine neue php datei erstellt und zwar "member.php" diese seite soll nach erfolgreichem einloggen erscheinen und zwar im "main" was ich auch hinbekommen habe aber das problem ist das wenn ich im login nun ein benutzername eingebe kommt unten

    Sie sind nicht eingeloggt und die geschütze seite steht drunter aber die seite soll ja nur erscheinen wenn man eingeloggt ist und nicht vorher nun wollte ich fragen ob mir da wer helfen kann?

    Login.php

    Code (Text):
    1. <style type="text/css">
    2. <!--
    3. body,td,th {
    4.     color: #FFFFFF;
    5.     background-attachment: fixed;
    6.     background-color: #636677;
    7.     background-repeat: no-repeat;
    8.     background-position: center center;
    9.     font-family: Arial, Helvetica, sans-serif;
    10.     font-size: 12px;
    11. }
    12. body {
    13.     background-color: #636677;
    14. }
    15. -->
    16. </style><?
    17. session_start();
    18. include 'sessionhelpers.inc.php';
    19. if (isset($_POST['login']))
    20. {
    21.     $userid=check_user($_POST['username'], $_POST['userpass']);
    22.     if ($userid!=false)
    23.         login($userid);
    24.     else
    25.         echo 'Ihre Anmeldedaten waren nicht korrekt!';
    26. }
    27. if (!logged_in())
    28.     echo '<form method="post" action="member.php" target="main">
    29.     <div align=center><table><tr><td>Nickname:</td><td><input name="username" type="text"></td></tr><tr><td>Password:</td><td><input name="userpass" type="password"></td></tr></table>
    30.         <input name="login" type="submit" id="login" value="Einloggen"></div>
    31.     </form>';
    32. else
    33.     echo '[url="logout.php"]Ausloggen[/url]';  
    Logged_in.php

    Code (Text):
    1. <style type="text/css">
    2. <!--
    3. body,td,th {
    4.     color: #FFFFFF;
    5. }
    6. body {
    7.     background-color: #636677;
    8. }
    9. a:link {
    10.     color: #FFFFFF;
    11. }
    12. a:visited {
    13.     color: #FFFFFF;
    14. }
    15. a:hover {
    16.     color: #FFFFFF;
    17. }
    18. -->
    19. </style><?
    20. session_start();
    21. include 'sessionhelpers.inc.php';
    22. echo 'Sie sind ';
    23. if (!logged_in())
    24.     echo 'nicht ';
    25. echo 'eingeloggt.
    26.  
    27. ';
    28. echo '[url="login.php"] >zurück[/url]';
    29. ?>
    sessionhelpers.inc.php

    Code (Text):
    1. <style type="text/css">
    2. <!--
    3. body,td,th {
    4.     color: #FFFFFF;
    5. }
    6. body {
    7.     background-color: #636677;
    8. }
    9. a:link {
    10.     color: #FFFFFF;
    11. }
    12. a:visited {
    13.     color: #FFFFFF;
    14. }
    15. a:hover {
    16.     color: #FFFFFF;
    17. }
    18. a:active {
    19.     color: #FFFFFF;
    20. }
    21. -->
    22. </style><?
    23. function connect()
    24. {
    25.  
    26. mysql_connect("localhost", "Datenbank_de", "passwort");
    27. mysql_select_db("Datenbank_de_1");
    28.  
    29. ;
    30. }
    31.  
    32. function check_user($name, $pass)
    33. {
    34.     $sql="SELECT UserId
    35.     FROM users
    36.     WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
    37.     LIMIT 1";
    38.     $result= mysql_query($sql) or die(mysql_error());
    39.     if ( mysql_num_rows($result)==1)
    40.     {
    41.         $user=mysql_fetch_assoc($result);
    42.         return $user['UserId'];
    43.     }
    44.     else
    45.         return false;
    46. }
    47.  
    48. function login($userid)
    49. {
    50.     $sql="UPDATE users
    51.     SET UserSession='".session_id()."'
    52.     WHERE UserId=".$userid;
    53.      mysql_query($sql);
    54. }
    55.  
    56. function logged_in()
    57. {
    58.     $sql="SELECT UserId
    59.     FROM users
    60.     WHERE UserSession='".session_id()."'
    61.     LIMIT 1";
    62.     $result= mysql_query($sql);
    63.       return ( mysql_num_rows($result)==1);
    64. }
    65.  
    66. function logout()
    67. {
    68.     $sql="UPDATE users
    69.     SET UserSession=NULL
    70.     WHERE UserSession='".session_id()."'";
    71.      mysql_query($sql);
    72. }
    73.  
    74. connect();
    75. ?>
    die daten bei mysql_connect stimmen nicht ich habe meine raus genommen

    also wenn ich mich nun einlogge soll die seite member.php im main erscheinen

    Vielen Dank

    Lexia
     
    #1      
  2. 10c

    10c Unscharfe Maske

    Dabei seit:
    05.10.2005
    Beiträge:
    253
    Geschlecht:
    männlich
    Ort:
    Hamburg
    Kameratyp:
    Pentax K100D
    PHP problem beim Login
    Dass die "member.php" in jedem Fall angezeigt wird, ist zu erwarten.
    :wink:
    Denn so hast du es mit deiner HTML-Auszeichnung festgelegt. Und das unabhängig von der Richtigkeit oder sogar einem generellen Fehlen der Formulardaten.

    Es gibt nun mehrere Lösungsansätze.
    Das Einfachste ist aber sicherlich die Formvalidierung und Userauthentifizierung in der Member.php zu implementieren.
    Fällt das Ergebnis dieser Prozedur negativ aus, könntest du mit "header('Location : login.php')" wieder das Formular anzeigen.

    10c :)
     
    #2      
  3. Lexia

    Lexia Noch nicht viel geschrieben

    Dabei seit:
    02.11.2004
    Beiträge:
    37
    Geschlecht:
    weiblich
    PHP problem beim Login
    wie müsste denn der code aussehen auf der member.php? also ich habe ja das problem dass die member.php auch schon einen style hat

    bin in PHP recht neu deshalb würde mir der code ein wenig weiterhelfen wie er sein müsste z.b

    echo '<form method="post" action="member.php" target="main">

    hab ich in

    echo '<form method="post" action="login.php" target="main">

    umgeändert
     
    #3      
  4. 10c

    10c Unscharfe Maske

    Dabei seit:
    05.10.2005
    Beiträge:
    253
    Geschlecht:
    männlich
    Ort:
    Hamburg
    Kameratyp:
    Pentax K100D
    PHP problem beim Login
    login.php

    Die Datei habe ich ein bisschen modifizieren müssen.
    Die Überprüfung mit eventueller Header-Anweisung steht jetzt ganz oben, noch bevor irgendwelche HTML-Outputs erfolgen. Grund: Ein Header muss immer als erstes gesendet werden.

    Die IF-Abfrage, welche das Formular umspannt hatte, habe ich rausgenommen. Wenn die Scriptausführung bis dahin kommt, ist sowieso etwas schief gelaufen oder die Seite wird das erste Mal aufgerufen. Das Formular muss also in jedem Fall angezeigt werden.

    Deinen "Logout-Link" habe ich ebenfalls herausgenommen.
    Dieser wird logischerweise niemals angezeigt, da bei Erfolg in diesem Frame ja die member.php angezeigt wird.
    Und wenn das Formular angezeigt wird, wir ja noch nicht eingeloggt sind.

    Diesen Link integrierst du am Besten in der member.php.

    Ich habe meinen Kram jetzt nicht wirklich testen können.
    Sollte irgend etwas nicht funktionieren, melde dich einfach noch mal. ;)

    Code (Text):
    1.  
    2.  
    3. <?php
    4.  
    5. $error = NULL;
    6. session_start();
    7. include 'sessionhelpers.inc.php';
    8. if (!empty($_POST['login']))
    9. {
    10.     $userid=check_user($_POST['username'], $_POST['userpass']);
    11.     if ($userid!=false)
    12.     {
    13.         login($userid);
    14.         header('location: member.php');
    15.         exit;
    16.  
    17.     }
    18.     else
    19.     {
    20.         $error = 'Ihre Anmeldedaten waren nicht korrekt!';
    21.     }
    22. }
    23. ?>
    24.  
    25. <style type="text/css">
    26. <!--
    27. body,td,th {
    28.    color: #FFFFFF;
    29.    background-attachment: fixed;
    30.    background-color: #636677;
    31.    background-repeat: no-repeat;
    32.    background-position: center center;
    33.    font-family: Arial, Helvetica, sans-serif;
    34.    font-size: 12px;
    35. }
    36. body {
    37.    background-color: #636677;
    38. }
    39. -->
    40. </style>
    41.  
    42. <?php
    43.  
    44.  
    45. echo $error; // fehlermeldung ausgeben...
    46.  
    47. echo '<form method="post" action="login.php" target="main">
    48.    <div align=center><table><tr><td>Nickname:</td><td><input name="username" type="text"></td></tr><tr><td>Password:</td><td><input name="userpass" type="password"></td></tr></table>
    49.         <input name="login" type="submit" id="login" value="Einloggen"></div>
    50.     </form>';
    51.  
    52. ?>
    53.  
     
    #4      
Seobility SEO Tool
x
×
×
teststefan