Login mit Cookies

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

  • Login mit Cookies

    Hi

    Also ich tu da schon bestimmt seit 4 Wochen herum.
    Und bitte verweist mich jetzt nicht auf ein Tutorial für Cookies.
    Die hab ich schon bestimmt alle durch.

    Also meine Frage ist wie mache ich das wenn einer seinen Browser schließt das er dann trotzdem eingelogged bleibt.
    Ich weiss das das mit Cookies geht.
    Aber was muss ich in diese Cookkies speichern?
    Ja also ich muss doch bestimmt die User di bzw den Benutzernamen und das Passwort speichern.
    Aber wie speichere ich die?
    Oder mach ich da 2 Cookies?

    Und wie und wo lese ich diese wieder aus?

    Gruss Simon

  • #2
    Re: Login mit Cookies

    Original geschrieben von Simon9990
    Aber wie speichere ich die?
    www.php.net/set_cookie

    Original geschrieben von Simon9990
    Und wie und wo lese ich diese wieder aus?
    in $_COOKIE steht alles drin.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hi ich meine jetzt aber ich muss ja zwei Werte hinein specihern.
      Wie kann ich zwei Variablen reinspeichern.

      Und zweitens muss ich da einfach am Anfang der Seite das Cookie wieder mit print auslesen und dann ist der User eingelogged oder wie mach ich das sonst?

      Gruss Simon

      Kommentar


      • #4
        Original geschrieben von Simon9990
        Hi ich meine jetzt aber ich muss ja zwei Werte hinein specihern.
        Wie kann ich zwei Variablen reinspeichern.

        Und zweitens muss ich da einfach am Anfang der Seite das Cookie wieder mit print auslesen und dann ist der User eingelogged oder wie mach ich das sonst?

        Gruss Simon
        ich fange mal an das php-buch virtuell zu zerstückeln ( bald hat keiner mehr was davon )


        da stehts doch

        PHP-Code:

        <?php
        $value 
        'something from somewhere';

        setcookie("TestCookie"$value);
        setcookie("TestCookie"$valuetime()+3600);  /* expire in 1 hour */
        setcookie("TestCookie"$valuetime()+3600"/~rasmus/"".example.com"1);
        ?>
        der rest steht doch ausführlich da drin.. ( möcht die seite ja nicht ganz ruinieren ) RTFMAOYE ( ReadTheF******ManualAndOpenYourEyes )

        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
        sondern mit den Augen das Manual zu lesen.

        Kommentar


        • #5
          Hi aber da bleibt immer noch das Problem wie lese ich die dann aus?
          Kann ich die Cookies/Datne in den Cookies dann in die Sessions geben und den Rest per
          PHP-Code:
          $result mysql_query("Select * FROM user WHERE id = $Cookie['pid']"); 
          Oder wie mach ich das sonst???


          Gruss Simon

          Kommentar


          • #6
            ich denke mal du loggst dich ein, mit folgendem code anbei:

            PHP-Code:
            // du kannst die zwei sachen zusammen hängen:
            $value $userid ."."$pwd;
            setcookie("Name",  $value ,$time()+60*60*24); 
            und dann im nächsten script:

            PHP-Code:
            // wieder auseinander hängen:

            $value explode("."$_COOKIE[Name]);
            $id $value[0];
            $pwd =  $value[1];
            $result mysql_query("Select * FROM user WHERE id =  $id "); 
            ich denke das ist verständlich .
            "Die Menschheit muss lernen den Krieg zu besiegen, sonst besiegt der Krieg die Menschheit!"
            John F. Kennedy

            Kommentar


            • #7
              hi also ich versteh das immer noch nicht ganz

              Kann mir das jemand bite anhand dieses Beispiels machen?

              PHP-Code:
              <?php
              // Session starten
              session_start ();
              setcookie(login,$row['name'],time()-3600*24*31);

              // Datenbankverbindung aufbauen
              $connectionid mysql_connect ("localhost""*""*");
              if (!
              mysql_select_db ("*"$connectionid))
              {
                die (
              "Keine Verbindung zur Datenbank");
              }

              $sql "SELECT 
                  id, name, rang
                FROM 
                  usertabelle
                WHERE 
                 (name like '"
              .$_REQUEST["name"]."') AND (pw = '".md5 ($_REQUEST["pw"])."')";
              $result mysql_query ($sql);

              if (
              mysql_num_rows ($result) > 0)
              {
                
              // Benutzerdaten in ein Array auslesen.
                
              $data mysql_fetch_array ($result);

                
              // Sessionvariablen erstellen und registrieren
                
              $_SESSION["user_id"] = $data["id"];
                
              $_SESSION["name"] = $data["name"];
                
              $_SESSION["pw"] = $data["pw"];
                
              $_SESSION["rang"] = $data["rang"];

              }
              else
              {
                
              header ("Location: formular.php?fehler=1");
              }
              ?>
              Gruss Simon
              Zuletzt geändert von mrhappiness; 20.06.2004, 10:56.

              Kommentar


              • #8
                Also halt das wo steht setcookie da hab ich mal selbst probiert.
                aber was füge ich dann ein?

                Gruss Simon

                oder wie?

                Kommentar


                • #9
                  kann es sein, dass Du zu faul bist mal in das Manual zu gucken? Cookies sind eines der einfachsten Themen überhaupt.. ( meine Meinung ) oder hast Du Tomaten auf den Augen?


                  setcookie(login,$row['name'],time()-3600*24*31);
                  was soll denn sowas?


                  1. würde das nicht login heißen, sondern "login"
                  2. was soll $row['name'] werden wenn das fertig ist?
                  3. müsste das wenn dann + statt - heißen
                  4. mit klammern zumindest eine! ( time()+3600*24*31 )
                  5. kann das cookie auf der selben seite ferner nicht mal existenz nicht auf der gleichen seite verwendet werden...

                  schau doch mal ins handbuch??

                  Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                  sondern mit den Augen das Manual zu lesen.

                  Kommentar


                  • #10
                    Hallo

                    Also das ist ja nicht das Problem ich hab hier nur das falsche Script gepostet.
                    Nur wie mach ich das für dieses Script.
                    Ich versteh das irgendwie nicht.

                    PHP-Code:
                    <?php

                    include("mysql.php");
                    if (isset(
                    $_POST['logout']))
                    {
                        
                    $skeys array_keys($_SESSION);
                        foreach(
                    $skeys as $sk)
                            unset(
                    $_SESSION[$sk]);
                        
                    session_destroy();
                    }

                    if (isset(
                    $_POST['login']) && isset($_POST['name1']) && strlen($_POST['name1'])
                            && isset(
                    $_POST['pw1']) && strlen($_POST['pw1'])
                        )
                    {
                        
                        
                    $n mysql_escape_string($_POST['name1']);
                        
                    $pw md5($_POST['pw1']);
                        
                    $query "SELECT * FROM $usertable WHERE LCASE(name)=LCASE('$n') AND pw='$pw'";
                        
                    $connect mysql_query($query) or die(mysql_error());

                        if (
                    mysql_num_rows($connect)==1
                        { 
                        
                         


                            list(
                    $_SESSION['id'],$_SESSION['name'],$_SESSION['rang'],$_SESSION['email'],$_SESSION['avatar'],$_SESSION['hobbies'])
                                    = 
                    mysql_fetch_row($connect);
                        }
                        else
                            
                    $error 'Benutzerkennung/Passwort falsch';
                    }

                    if (!isset(
                    $_SESSION['name']))
                    ?>
                        <table width="173" border="0" cellpadding="0" cellspacing="0">
                          <tr>
                            <td width="8" bgcolor="#e7e7e7"><div align="center"><img src="http://sunInfo.spacig.de/Templates/bar01.jpg" width="8" height="22"></div></td>
                            <td width="157" background="http://sunInfo.spacig.de/Templates/bar02.jpg" bgcolor="#e7e7e7"><div align="center"><strong>Login</strong></div></td>
                            <td width="8" bgcolor="#e7e7e7"><img src="http://sunInfo.spacig.de/Templates/bar03.jpg" width="8" height="22"></td>
                          </tr>
                          <tr>
                            <td height="91" colspan="4"><table width="173" border="0" cellpadding="0" cellspacing="0">
                                <tr>
                                  <td height="91" background="http://sunInfo.spacig.de/Templates/space.gif"><table width="173" border="1" cellpadding="0" cellspacing="0">
                                      <tr>
                                        <td height="89" bgcolor="#e7e7e7"><form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                                            <table width="168" border="0" align="center" cellpadding="0" cellspacing="0">
                                              <tr>
                                                <td width="39">Name</td>
                                                <td width="117"><input type="text" name="name1" size="14" />
                                                    <input type="hidden" name="login" value="login" />
                                                </td>
                                              </tr>
                                              <tr>
                                                <td width="39">Passw</td>
                                                <td width="117"><input type="password" size="14" name="pw1" />
                                                </td>
                                              </tr>
                                              <tr>
                                                <td width="39">&nbsp;</td>
                                                <td width="117"><input type="submit" name="login" value="Login">
                                                </td>
                                              </tr>
                                              <?php if(isset($error)) { ?>
                                              <tr>
                                                <td width="39">&nbsp;</td>
                                                <td width="117"><?php echo $error?> </td>
                                              </tr>
                                              <?php ?>
                                            </table>
                                        </form></td>
                                      </tr>
                                  </table></td>
                                </tr>
                            </table></td>
                          </tr>
                        </table>
                        <?php
                    }
                    else
                    ?>
                        <p>angemeldet als: <?php echo $_SESSION['name']; ?>
                        </p>
                        <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                            <input type="submit" name="logout" value="abmelden" />
                        </form>
                    <?php    
                    }
                    ob_end_flush(); 
                    ?>
                    <p>&nbsp;</p>

                    Kommentar


                    • #11
                      Original geschrieben von Simon9990
                      hi also ich versteh das immer noch nicht ganz

                      Kann mir das jemand bite anhand dieses Beispiels machen?

                      PHP-Code:
                      <?php
                      // Session starten
                      session_start ();
                      setcookie(login,$row['name'],time()-3600*24*31);

                      // Datenbankverbindung aufbauen
                      $connectionid mysql_connect ("localhost""*""*");
                      if (!
                      mysql_select_db ("*"$connectionid))
                      {
                        die (
                      "Keine Verbindung zur Datenbank");
                      }

                      $sql "SELECT 
                          id, name, rang
                        FROM 
                          usertabelle
                        WHERE 
                         (name like '"
                      .$_REQUEST["name"]."') AND (pw = '".md5 ($_REQUEST["pw"])."')";
                      $result mysql_query ($sql);

                      if (
                      mysql_num_rows ($result) > 0)
                      {
                        
                      // Benutzerdaten in ein Array auslesen.
                        
                      $data mysql_fetch_array ($result);

                        
                      // Sessionvariablen erstellen und registrieren
                        
                      $_SESSION["user_id"] = $data["id"];
                        
                      $_SESSION["name"] = $data["name"];
                        
                      $_SESSION["pw"] = $data["pw"];
                        
                      $_SESSION["rang"] = $data["rang"];

                      }
                      else
                      {
                        
                      header ("Location: formular.php?fehler=1");
                      }
                      ?>
                      Gruss Simon

                      Alles Schönen und Gut, aber Poste Deine Daten von der Datenbank nicht.

                      mfg. Nico
                      Zuletzt geändert von mrhappiness; 20.06.2004, 10:56.
                      Webspace , Php

                      Kommentar


                      • #12
                        Original geschrieben von Nico_Schubert
                        Alles Schönen und Gut, aber Poste Deine Daten von der Datenbank nicht.

                        mfg. Nico
                        an und für sich lobenswert, aber wenn du nochmal seine zugangsdaten zitierst und ich wegen dir 2 beiträge editieren muss, dann...
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar

                        Lädt...
                        X