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

    Sessioni che durano solo una pagina

    Salve, non riesco a capire come mai la sessione che ho fatto dura solo una pagina, ovvero finche sto' nella pagina stessa.


    Ho fatto un sistema di login con due field (username e psw) le invio alla pagina stessa, questa apre una sessione registra il risultato del login (se avvenuto con successo o meno).

    Se leggo la variabile $_Session[autenticato] in un'altro punto della pagina, me la legge correttamente, se clicco su qualche link pero che va verso un'altra pagina contenuta sulla stessa directory con un session_start() all'inizio le variabili di sessione sono automaticamente sparite :\

    come se la sessione non perdurasse...


    qualche info a riguardo ?

  2. #2
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    Re: Sessioni che durano solo una pagina

    Originariamente inviato da Nicolablu
    Salve, non riesco a capire come mai la sessione che ho fatto dura solo una pagina, ovvero finche sto' nella pagina stessa.


    Ho fatto un sistema di login con due field (username e psw) le invio alla pagina stessa, questa apre una sessione registra il risultato del login (se avvenuto con successo o meno).

    Se leggo la variabile $_Session[autenticato] in un'altro punto della pagina, me la legge correttamente, se clicco su qualche link pero che va verso un'altra pagina contenuta sulla stessa directory con un session_start() all'inizio le variabili di sessione sono automaticamente sparite :\

    come se la sessione non perdurasse...


    qualche info a riguardo ?
    Non so se ho capito bene, tu vorresti che rimanga ciò che è stato scritto nel campo fino a quando non lo session_destroy();, giusto?

    Se cosi ti posto un mio campo, prendilo come modello:

    codice:
    <input class="campi1" name="nome" value="<?php echo htmlspecialchars($_SESSION['nome'])?>" size="30"  type="text" maxlength="15" onblur="this.value=this.value.replace(/\s*$|^\s*/,'')" />

  3. #3
    no, non intedevo quello... il problema è che le mie sessioni non si comportano da sessione

    appena cambio pagina e tento di accedere alla variabile $_sessione[miavar] che ho registrato in una pagina precedente non va +

    cosa puo' essere? è la prima volta che testo le sessioni in questo Webserver (MAMP per macosx) pero' ad esempio con Wordpress funziona tutto bene. quindi l'errore sta nel mio codice :\

    qui sotto il codice :\



    Codice PHP:
    <?php
    Session_start
    ();
    Session_register("user_name");
    Session_register("autenticato");
    Session_register("user_id");

    include(
    'include/connessione.php');

    if (isset(
    $_POST["username"])) {
     

        
        
    //Queste sono le variabili che vengono inviate dal filmato flash
        
    $user=$_POST['username'];
        
    $pass=$_POST['password'];

        
    //connessione al database
        
    if ($user && $pass){
                
    //Creao la query
                                
    $query "SELECT * FROM users WHERE username = '$user' AND password = '$pass'";
                                
    $result mysql_query$query ) or die ("query errata");
                                
    $num mysql_num_rows$result );
                                


                              if (
    $num==1) {
                                               
    $user_name $user;
                                               
    $autenticato 1;
                                            
    $riga mysql_fetch_array($result);
                                             
    $user_id $riga['id'];
                                             
    mysql_free_result($result);
                                              } 
                              else             {
                                             
    $autenticato 0;
                                              } 
      
                            }
        else
                          {
                          
    $autenticato 2;
                          }
    }

    include(
    'include/function.php');
    $_SESSION[autenticato] = $autenticato;
    if (!isset(
    $_SESSION[autenticato])) {$_SESSION[autenticato] = -1;}
      
    ?>
    l'ho messo in un file session.php che includo in tutti i file ..


    che ne pensate ?

  4. #4
    Prova un pò a mettere gli apici nel nome della variabile...

    Codice PHP:
    $_SESSION['autenticato'] = $autenticato;
    if (!isset(
    $_SESSION['autenticato'])) 
    {
        
    $_SESSION['autenticato'] = -1;

    EDIT: E dichiara la variabile $autenticato all'inizio del codice.


  5. #5
    nada, appena cambio pagina , pur restando nella stessa directory del sito e includendo il codice postato qui sopra mi da sempre isset($_SESSION['autenticato']) uguale a FALSE quindi come se non esistesse quella variabile :\

  6. #6
    Nel caso che hai postato se ti restituisce FALSE vuol dire che è settata...

    Tu hai messo

    Codice PHP:
    !isset($_SESSION['autenticato']) 
    Per cui:

    !isset() == TRUE -> Non è stata settata

    !isset() == FALSE -> E' stata settata

  7. #7
    si lo so

    infatti nel mio codice faccio dei controlli per assegnare la variabile, se alla fine dell'ambaradam ancora non è sta settata !isset == true allora la setto io, altrimenti non tocco nulla.


    il problema è che la variabile appena cambio pagina è automaticamente non settata, (e lo vedo facendo un ECHO all'inizio subito dopo aver fatto session star()

    non si ricorda nulla della sessione sulla pagina precedente

  8. #8
    il problema è che la variabile appena cambio pagina è automaticamente non settata, (e lo vedo facendo un ECHO all'inizio subito dopo aver fatto session star()
    Dopo l'inclusione di quel file session.php metti un session_start() ?

  9. #9
    no a dir la verità io ho il file


    session.php che è il codice che ti ho pastato sopra che inizia con

    session_start();




    e poi non scrivo più session_start();

    mi limito a mettere in ogni pagina a scrivere include(session.php)

  10. #10
    Prova a levare i vari session_register() all'inizio del session.php .

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.