Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema Sessioni

  1. #1

    Problema Sessioni

    Salve a tutti.

    Scrivo perchè ho un "piccolo" problema nel codice da me creato per il login.
    Il sito in questione è www.enigmista.netsons.org dove in pratica chiedo di registrarsi e successivamente loggarsi tramite al pannello per entrare nelle pagine di gioco.

    Il problema è che a me personalmente funziona tutto (mi loggo e se clicco su "gioca" mi porta alla pagina protetta.) mentre altri utenti riescono a loggarsi ma quando cliccano su "gioca" da errore e se ritornano alla homepage li ha magicamente sloggati.

    Un mio amico di uni riusciva appunto a loggarsi con conseguente errore nel premere "gioca"... dopo l'eliminazione di cookie ecc. dal proprio browser ha iniziato a funzionare tutto.
    Sapete a cosa posso essere dovuto il problema?
    Perchè ad alcuni funzionano e ad altri no?

    Allego i due pezzi di codice utili:

    il controllo del login.
    i dati sono passati tramite form e funzionano.
    Inizializzo ad "ok" $_SESSION['login'] se pass e user sono nel db.
    Codice PHP:
    <?
     
    include('database.php');
     
    $username=$_POST['username'];
     
    $md5pass md5($_POST['password']);
       if(!
    get_magic_quotes_gpc()) {
        
    $username addslashes($username);
       }
       
    $q "select * from users where username = '$username' and password = '$md5pass'";
       
    $result mysql_query($q,$conn);
       
    $row2 mysql_fetch_array($result);
       if(!
    $result || (mysql_numrows($result) >= 1)){
        
    session_start();
       
    $_SESSION['login'] = "ok";
       
    $_SESSION['username'] = $username;  
       
    header("Location: index.php");
       } else { echo
    "

    <center>[b]LOGIN FALLITO[/b]
    Username o Password errata!"
    ;}
    ?>
    Il controllo che c'è in ogni pagina del gioco che riporta alla pagina errore se non loggati:
    Codice PHP:
    <?
    session_start
    ();
    if (
    $_SESSION['login'] != "ok") {
      
    header("Location: errore.php");
    }
    ?>
    Grazie a tutti in anticipo!

  2. #2
    Codice PHP:
       $q "select * from users where username = '$username' and password = '$md5pass'";
       
    $result mysql_query($q,$conn);
       
    $row2 mysql_fetch_array($result);
       if(!
    $result || (mysql_numrows($result) >= 1)){
        
    session_start(); 
    ........ 
    mi spieghi cosa vorresti fare con questo codice?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    controllare se esce almeno un record dalla query e quindi far partire la sessione.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    442
    if(!$result || (mysql_numrows($result) >= 1)){
    session_start();
    forse sarebbe meglio che corregessi :
    Codice PHP:
     if($result || (mysql_numrows($result) >= 1)){
        
    session_start(); 

  5. #5
    Originariamente inviato da havana24
    controllare se esce almeno un record dalla query e quindi far partire la sessione.
    forse sarebbe meglio fare cosi':

    Codice PHP:
    ......

       
    $q "select * from users 
             where username = '
    $username' and password = '$md5pass'";
       
    $result mysql_query($q,$conn) or die(mysql_error());
       if(
    mysql_num_rows($result) == 1) {
            
    $row2 mysql_fetch_assoc($result);
            
    session_start();
            
    $_SESSION['login'] = "ok";
            
    $_SESSION['username'] = $username;  
            
    header("Location: index.php");
            } else { 
              echo 
    "

    <center>[b]LOGIN FALLITO[/b]
    Username o Password errata!"
    ;
            } 
    mysql_num_rows() e non mysql_numrows

    Se $result fose false denuncerebbe un errore di query e tu riceveresti gia' un warning facendo il mysql_fetch_array()

    ma anche poi ... $row2 = mysql_fetch_assoc($result); a che ti servirebbe visto che non utilizzi il result set?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Eh, purtroppo non sono ancora molto bravo con questo linguaggio quindi ale volte scrivo boiate ed inserisco robe inutili...

    Sistemato le cose che mi avete detto, ma comunque il prolema principale persiste.

  7. #7
    Originariamente inviato da havana24
    Eh, purtroppo non sono ancora molto bravo con questo linguaggio quindi ale volte scrivo boiate ed inserisco robe inutili...

    Sistemato le cose che mi avete detto, ma comunque il prolema principale persiste.
    direi che il fatto che qualcuno va ed altri no questo problema potrebbe essere dato dalla gestione dei cookie da parte del browser. Segnala che da quel punto in poi i cookie vanno abilitati.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.