Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Non stampa il valore di una variabile di sessione

    il seguente codice verifica i dati inseriti nella form di login

    Codice PHP:
    <? ob_start();
    include(
    'inc/conn.inc.php');
    include(
    'inc/functions.php');
    include(
    'inc/db_sel_functions.php');
    $nomeutente trim(stringa_db($_POST['nomeutente']));
    $password trim(stringa_db($_POST['psw']));
    $passwordcr sha1($password);
    $sql="SELECT id FROM tbuser WHERE nomeutente = '$nomeutente' AND psw = '$passwordcr'";
    $result mysqli_query($conn,$sql) or die("Invalid query");
    $num_rows mysqli_num_rows($result);

    if (
    $num_rows != )
    {
        
    header("Location: errore.php"); 
        exit;
    }
    else if (
    $num_rows == 1)
    {    
        
    $sqlNome "SELECT";
        
    $resultdue mysqli_query($conn,$sqlNome);
        while (
    $rowdue mysqli_fetch_array($resultdue)) {
            
    $nome $rowdue['nome'];
        }
        
    session_start();
        
    $_SESSION['user'] = $nomeutente;
        
    $_SESSION['nome'] = $nome;
        
    header("Location: gestionale/index.php"); 
        exit;
    }
    ?>
    il codice funziona quando però accedo alla pagina gestionale/index.php e tento di stampare il contenuto della variabile $_SESSION['nome']
    non mi stampa nulla
    $nome = $_SESSION['nome'];
    echo $nome;
    niente nessun errore e nessun nome

  2. #2
    Chiama http://www.php.net/session_write_close prima di effettuare il redirect ed aggiungi il session_id all'url che utilizzi con header location in modo da propagare la sessione.

  3. #3
    non mi è molto chiaro il passaggio legato al dover aggiungere l'id della sessione all'url
    puoi farmi un esempio ?
    ma poi in tutti i link interni alla cartella con i files protetti dovrò utilizzare la stessa tecnica ?

  4. #4
    mi è bastato aggiungere alla pagina che deve stampare il valore della sessione la chiamata alla funzione
    session_start();


  5. #5
    Beh... si in effetti ogni pagina che sfrutta le sessioni deve avere session_start();.

    Ad ogni modo, filippo.toso ti ha suggerito un ottimo metodo per fare in modo che la sessione sia sempre utilizzabile da tutti i tuoi utenti, anche coloro che hanno disabilitato il salvataggio dei cookies.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    in effetti sono tornato qui proprio per il problema legato ad utenti con cookies disabilitati
    come posso modificare il codice?

    pensavo di modificare il codice seguente
    session_start();
    $_SESSION['user'] = $nomeutente;
    $_SESSION['nome'] = $nome;
    header("Location: gestionale/index.php");
    exit;


    con un qualche cosa del genere

    if (cookies sono abilitati){
    session_start();
    $_SESSION['user'] = $nomeutente;
    $_SESSION['nome'] = $nome;
    header("Location: gestionale/index.php");
    exit;
    } else
    {
    codice per utenti senza cookies (che ovviamente non conosco)
    }

    è giusto ?

  7. #7
    lavorandoci un po' sono arrivato a questo
    Codice PHP:
    if (php_cookie_enable() == true){
            
    session_start();
            
    $_SESSION['user'] = $nomeutente;
            
    $_SESSION['nome'] = $nome
            
    session_write_close();
            
    header("Location: gestionale/index.php"); 
            exit;
        } else {
            
    $PHPSESSID=session_id(); 
            
    header("Location: gestionale/index.php?PHPSESSID=$PHPSESSID"); 
        }

    //funzione per la verifica dei cookie abilitati
    function php_cookie_enable(){
        if (
    $_COOKIE["cookie_test"] == "cookcheck")
       {
         return 
    true;
       }
         else
       {
         return 
    false;
       }

    e sembra funzionare
    ora ipotizzando che un utente non abbia i cookies abilitati arriverà con la sua bella phpsession ma io come recupero il suo nome che tanto comodamente inserisco nelle variabili di sessione ?
    la pagina gestionale/index.php avrà ad inizio pagina il seguente codice
    Codice PHP:
    if (php_cookie_enable() == true){ 
        
    session_start();
        
    $nome $_SESSION['nome'];  
    } else {
     
    // che cosa ci metto ??????????????    


  8. #8
    e se obbligassi gli utenti ad avere i cookies abilitati ?
    anche google mail lo fa

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.