Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente bannato
    Registrato dal
    Feb 2005
    Messaggi
    171

    Richiamare valori salvati in una sessione

    Ho creato una sessione e ho salvato dentro le informazioni di uno user che si logga, recuperando i dati da una form.

    codice:
     $user = $_POST['username'];
    ora salvo il nome nella sessione :
    codice:
        $_SESSION['user'] = $user;

    Una volta che passa in un altra pagina, io vorrei recuperare il nome dello user, ma non mi recupera niente. Io uso questo codice:
    codice:
    <?php
     $out = $_SESSION['user'];
     print($out);
    ?>
    Solo che non mi stampa niente.

    Come devo fare per riuscire a recuperare i dati salvati?

  2. #2
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    Devi avviare la sessione in ogni pagina che ti interessa (con session_start() quindi)

    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  3. #3
    Utente bannato
    Registrato dal
    Feb 2005
    Messaggi
    171
    ok,l'ho inserito :
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
     GIUSTO!!!!!
    <?php
     session_start(); 
     $out = $_SESSION['log'];
     print($out);
     print("ciao");
    ?>
    </body>
    </html>
    dopo il login entra in questa pagina.

    solo che non riesce a recuperare il valore.mi da un warning quando faccio partire la sessione. Questo è quello ke stampa a video:

    codice:
     GIUSTO!!!!!
    Warning: Cannot send session cache limiter - headers already sent (output started at d:\siti\fantacalcio\giusto.php:9) in d:\siti\fantacalcio\giusto.php on line 10 
    ciao
    non è che devo chiudere la sessione in quealke modo , prima di riaprirla? altrimenti come fa ad aprire la sessione giusta?

  4. #4
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    assicurati di non avere nessun output verso il client prima di istanziare session_start();

    Ciao.
    deleted_id_48586
    Sgurbat
    y.redaelli@gmail.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    come dice sgurbat, session_start deve essere posto ad inizio pagina prima di qualunque output:
    codice:
    
    <?php
    session_start(); 
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
     GIUSTO!!!!!
    <?php
     
     $out = $_SESSION['log'];
     print($out);
     print("ciao");
    ?>
    </body>
    </html>
    prova come ti ho scritto,dovrebbe essere corretto...

    ciao

  6. #6
    Utente bannato
    Registrato dal
    Feb 2005
    Messaggi
    171
    ok. cosi non mi da piu il warning!

    rimane il problema che non mi recupera il dato salvato precedentemente.

    quando esco da una pagina per entrare in un altra devo chiudere la sessione in qualche maniera?

    io non lo faccio.

  7. #7
    no, nn la devi chiudere
    il motivo xcui nn funziona potrebbe essere che hai i cookie disattivati

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Originariamente inviato da John Snow
    ok. cosi non mi da piu il warning!

    rimane il problema che non mi recupera il dato salvato precedentemente.

    quando esco da una pagina per entrare in un altra devo chiudere la sessione in qualche maniera?

    io non lo faccio.
    Metti session_start() in tutte le pagine in cui intendi utilizzare le sessioni...
    Adesso, per l'altro porblema,non ho capito se non riesci a recuperare la sessione nel codice postato prima
    [PHP]
    <?php

    $out = $_SESSION['log'];
    print($out);
    print("ciao");
    ?>
    [PHP]
    oppure se non riesci a recuperarlo in un altra pagina...

    Nel primo caso,fai un print_r($_SESSION) subito dopo session_start() così da verdere se effettivamente hai qualche valore in sessione...
    Se non fosse così devi controllare la pagina in cui setti la sessione stessa...

    Nel secondo caso,ossia il recupero del valore della sessione in un altra pagina, prova a controllare che anche in questa pagina ci sia session_start().

    Ciao

  9. #9
    Utente bannato
    Registrato dal
    Feb 2005
    Messaggi
    171
    i cookie disattivati? come faccio a vederlo? ed ad attivarli?


    il mio probolema è recuperarlo in questa pagina. l'ho salvato in un altra, e voglio recuperarlo in questa.
    per quanto riguarda la stampa di tutto il risultato è misero: Array ( )

    ma nell'altra pagina io l'ho salvato!!!

    ecco la pagina dove salvo i dati :

    codice:
    <?php
    
    if($_POST['submit']) //Qui entra quando invii i dati
    {
     $connessione = mysql_connect("localhost", "root", "");
    
     mysql_select_db("fantacalcio",$connessione);
    
     $user = $_POST['username'];
     $psw = $_POST['password'];
    
     $query = "SELECT count(*)
              FROM utenti 
              WHERE username= '$user' 
              AND password = '$password' ";
    		  
     $res = mysql_query($query);
     $num = mysql_fetch_row($res);
    
     if($num[0] == 1 )
      {
        session_start();
        $_SESSION['log'] = "login";
        header("Location: giusto.php");
        exit; 
      }
     else
      {
       print("sbagliato");  }  
     mysql_close($connessione);
    }
    
    ?>
    lancio una submit con user e psw e poi controllo che sia correto il login. in caso affermativo salvo nela vzariabile il valore "login"

    nella pagina che vi ho gia postato voglio vrecuperare il valore.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova a mettere session_start() all'inizio di tutto e vedere se cambia qualcosa...
    codice:
    <?php
    session_start();
    .......
     if($num[0] == 1 )
      {
        session_start();
        $_SESSION['log'] = "login";
        
    //Qui magari controlla che ti venga effetivamente settata
    //la sessione
        echo "valore sessione: ".$_SESSION['log'];
    //header("Location: giusto.php");
    //exit; 
      }
     else
      {
       print("sbagliato");  }  
     mysql_close($connessione);
    }
    .....
    ?>

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.