Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Catturare una variabile di sessione dopo un form

    Nell'alto di ogni pagina ho messo il seguente codice, che prende la variabile di sessione catturata nella login e guarda se è presente in una certa tabella: in caso contrario non apre la pagina e rimanda alla login. Questo serve per impedire che digitando il percorso della pagina, questa possa essere raggiunta senza la login.

    <?php
    session_start();
    include ("controllo.php");
    ?>

    File controllo.php:
    Codice PHP:
    <?php
      $controllo
    ="SELECT * FROM tabella WHERE Login='{$_SESSION['login']}'";
      
    $controllo_query mysql_query($controllo) or die(mysql_error());
      
    $num=mysql_num_rows($controllo_query);
      if(
    $num==0){
        
    header("Location: ../index.php");
      }
    ?>
    Ora, in una pagina (pag1) ho un form, che invia i risultati a una seconda pagina (pag2). Quando da pag2 cerco di raggiungere un'altra pagina cliccando sui link del menu laterale, mi rimanda alla login. Ho provato a stampare le variabili di sessione in pag2 e ho visto che sono vuote.
    Come faccio a passargli le stesse variabili di sessione da pag1 a pag2?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Nessuna idea?
    La variabile di sessione è una mia idea, forse il problema potrebbe essere altrove. Ma non riesco a trovarlo. Se tolgo l'include del controllo della pagina che vado a linkare, non mi dà più il problema. Ma così rimango senza protezione

  3. #3
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Hai messo:

    session_start();

    in tutte le pagine?

  4. #4
    Potrebbe anche essere che non hai aperto il db, prova temporaneamente a togliere l'header e mettere un die() e vedere se stampa qualche errore.
    Poi prova ad aggiungere un echo della variabile di sessione.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Potrebbe anche essere che non hai aperto il db, prova temporaneamente a togliere l'header e mettere un die() e vedere se stampa qualche errore.
    Sì, il db l'avevo aperto. Ho provato anche a togliere l'header e a mettere un echo al suo posto: mi visualizza la pagina linkata (come dovrebbe essere) ma con sopra il risultato dell'echo.
    Ho messo un echo alla variabile di sessione della login e ho visto che effettivamente non è vuota, ma contiene la login. Dunque probabilmente il problema non è neanche la variabile di sessione...

    Hai messo:

    session_start();

    in tutte le pagine?
    Fatto anche questo. Il codice che ho scritto sotto l'ho messo in ogni pagina, escluso l'index (dove ho messo solo sessione_start).

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Ho trovato una soluzione, ma non so quanto valga a sicurezza...
    Elimino quei controlli per le pagine base (quelle a cui si riferiscono i link) e li lascio per quelli che vengono raggiunti dai form. Sembra funzionare, cioè raggiungono quella pagina ma il database così non è accessibile. In mancanza d'altro, meglio di niente

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.