Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: problemi con sessioni

  1. #1

    problemi con sessioni

    Per semplificare le cose e risolvere il problema ho testato le sessioni con due paginette, questa è la prima:

    codice:
    <?
    session_start();
    Header("Location:  http://localhost/prova2.php");
    
    
    $nome = "nicola";
    SESSION_register("nome");
    
    ?>
    E questa è la seconda:

    codice:
    <?
    
    $nome= $_SESSION['nome'];
    echo $nome;
    ?>

    Questo è l'errore:
    Notice: Undefined variable: _SESSION in c:\program files\apache group\apache\test\prova2.php on line 3

    Dove sbaglio?

  2. #2
    Semplice, sbagli solo in due punti

    primo) Nella prima pagina devi prima registrare la variabile e poi fare il redirect con la funzione header se no non registri nulla.

    secondo) Nella seconda pagina devi prima di stampare la variabile iniziare la sessione con session_start().

    terzo) Quando registri la variabile ti conviene farlo direttamente e cioe' con:
    codice:
    $_SESSION['nome'] = 'quello che vuoi';
    e quando stampi non serve assegnare il valore per copia ad un'altra variabile, puoi fare direttamente
    codice:
    echo $_SESSION['nome'];
    oppure a limite fare:
    codice:
    $nome =&$_SESSION['nome']; //Assegnazione per riferimento
    echo $nome;
    MiServe di Santino Bivacqua
    PHP/Ruby/Node.js Developer
    www.miserve.com

  3. #3

    Ancora sulle sessioni...

    Uso PHP Version 4.3.4 su Debian.
    Ho il seguente problema con la gestione delle sessioni:
    Leggendo PHP Bible mi viene spiegato che se PHP è compilato, come nel mio caso con l'opzione --enable-trans-sid non dovrei avere nessun problema nell'inserimento di link da una pagina all'altra nemmeno se i cookies fossero disabilitati, nel senso che PHP si preoccuperebbe da sè di propagare tramite URL l'ID di sessione. Ora questo nel mio caso non avviene, nel senso che con i cookies tutto funziona alla perfezione, ma se li disabilito tramite l'opportuna opzione di Mozilla (o di qualsisi altro browser) allora non riesco più a tener traccia della sessione.
    La cosa non ha avuto risvolti nemmeno attivando in php.ini l'opzione session.use_trans_sid che di default è a off e verificando che sia disabilitato anche session.use_only_cookies. Qualcuno sa dirmi come potrei risolvere questo problema?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  4. #4
    Non mi dà più l'errore ma non stampa nulla.
    Ho fatto così:

    codice:
    <?
    session_start();
    $nome = "nicola";
    $_SESSION['nome']=$nome;
    Header("Location:  http://localhost/prova2.php");
    ?>
    E:

    codice:
    <?
    
    $nome =&$_SESSION['nome'];
    echo $nome;
    ?>
    Mi sembra ovvio che non posso passargli il contenuto direttamente dal momento che la variabile potrebbe avere contenuti diversi.

  5. #5
    Vuoi un consiglio, apri il php.ini e cerca la sezione relativa alla gestione degli errori e dove dice qualcosa come E_ALL scrivi E_ALL & ~E_NOTICE, così ti risparmierai un sacco di grane, in quanto questo messaggio può anche comparire solo per notificare un errore che può essere ignorato.

  6. #6
    No, l'errore non me lo dà più ma il contenuto della variabile non viene stampato, è come se non l'avesse registrato. Io vorrei sapere perché nessuno è in grado di dirmi qualcosa§(non ce l'ho con te), eppure ci sono un sacco di professionisti qui e non sono in grado di dirmi qualcosa.
    Io non sto facendo una cosetta tanto per fare, è una cosa che mi è stata commissionata e la devo portare a termine. Se non ho risposte chiare posterò su altri forum e ignorerò per sempre questo.

  7. #7
    No, l'errore non me lo dà più ma il contenuto della variabile non viene stampato, è come se non l'avesse registrato. §(non ce l'ho con te), eppure ci sono un sacco di professionisti qui e non sono in grado di dirmi qualcosa.
    hahaha quante risate!
    Io vorrei sapere perché nessuno è in grado di dirmi qualcosa
    1) qui è già tanto che qualcuno ti risponda se sei così insolente.

    eppure ci sono un sacco di professionisti qui e non sono in grado di dirmi qualcosa.
    2) non sei più importante degli altri
    Io non sto facendo una cosetta tanto per fare, è una cosa che mi è stata commissionata e la devo portare a termine.
    3) che sia una cosa per te o che sia una cosa commissionata a noi non cambia nulla.
    4) Prima di accettare una commissione accertati di avere le capacità per farla prima


    5) se non ti stampa nulla è perchè non hai mai avviato una sessione nell'altra pagina.

  8. #8
    5) se non ti stampa nulla è perchè non hai mai avviato una sessione nell'altra pagina.
    Peccato che l'avevo messo nell'altra pagina ma un tizio mi ha consigliato di metterlo nella seconda, cosa che mi è suonata strana.
    Insolente sarai tu e poi detesto chi parla a nome degli altri.
    Io magari non sarò competente ma a oggi nessuno è ruscito a darmi una risposta, nemmeno in questo forum dove circolano menti del tuo calibro. Se sei così bravo perché non mi dici come devo fare?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Calma e gesso.

    prova1.php
    codice:
    <?
    session_start();
    $_SESSION['nome']= "nicola";
    Header("Location: http://localhost/prova2.php");
    ?>
    prova2.php
    codice:
    <?
    session_start();
    if(isset($_SESSION['nome'])) {
    echo "Sessione valida per $_SESSION[nome]
    ";
    } else {
    echo "Sessione non valida
    ";
    exit;
    }
    ?>

  10. #10
    Ti ringrazio dell'aiuto ma vorrei sapere se posso passare un valore con una variabile e non il contenuto diretto, e poi perché nei manuali che ho letto non si dice che bisogna mettere session_start in tutte le pagine?

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.