id in session speichern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • id in session speichern

    hallo zusammen, ich habe ein kleines loginscript welches name und passwort aus einer tabelle miteinander abgleicht und bei übereinstimmung eine session registriert mit der man einen adminbereich betreten kann. soweit funktionierts, ich bin aber nicht gut genug um folgendes zu lösen:

    ich möchte jetzt das der name, das passwort UND die entsprechende userid in die session geschrieben werden, sodas ich sie nachher aus dieser wieder auslesen kann. die userid muss aber erst aus der tabelle ausgelesen werden und es muss überprüft werden ob die id auch zu dem user gehört (also ob der user, das passwort und die id auch zusammengehören).

    ich würde mich riesig freuen wenn mir jemand helfen könnte! hier mein script:


    ps: meine denkansätze waren in die richtung "SELECT user_id AS uid FROM ".$user_table." WHERE (nick like '$usernick') AND (password = '$userpass')")

    Leider klappte das gar nicht, mal abgesehen davon das ich glaube das es gar nicht konform ist!

    PHP-Code:
    <?php
    //Eingaben werden überprüft
    if($usercheck)
      {
      
    $sql mysql_query("SELECT * FROM ".$user_table." WHERE (nick like '$usernick') AND (password = '$userpass')") or die ('mySQL ERROR (' __LINE__ '): '.mysql_error());
      
    $num_rows mysql_num_rows ($sql);
     
      if (
    $num_rows 0)
        {
        
    $datenrichtig true;
        
    $user_eingeloggt true;
        }
       
        else
          {
          
    $datenrichtig false;
          
    $user_eingeloggt false;
          }
         
          
    $_SESSION['username'] = $usernick;
         
          
    session_register ("user_eingeloggt");
         
          if (
    $datenrichtig)
            {
            
    $meldung "<meta http-equiv=\"refresh\" content=\"1; url=?site=admin\">Vielen Dank für’s Einloggen. Sie werden weitergeleitet...";
            }
           
            else
              {
              
    $meldung "<font color=\"red\"><b>ERROR:</b> Die Daten waren falsch</font>";
              }
      }
     
      else
        {
        
    $meldung "Eintragungen vornehmen und Formular absenden!";
        }
    ?>
    <form action="?site=login" method="post">
      <table width="95%" align="center" cellspacing="0" cellpadding="5" border="0">
        <tr>
          <td>
          <b>&raquo; Einloggen</b>
          <br>
          <br>
          <input class="field" type="text" value="<?php echo("".$usernick.""); ?>" name="usernick"> Name
          <br>
          <input class="field" type="password" value="<?php echo("".$userpass.""); ?>" name="userpass"> Passwort
          <br>
          <input class="button" name="usercheck" type="submit" value="Login">
          <br>
          <br>
          <?php echo("".$meldung.""); ?>
          <div align="center"><a href="?site=register">Registrieren</a> <a href="?site=lostpassword">Passwort senden</a></div>
          </td>
        </tr>
      </table>
    </form>
    ich bin ich...

  • #2
    Salut

    PHP-Code:
    $_SESSION['username'] = $usernick;
    session_register ("user_eingeloggt"); 
    Du solltest nur $_SESSION['username'] verwenden und auf session_register() verzichten.

    Leg doch in der DB pro User ein neues Feld an, wo du die Session ID drinnen speicherst.
    Dann kannst du auf die Daten mit einer MySQL-Abfrage nach der Session-ID zugreifen.

    Ich würde aber nicht den Usernick als Session speichern, sondern die Session-ID z.B.
    PHP-Code:
    $_SESSION['usernick'] = session_id(); 
    Diese Session ID trägst du in der DB dem korrekten Benutzer ein, nachdem die Prüfung seines PW und Namens korrekt war.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      OffTopic:
      ach waren das noch zeiten als zeilen nicht breiter als 72 zeichen waren...
      1. Beitrag umbrechen, nach rechts scrollen ist doof...

      2. mysql_fetch_assoc lesen und verstehen, wie du an die daten aus der abfrage kommst
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar

      Lädt...
      X