Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Pagina o sessione scaduta

    Ciao a tutti,

    da una pagina home.php, dopo aver effettuato il login accedo ad una seconda pagina contenente dati personali.
    Il problema è che se torno indietro con il tasto del browser non scade la pagina. come posso ovviare?

    questa è la parte di codice php della pagina home

    <?php
    include ("config.inc.php");
    $_SESSION = array();
    if (!isset($_SESSION)) {
    session_start();
    }
    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset($_POST['user'])) {
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    mysql_connect("localhost", "root", "");
    $conn=mysql_connect("localhost", "root", "");
    mysql_select_db($db_name, $conn);
    $query="SELECT * FROM `soci_2005_2006` WHERE userid = '$user' AND password = '$pass'";
    $login = mysql_query($query, $conn) or die ("Errore nella Query: ".mysql_error());
    $riga = mysql_fetch_array($login);
    #$loginFoundUser = mysql_num_rows($login);
    #if ($loginFoundUser) {
    if ($riga['userid'] == $user) {
    //declare due session variables and assign them
    $_SESSION['MM_user'] = $user;
    $_SESSION['MM_pass'] = $pass;
    header("Location: " . "soci.php" );
    }else{
    header("Location: "."home.php");
    }
    }
    ?>

    e questa è la parte di codice php relativa alla pagina contenente i dati personali.

    Grazie

  2. #2
    oops! ho dimenticato di inserire la seconda parte di codice

    <?php

    include("config.inc.php");
    if (!isset($_SESSION)) {
    session_start();
    }
    $user = $_SESSION['MM_user'] ;
    $pass = $_SESSION['MM_pass'] ;
    if ($user ==""){
    $username="qazwsx";
    }else{
    $username=$user;
    }
    if ($pass ==""){
    $password="qazwsx";
    }else{
    $password=$pass;
    }
    #header("Refresh: 5;URL=home.php");

    $db=mysql_connect($db_host,$db_user,$db_password);
    if ($db==false)
    die("Errore nella connessione. Verificare i parametri nel file
    config.inc.php");
    mysql_select_db($db_name, $db)
    or die("Errore nella selezione del database. Verificare i parametri
    nel file config.inc.php");
    $query="SELECT * FROM `soci_2005_2006` WHERE userid = '$username' AND password = '$password'";
    $risultato=mysql_query($query,$db);
    $riga = mysql_fetch_array($risultato);
    $data=$riga['Data_Nascita'];
    ?>

  3. #3
    Le sessioni impostate si mantengono fino a che non si chiude la finestra corrente del browser o si cancella la sessione tramite codice PHP.

    Prova ad inserire queste righe, ma potrebbero non funzionare per determinate impostazione della caching nel browser dell'utente:
    Codice PHP:
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0"false);
    header("Pragma: no-cache"); 

  4. #4
    Logicamente vanno inserite prima di qualsiasi output HTML o PHP, altrimenti otterrai l'errore frequentissimo ("Cannot modify header information....").

  5. #5
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");

    l'ho inserito dopo l'include, ma è uguale.

    rimane memorizzato l'utente anche se si va indietro e poi avanti con i tasti del browser.

  6. #6
    Non so se è giusto, ma sembra che così funziona:

    <?php

    session_start();
    session_unset();

    include ("config.inc.php");

    $_SESSION = array();

    if (!isset($_SESSION)) {
    session_start();
    }
    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset($_POST['user'])) {
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    mysql_connect("localhost", "root", "");
    $conn=mysql_connect("localhost", "root", "");
    mysql_select_db($db_name, $conn);
    $query="SELECT * FROM `soci_2005_2006` WHERE userid = '$user' AND password = '$pass'";
    $login = mysql_query($query, $conn) or die ("Errore nella Query: ".mysql_error());
    $riga = mysql_fetch_array($login);
    #$loginFoundUser = mysql_num_rows($login);
    #if ($loginFoundUser) {
    if ($riga['userid'] == $user) {
    //declare due session variables and assign them
    $_SESSION['MM_user'] = $user;
    $_SESSION['MM_pass'] = $pass;
    header("Location: " . "soci.php" );
    }else{
    header("Location: "."home.php");
    }
    }
    ?>

  7. #7
    Le sessioni sono fatte a posta per essere mantenute fino ad una interruzione specifica, come la chiusura del browser o la cancellazione delle variabili tramite script PHP.

  8. #8
    Salve, io ho un problema simile.
    Ho usato l'headers per tornare indietro in una pagina con frame. Oltre al login, che sta nella parte sinistra (framesinistro), faccio andare avanti tutto il sito nel frame principale. Quando voglio tornare indietro in una pagina precedente mi da l'errore:

    "Warning: Cannot modify header information - headers already sent by (output started at d:\documenti\www\sitofad\include\headerfile.php:17 ) in d:\documenti\www\sitofad\vd\ins_annunci.php on line 119"

    Come lo risolvo visto che l'andamento del sito deve restare così ?
    C'è un metodo diverso per fare ciò, oppure esiste un link dove poter studiare l'headers con tutti i suoi parametri ?

    Grazie, Ciao a tutti
    Vincenzo

    Società con cui collaboro: http://www.coinf.it
    Portale di Formazione a Distanza che gestisco: http://www.coinf.it/fad

  9. #9
    Ho dimenticato poco fa... in locale non me lo da l'errore è solo in remoto che mi da l'errore. Forse c'è da settare il php.ini ?
    Grazie, Ciao a tutti
    Vincenzo

    Società con cui collaboro: http://www.coinf.it
    Portale di Formazione a Distanza che gestisco: http://www.coinf.it/fad

  10. #10
    Originariamente inviato da vicio3004
    Salve, io ho un problema simile.
    Ho usato l'headers per tornare indietro in una pagina con frame. Oltre al login, che sta nella parte sinistra (framesinistro), faccio andare avanti tutto il sito nel frame principale. Quando voglio tornare indietro in una pagina precedente mi da l'errore:

    "Warning: Cannot modify header information - headers already sent by (output started at d:\documenti\www\sitofad\include\headerfile.php:17 ) in d:\documenti\www\sitofad\vd\ins_annunci.php on line 119"

    Come lo risolvo visto che l'andamento del sito deve restare così ?
    C'è un metodo diverso per fare ciò, oppure esiste un link dove poter studiare l'headers con tutti i suoi parametri ?

    è il tipico errore segnalato quando è stata inserita la riga di header dopo un output su video.

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.