Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    297

    sessioni non funzionano in remoto

    Ciao Ragazzi,
    In un sito che sto finendo di realizzare ho creato un sistema di login per entrare del db dove poter vedere i dati, modificali o cancellarli.
    php e mysql non sono certo il mio forte, ma aiutandomi con un tutorial ho creato un sistema abbastanza semplice: da login.php inserisco il form che chiede user e password, passa le variabili tramite POST a verifica.php che fa partire una sessione, controlla se i dati inseriti corrispondono a quelli sul db e se tutto va bene ti porta su mostra.php, altrimenti di nuovo su login.php:

    Verifica.php :
    Codice PHP:
    <?php
    session_start
    (); 
    include 
    'include/db_connect.php'

    $user=mysql_real_escape_string($_POST['usr']);
    $pass=mysql_real_escape_string(sha1($_POST['psw'])); 
     
     
    $query "SELECT * FROM login WHERE username = '$user' AND password = '$pass' ";
     
    $ris mysql_query($query$conn) or die (mysql_error());
     
    $riga=mysql_fetch_array($ris);  
     
    $cod=$riga['username'];
     
    if (
    $cod == NULL$trovato ;
    else 
    $trovato 1;  
     
    if(
    $trovato === 1) {
     
      
    session_register('autorizzato');
     
      
    $_SESSION["autorizzato"] = 1;
     
      
    $_SESSION['cod'] = $cod;
     
       
    header("Location:mostra.php");
     
    } else {
     

     
    header("Location:login.php");
     
    }
    ?>
    Vengo riportato nella pagina mostra.php che a sua volta ha un controllo per la sessione:
    Codice PHP:
    <?php
    session_start
    ();

    if (!
    session_is_registered('autorizzato')) {
      echo 
    "<span id='clearing'></span><h1 style='margin-left: 30px;'>Area riservata, accesso negato.</h1>";
      echo 
    "<h3 style='margin-left: 30px;'>Per effettuare il login clicca [url='login.php']<font color='blue'>qui</font>[/url]</h3>";
      die;
    }
     
    $cod $_SESSION['cod']; 
    ?>

    <?php
    include 'include/db_connect.php'
     
    $sql "SELECT id,titolo...";
    $res mysql_query($sql$conn);
     
    echo 
    '......' ;
    Il problema è che pur portandomi su mostra.php sembra che qui la sessione non sia presente, infatti mi appare la simpatica scritta
    'Area riservata, accesso negato...'

    Non mi spiego come mai in locale funzioni bene e una volta messo in remoto si comporti diversamente, qualche idea? Grazie in anticipo!

  2. #2
    session_register() è session_is_registered() sono deprecati. Utilizza direttamente:

    Codice PHP:
    ...
    $_SESSION["autorizzato"] = 1
    ... 
    Codice PHP:
    ...
    if (!isset(
    $_SESSION["autorizzato"])) {
        
    // Non autorizzato
    } else {
        
    // Autorizzato
    }
    ... 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    297
    Originariamente inviato da satifal
    session_register() è session_is_registered() sono deprecati. Utilizza direttamente:

    Codice PHP:
    ...
    $_SESSION["autorizzato"] = 1
    ... 
    Codice PHP:
    ...
    if (!isset(
    $_SESSION["autorizzato"])) {
        
    // Non autorizzato
    } else {
        
    // Autorizzato
    }
    ... 
    Ciao Satifal,
    Grazie per la correzione, ho tolto i comandi deprecati e sostituito il secondo, tuttavia continua a non farmi accedere alla pagina!

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.