sessione che mi da problemi

utilizzo uno script che mi da dei problemi del tipo:

1) se mi loggo nn mi aggiorna la data mi esce cosi:

Benvenuto utente: 9

Ultima Visita: 01-01-1970 01:00:00

se faccio un refresh della pagina allora mi fa vedere ad esempio

Benvenuto utente: 9

Ultima Visita: 19-02-2007 20:35:07

2) se mi disconnetto mi fa riconnettere subito senza dirmi il tempo di inattività

eppure lo script puro, senza layout ecc. funziona benissimo

checkuser.php

<?php 
//Avvio o continuo la sessione 
session_start();

//Controllo che la sessione sia attiva
if(!IsSet($_SESSION['logged'])){
   //Controllo se l' utente vuole loggarsi
   //Recupero i valori da una Form 
   $username = @$_POST['username'];
   $password = @$_POST['password'];
   
   
   //Controllo se l' username e la password non sono vuoti
   if((!strlen($username) == 0) and (!strlen($password) == 0)){
      //Effettuo il controllo dei dati 
      $strSQL = "SELECT iduser FROM users WHERE username = '".$username."' AND password = MD5('".$password."')";
      $result = mysql_query($strSQL); 
      $row = mysql_fetch_row($result); 
      
      //Controllo se l' utente e' stato trovato
      if(!strlen($row[0]) == 0){
         /*Effettuo il Login:
         * Array di sessione
         * Contenente UserID e LastAccess
         */
         $myArray = array($row[0], $row[3]);
         /*Controllo che l' utente non sia già attivo
         * Verifico che siano trascorsi almeno 5 minuti
         * dall' ultima connessione
         */
         if(fDateDiff($myArray[1], time(), 'm') <= 5){
            $login_err = "La sesssione per questo utente è ";
            $login_err .= "già attiva sul sito...<br>";
            $login_err .= "Attendi 5 minuti per ripetere il Login";
         }else{
            //Effettuo il Login
            $_SESSION['logged'] = $myArray;
            $_SESSION['username'] = $username;
         }
      } 
      //Libero la memoria
      mysql_free_result($result);
   }

}else
   //Controllo se aggiornare l' ultima data di accesso
   if(fDateDiff($_SESSION['logged'][1], time(), 'm') > 5){
      $strSQL = "UPDATE users SET user_lastaccess = ".time();
      $strSQL .= " WHERE iduser = ".$_SESSION['logged'][0];
      //Aggiorno la sessione
      $_SESSION['logged'][1] = time();
      mysql_query($strSQL);
   }

if(@$_GET['logout'] == bye){ //Effettuo il Logout
   $_SESSION = array(); //Desetto tutte le variabili di sessione
   session_destroy(); //Distruggo le sessioni
}  

if ($username == "" and $password == "" AND $_POST['login']=="ok") 
 {
  //$login_err = "La <b>Username</b> e la <b>Password</b> sono obbligatori";
  $errori[0] = "La <b>Username</b> e la <b>Password</b> sono obbligatori";
 } 
return $errori;

?>

login.php

<?php
//Includo i file per la connessione
//e per la verifica Utente
require_once('db_vars.inc');
require_once('datediff.php');
require_once('checkuser.php');

?>
........

codice html...

...

.....

stralcio di login

<?php
            //echo @$login_err;
            //Controllo che l' utente sia loggato
            
            if(IsSet($_SESSION['logged'])){
               echo "<p>Benvenuto utente: ".@$_SESSION['logged'][0];
               echo "<br>Ultima Visita: ". date("d-m-Y H:i:s", @$_SESSION['logged'][1]);
            }else{
            ?>

            <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
            <table class="table_login" summary="Login Utente">
             <tr>
                <td>Login:</td>
                <td><input class="input_registrazione" id="username" name="username" maxlength="200" value="" onfocus="setStyle(this.id)" /></td>
             </tr>
             <tr>
                <td>Password:</td>
                <td><input class="input_registrazione" id="password" name="password" maxlength="200" value="" onfocus="setStyle(this.id)" /></td>
             </tr>
             </table>

            <div class="" id="">
               <input type="hidden" name="login" value="ok" />
               <input id="sumbit_login" class="sumbit_login" type="submit" value="Accedi" />
            </div>

            <div class="recoverypassword" id=""><a href="forgotpw.php">Recupera Password</a></div>
            <div class="register" id=""><a href="register.php">Registrazione</a></div>
            </form>
             
            <?php
            }
            ?>            
         </div>
         <div class="" id="">
            <?   // riporto gli errori di inserimento dati
                echo '<ul class=error_reg>';

                foreach ($errori AS $v) {
                
                echo '<li>'.$v.'</li>';
                //testare la sessione
                
                }
                echo '</ul>';
            ?>            
         </div>

 :'(

inviato 9 anni fa
myscript72
X 0 X

Ciao qualcuno riesce a darmi un imput? non riesco a risolvere questo problema...

risposto 9 anni fa
myscript72
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda