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

    PHP: Sessioni che spariscono

    Salve a tutti.
    Ho problemi con le sessioni in php, praticamente ho questi file (per ora) sul mio server.

    index.php
    Codice PHP:
    <?php               
    if(session_is_registered('nick')) {              
    require (
    'pannello_utente.php');              
    } elseif(
    $_GET['pag']!=login) {              
    echo 
    'loggati </br> <a href=?pag=login>qui</a>';              
    } else {              
    }              
    ?>

    //HTML...

    <?php
    $pag
    =$_GET['pag'];
    include(
    "$pag.php")
    ?>
    Questa richiama il pannello utente se c'è la sessione, senò restituisce il link al login.

    Sotto richiama ?pag=NOMEPAGINA

    la pagina login.php è un semplice form che indirizza a ?pag=check

    check.php è questa

    Codice PHP:
    <?php 
    require('db.php'); 
    $tbl='tst_users'
    mysql_connect("$db_host""$db_username""$db_password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); 
    $nick=$_POST['nick']; 
    $password=$_POST['password']; 
    $sql="SELECT * FROM $tbl WHERE nick='$nick' and password='$password'"$result=mysql_query($sql); 
    $check=mysql_num_rows($result); 
    if(
    $check == 1) { session_register("nick"); 
    session_register("password"); 
    echo
    "Log-in effettuato!!! Yeee"
    header("location:"); 
    } else { 
    echo
    "Errore: nome utente o password errati"

    ?>
    Il pannello utente, la pagina in php che viene richiamata se si è loggati è questa

    Codice PHP:
    <?php 
    $nick
    =$_SESSION['nick']; 
    echo
    "Benvenuto $nick, ecco il tuo pannello utente:"
    echo
    "
    <a href=?pag=newtest>Nuovo test</a>
    <a href=?pag=testlist>I tuoi test</a>
    <a href=?pag=options>Opzioni</a>"

    ?>

    Purtoppo ho qualche piccolo problema... alla prima volta la variabile $nick nel pannello utente (qui sopra) viene scritta come dovuto, alla prossima pagina invece viene lasciato uno spazio vuoto, non riesco a trovare l'inghippo, anche leggendo guide (anche qui su html.it) non riesco a capire come funzionano le sessioni con i cookie, come prendere e scriverci dati e sopratutto quanto sono valide.

    Sono hostato su AlterVista, momenteaneamente, quindi vi dico già che non posso toccare il php.ini


    Ringrazio tutti coloro che mi aiuteranno.

    Buona serata.

  2. #2
    Ti suggerisco di ricominciare dalle basi delle sessioni:

    http://www.php.net/manual/en/features.sessions.php

    Se non avvi le sessioni (con session_start()), non funzioneranno.

    Comunque non utilizzare session_register(), utilizza $_SESSION.

  3. #3
    Mi sono dimenticato di dire che session_start() è all'inizio del file index.php
    Non è quello il problema.

    Ho già visuonato il sito in passato, ma non mi è stato utile in tal senso.

    Grazie della risposta, comunque.

  4. #4
    session_start() va richiamato in ogni pagina che utilizza le sessioni, non solo in index.php.

    L'utilizzo di session_register() è deprecato.

    Se devi eseguire un header location e propagare le sessioni ti suggerisco di usare questo codice:

    Effettuare un redirect con header location e propagare le sessioni

    Inviare dell'output prima di un header location è una pessima idea e comporta tutta una serie di problematiche (vedi Warning: Cannot modify header information - headers already sent ...)

  5. #5
    session_start() va messo anche nelle pagine che sono INCLUSE in index.php?

    Perchè le pagine qui sopra sono tutte utilizzate con require o include in index.php, credevo che session_start() in testa a index.php sia sufficente per tutta la pagina, non è così?

    Grazie per gli altri consigli, ora dò una sistemata.

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.