Frage zum Tutorial von MrHappiness

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

  • #16
    das heißt, wenn ich es so mache dann gehts???

    PHP-Code:
    function logged_in() 

           
    $sql "UPDATE users SET UserSession=NULL WHERE lastaction < NOW() - INTERVAL 2 MINUTE ";
        
    $erg mysql_query ($sql); 


       
    $sql="SELECT UserId 
        FROM users 
        WHERE UserSession='"
    .session_id()."' 
        LIMIT 1"

        
    $resultmysql_query($sql); 
          return ( 
    mysql_num_rows($result)==1); 
        

        

    Kommentar


    • #17
      eventuell noch bei dem user, der eingeloggt ist den wert von lastaction aktualisieren, aber sonst schaut's gut aus
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #18
        hmm,

        OffTopic:
        du hast ja jetzt zwei möglichkeiten:

        1. warte bis jemand, zb. ich, dir ne dumme antwort gibt.
        2. probier es aus.
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #19
          da die funktion "logged_in" auf jeder geschützten seite aufgerufen wird, sollte das folgende script dann die lösung sein - oder !?


          PHP-Code:

          function logged_in() 


          //
          // LastAction des Users aktualisieren
          //
           
          $sql1 "SELECT * FROM users WHERE UserSession = '".session_id()."'";
          $result mysql_query($sql1$conn);
          while (
          $reihe mysql_fetch_array($resultMYSQL_NUM)) {

          $sql2 "UPDATE users SET LastAction  = NOW() WHERE UserID = $reihe[0]";
          $erg mysql_query ($sql2);
          }


                 
          $sql "UPDATE users SET UserSession=NULL WHERE lastaction < NOW() - INTERVAL 2 MINUTE ";
              
          $erg mysql_query ($sql); 


             
          $sql="SELECT UserId 
              FROM users 
              WHERE UserSession='"
          .session_id()."' 
              LIMIT 1"

              
          $resultmysql_query($sql); 
                return ( 
          mysql_num_rows($result)==1); 
              


          Kommentar


          • #20
            könnte man meine, aber geht auch schöner

            warum updatest du nicht die spalte, die auch deine where-bedingung im select erfüllt?
            dann sparst du dir die while-schleife
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #21
              habs eingebaut!

              jetzt gibt er mir aber folgende fehlermeldungen:

              Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\xampp\xampp\htdocs\dev\sessionhelpers.inc.php on line 54

              Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\xampp\xampp\htdocs\dev\sessionhelpers.inc.php on line 55


              die zeilen die er meint sind:

              [PHP]
              ...
              53 $sql1 = "SELECT * FROM users WHERE UserSession = '".session_id()."'";
              54 $result = mysql_query($sql1, $conn);
              55 while ($reihe = mysql_fetch_array($result, MYSQL_NUM)) {
              56 $sql2 = "UPDATE users SET LastAction = NOW() WHERE UserID = $reihe[0]";
              57 $erg = mysql_query ($sql2);
              }
              ...
              [/PHP

              Kommentar


              • #22
                woher kommt deiner meinung nach $conn?
                PHP-Code:
                function logged_in()
                {
                  
                mysql_query("UPDATE das du schon hast");
                  
                mysql_query("UPDATE users 
                    SET lastaction=NOW()
                    WHERE usersession='"
                .session_()."'
                    LIMIT 1"
                ;
                  
                jetzt das select

                so sollte es hinhauen
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #23
                  hmm,...

                  wenn ich das so mache

                  PHP-Code:

                  mysql_query
                  ("UPDATE users SET UserSession=NULL WHERE lastaction < NOW() - INTERVAL 2 MINUTE ");
                  mysql_query("UPDATE users SET lastaction=NOW() WHERE UserSession='".session_id()."' LIMIT 1");
                  $sql="SELECT UserId FROM users WHERE UserSession='".session_id()."' LIMIT 1"
                     
                  $resultmysql_query($sql); 
                     return ( 
                  mysql_num_rows($result)==1); 
                  ... dann muß ich ihm aber nach dem login einen aktuellen lastaction-wert geben sonst wird die session sofort wieder gelöscht!

                  Kommentar


                  • #24
                    gefahr erkannt, gefahr gebannt[color=silver]mach das doch beim login (dem UPDATE da)[/color]
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #25
                      ich bin begeistert! es funzt :-)))

                      Kommentar

                      Lädt...
                      X