Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206

    Sistema di accesso php+sql+javascript

    Ciao a tutti, mi servirebbe un aiuto da parte vostra per risolvere un problema riguasrdante l'accesso al mio sito.

    Ho creato un sistema di accesso php+slq così composto:
    1) L'utente esegue il log-in e il suo id viene caricato in una tabella assieme al tempo di connessione settato con time()+120 e ad un condice generato in radom.
    Contemporanemante viene anche creata una cookie con gli stessi dati

    2) Ogni 90 secondi grazie alla funzione javascript "setInterval" viene richimato un file php che genera un nuovo codice casuale che poi carica nel db assieme al nuovo tempo e sincronizza la cookie.
    Successivamente la funzione alimina anche tutti gli account che non hanno un tempo "passato"

    Quando devo richimare una pagina protetta scarico l'id e il codice dalla cookie e ne controllo i dati con il db.


    Il problema è il seguente: ogni tanto si perde la sincronizzazione tra cookie e db, ne risolta quindi che l'utente non potrà accedere a nuove pagine protette e che dovrà aspettare il tempo della cancellazione dal db per potersi loggare.

    Questo problema mi sta creando numerosi disagi ma non riescon a risolvero.

    Spero che possiate aiutarmi

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,452
    Evidentemente hai sbagliato qualcosa nel codice, ma senza vederlo non ti si può aiutare.

  3. #3
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206
    Quale codice vi devo postare (chiedete ed io post) se volete vi mando un messaggio privato con il link del sito e le credenziali di accesso.

    Nel frattempo questa è la funzione php.

    Codice PHP:
    function controllo_stato_log($id_user$old_code)
     {
      include_once(
    "connessione.php");
     
      
    $prefix "accesso";
      
      
    $tempo time();

      
    $new_tempo $tempo+120;
      
    $new_code new_code(32);
      
    $log_code_cookie $id_user."_".$new_code;

      
    $query_select "SELECT id FROM online_user WHERE id_user='$id_user' AND code='$old_code'";
      
    $result_select mysql_query($query_select$connessione_mysql);
      if(
    mysql_num_rows($result_select) == 1)
       {
        
    $query_update "UPDATE online_user SET time='$new_tempo', code='$new_code' WHERE id_user='$id_user' AND code='$old_code'";
        
    mysql_query($query_update$connessione_mysql);
        
    setcookie("Log_user_wti"$log_code_cookie$tempo+150"/"".worldtechitalia.it");
       }


      
    $query_select "SELECT id_user FROM online_user WHERE time < '$tempo'";
      
    $result_select mysql_query($query_select$connessione_mysql);
      while(
    $row_select mysql_fetch_array($result_select))
       {
        
    $delete_user $row_select_user_system['id_user'];
        
        
    $query_delete "DELETE FROMonline_user WHERE id_user = '$delete_user'"
          
    mysql_query($query_delete$connessione_mysql);
       }
      
      return(
    $new_code);
     } 

    Comunque come ho già detto il problema non è costante ma avviene ogni tanto.


    Edit.

    Forse mi è venuta un'idea: potrei mettere tutta la funzione in un do while controllando alla fine del ciclo che il db e la cookie siano uguali. Credete che funzioni?

    Mi sono accorto anche di un secondo problema se la funzione non viene eseguita totalmente, perchè la pagina viene ricaricata o bloccata o cambiata, la query potrebbe avere valore diverso dal cookie. Posso impedirlo?

  4. #4
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206
    Ok, credo di aver identificato il problema, quella stupida cookie non si aggiorna.
    Ho provato in tutti i modi ma niente alcune volte il suo valore non viene modificato.

    Come posso risolvere?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.