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

    Non ho capito le sessioni

    Scusate ma leggendo la guida non sono riuscito a capire questo capitolo.

    C'è scritto che php inizializza la sessione automaticamente e a noi basta scrivere $_SESSION['nome_sessione'] = $valore_sessione;

    Se così fosse..
    supponiamo che creo due input; uno con name="nome" e uno con name="cognome";
    nell'action ci metto una pagina php il cui codice raccoglie in due variabili distinte i valori $_POST
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];

    e poi metto
    $_SESSION['nome'] = $nome;
    $_SESSION['cognome'] = $cognome;

    e poi ci metto un link a una pagina seguente.
    In quella pagina metto

    $nome = $_SESSION['nome'];
    $cognome = $_SESSION['cognome'];

    ma le variabili $nome e $cognome sono vuote..!
    lo so che sono un nubbio... però in quella lezione sulle session non c'è spiegato una ceppa..!
    mi spiegate come funzionano ste session?
    Questo metodo per i cookie aveva funzionato..

  2. #2
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    all'inizio del primo file devi mettere session_start();
    alcool: la causa e la soluzione di tutti i problemi

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Originariamente inviato da Gumble
    all'inizio del primo file devi mettere session_start();
    di tutti i file usati in sessione, non solo il primo.


  4. #4
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    Originariamente inviato da pierotto
    di tutti i file usati in sessione, non solo il primo.

    colpa mia.. ho fatto confusione.. é che io lo apro nel header.. e poi lo includo sempre... sorry
    alcool: la causa e la soluzione di tutti i problemi

  5. #5
    grazie, ma perchè sulla guida c'è scritto che php inizializza le sessioni automaticamente?

    Non avete qualche link o qualche articolo che spiega meglio questo argomento perfavore?

    Grazie ancora.

  6. #6
    Il concetto delle sessioni è una cosa davvero stupidissima, ricordo che quando capii io come si usavano, dopo averci speso tante energie, rimasi stupito nel vedere che grande biiiip erano XD. PHP starta la sessione in automatico, vero, ma per farlo, bisogna usare la funzione "session_start()" all'inizio di ogni pagina e ricordarsi di non usarla mai dopo aver gia fatto dell'output html perchè, startdando la sessione, il browser deve salvare un cookie che mantenga l'id di sessione e non si possono salvare cookie se c'è gia dell'output html.
    In poche parole, session_start, provvede a creare il cookie che permettera poi a php, nel cambio di pagina o nel refresh, di risalire all'id di sessione che sta usando il browser per quel sito.
    Fatto questo, puoi usare l'array di sessione $_SESSION. Se ad asempio salvi in $_SESSION['mioindice] = 'Hello World!' , al prossimo refresh della pagina o al cambio pagine dello stesso sito, stampando $_SESSION['mioindice'], nell'output avrai: 'Hello World'.
    Alla chiusura del browser, il cookie di sessione viene distrutto e quindi la sessione termina automaticamente.
    Spero di essere stato abbastanza chiaro ^^
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    29
    Originariamente inviato da bonaprogram
    Il concetto delle sessioni è una cosa davvero stupidissima, ricordo che quando capii io come si usavano, dopo averci speso tante energie, rimasi stupito nel vedere che grande biiiip erano XD. PHP starta la sessione in automatico, vero, ma per farlo, bisogna usare la funzione "session_start()" all'inizio di ogni pagina e ricordarsi di non usarla mai dopo aver gia fatto dell'output html perchè, startdando la sessione, il browser deve salvare un cookie che mantenga l'id di sessione e non si possono salvare cookie se c'è gia dell'output html.
    In poche parole, session_start, provvede a creare il cookie che permettera poi a php, nel cambio di pagina o nel refresh, di risalire all'id di sessione che sta usando il browser per quel sito.
    Fatto questo, puoi usare l'array di sessione $_SESSION. Se ad asempio salvi in $_SESSION['mioindice] = 'Hello World!' , al prossimo refresh della pagina o al cambio pagine dello stesso sito, stampando $_SESSION['mioindice'], nell'output avrai: 'Hello World'.
    Alla chiusura del browser, il cookie di sessione viene distrutto e quindi la sessione termina automaticamente.
    Spero di essere stato abbastanza chiaro ^^
    Aggiungo che la differenza principale con i cookie e che oltre all'id di sessione in locale non viene salvato più nulla. Tutti i dati di sessione sono memorizzati sul server.

  8. #8
    grazie ragazzi!
    ci sono altre funzioni predefinite che interagiscono con le sessioni?
    Potreste chiarirmi anche cosa è $_REQUEST ?

  9. #9
    C'è session_id() che ti restituisce l'id di sessione, nella documentazione di php.net trovi tutto quello che ti serve. Per quanto riguarda $_REQUEST, è solo un array associativo che contiene tutti i valori contenuti negli array $_GET $_POST e $_COOCKIE
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  10. #10
    salve a tutti, ho avuto modo di leggere questa conversazione perche nemmeno io avevo le idee chiare sulle sessioni, ora grazie ai vostri interventi sono riuscito a metter giù qualcosa, però c'è ancora un punto che mi è oscuro...

    Io ho creato una serie di link a pagine che riconoscono la sessione partendo dalla pagina login.php che prende i dati passati da una pag HTML tramite una form cosi:

    $log=$_POST['log'];
    $pass=$_POST['pass'];
    $_SESSION['login'] = $log;
    $_SESSION['pass'] = $pass;

    e fin qui tutto ok, ora se in una delle pagine che seguono vado a mettere un link che mi riporta alla 1 pagina (login.php) mi compare quest'errore:

    Notice: Undefined index: log in c:\programmi\easyphp1-8\www\esercizio\login.php on line 12

    Notice: Undefined index: pass in c:\programmi\easyphp1-8\www\esercizio\login.php on line 13

    si riaspetta i valori:
    $log=$_POST['log'];
    $pass=$_POST['pass'];

    come nel 1 caso.

    Come posso ovviare al problema?ovvero come posso creare un link, nelle pagine che seguono quella del login, che mi riporti indietro alla pagina login.php facendo si che il sistema si "ricordi di me"???

    GRAZIE A TUTTI X OGNI INTERVENTO

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.