Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    16

    Il server mi si perde le variabili di sessione

    Ciao a tutti, sto realizzando un'applicazione php ma purtroppo ho un problema non da poco:

    Nella pagina iniziale index.php faccio loggare gli utenti e creo una sessione php e delle variabili di sessione nella falsariga di

    codice:
     $_SESSION['A'] = "valoreA"; 
     $_SESSION['B'] = "valoreB";
    e invio l'utente all'area privata

    codice:
     header("Location: privato.php");
    A questo punto per ogni pagina dell'area privata controllo che sia attiva la sessione altrimenti rimando ad index.php:

    codice:
    <?php
       session_start();
    
       $notDenied = false;
       
       if((isset($_SESSION['A']))&&(isset($_SESSION['B']))){
    	  $notDenied = true;
       }else{
    	  header("Location: index.php?error=noPriv");
       }   
       
       if($notDenied){
          //  Codice pagina
       }
    Ora tutto questo funziona semza problemi in locale, con xampp, mentre quando vado a caricare sul server succede una volta su 2 che il server mi rimanda al'index, come se non trovasse le variabili di sessione.

    Qualcuno ha avuto esterienze analoghe a riguardo? Il fatto che tutto funzioni in locale mi fa pensare che sia un problema legato al servizio di hosting al quale mi appoggio(a pagamento)... dite che mi convenga sentire loro(anche se dai log del server non sembrano esserci errori nella mia applicazione)?

  2. #2
    per vedere se effettivamente "perde" le variabili prova a mettere un
    Codice PHP:
    var_dump($_SESSION); die() 
    prima del blocco if...
    PS:
    Secondo me ci sono problemi con il cookie per le sessioni

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    16
    Grazie per il consiglio!

    Il problema è che non mi da più l'errore, problema perchè siccome non ho praticamente fatto nulla se non isolato la riga che lo genera dovesse presentarsi quando il programma dovrà essere usato già mmi immagino le lamentale che mi arriveranno

    Ma è possibile una cosa del genere? Cioè mi aspetto errori ma che si presentino sempre o non si presentino proprio... questo non me lo spiego.

  4. #4
    Non so se sei arrivato alla radice del problema, ad ogni modo, quando è così, magari prova con estensioni tipo xdebug, e controlla lo stack completo, se puoi magari con lo Zend Debug, che così hai anche l'interfaccia, cmq puoi anche metterti a farlo riga per riga...

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    16
    Grazie per l'interesse francy.

    Non è mia intenzione fare nomi ma posso dire che il problema non era mio ma del server che mi hosta l'applicazione: in alcuni casi dopo un reindirizzamento usando header si perdeva proprio la sessione(verificato con dump($_SESSION)).

    Poichè devo garantire un certo grado di affidabiltà sono stato costretto a riscrivere la parte di gestione degli accessi, risolvendo - sembra definitivamente - la situazione.

    SOLUZIONE:

    Passare manualmente la sessione con GET.

    Questo comporta un calo di sicurezza generale, compensato assegnando un nuovo id alla sessione ogni volta che l'utente cambia pagina, in questo modo:

    Codice PHP:
    session_start();
       
       
    $permesso false;
       
       if(
    $_SESSION[logIn]=="loggato"){
          require_once(
    "(...)/session_Regenerate_Id.php");
          
    $permesso true;
          if (!
    function_exists("session_regenerate_id")) {  // Funzione scritta manualmente in caso server non sia aggiornato
                      
    sessie_regenerate_id(); 
                   } else { 
                      
    session_regenerate_id(); // Funzione predefinita che aggiorna l'id di sessione
                   

       }else{
          
    header("Location: index.php?error=noPriv");
       }
       
       
       if(
    $permesso){
          (
    codice pagina)
       } 

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.