lo sapevo che non sarebbe stato semplice però, se puoi aiutarmi ancora te ne sarò grato.
Dopo il tuo esempio ho fatto cosi:
ti posto l'inizio del codice, il resto è identico a quello postato in precedenza.
in setup.phpcodice://questa è la pagina di login.php require_once('./includes/setup.php'); require_once('./includes/application_top.php'); // ho creato una dir includes $Rconn = new DBConnection(); $Rconn->VerificaConn($ConnVersoDB); $redirect="http://localhost/websites/sessioni_TXT/pagina_1.php"; //l'ultima parte dello script mi esegue il controllo di autenticazione: <?php $PHPSESSID=session_id(); if(!isset($_SESSION['user'])){ //non siamo loggati, pagina di login if($_GET['nocookie']==1) //i cookie sono off e si vuole ricordare il login print("Spiacente, ma con i cookie disabilitati non posso fare i miracoli ;) Attivali se vuoi ricordare il tuo login. "); print(" <FORM METHOD='POST' ACTION=\"login.php\"> username: <INPUT TYPE='TEXT' SIZE='20' NAME='posted_username'> password: <INPUT TYPE='PASSWORD' SIZE='20' NAME='posted_password'> ricordami: <INPUT TYPE='CHECKBOX' NAME='ricorda' VALUE='1'> <INPUT TYPE='SUBMIT' NAME='SUBMIT' VALUE=\"Loggami\"> "); print("<INPUT TYPE='hidden' NAME='PHPSESSID' VALUE='$PHPSESSID'>"); if(!isset($_COOKIE['PHPSESSID'])) //i cookie sono off, dobbiamo propagare noi il PHPSESSID print("<INPUT TYPE='hidden' NAME='PHPSESSID' VALUE='$PHPSESSID'>"); print("</FORM>"); } else{ //siamo loggati pagina riservata header("Location: $redirect"); }
in application_top.phpcodice:<?php define(SESSIONE,'sess_on_line'); class DBConnection{ var $host; var $user; var $pass; function DBConnection(){ //costruttore } function VerificaConn($ConnVersoDB){ if($host !="" || $user !="" || $pass !=""){ die("Valori insistenti..Impossibile effettuare una connessione verso il DB"); } else{ //impostazione connessione $host = "localhost"; $user="root"; $pass=""; //connessione al database mysql_connect($host,$user,$pass) or die ("Connessione Fallita!! " . mysql_error()); //selezione del DB mysql_select_db("dbname") or die ("Selezione del DB Fallita!! ". mysql_error()); } return $conn; } //apri la connessione function db_connect($connDB){ return(mysql_connect($this->VerificaConn($ConnVersoDB))); } function db_close($chiudi_db){ return(mysql_close($this->$db_connect($connDB))); } } ?>
in pagina_1.php( pagina riservata)codice:<?php session_start(); if(!session_is_registered(SESSIONE)){ session_register(SESSIONE); } $userId = isset($_SESSION[SESSIONE]['id']) ? (int)$_SESSION[SESSIONE]['id'] : 0; ?>
Avendo fatto cosi, in pratica mi autentica in login.php, ma quando fà il redirect verso la pagina_1.php(protetta), perde il riferimento e mi dice "NON PUOI ENTRARE".codice:<?php require_once('./includes/setup.php'); require_once('./includes/application_top.php'); // ho creato una dir includes echo "Sess: " . $_SESSION[SESSIONE]['id']; /*if($userId == 0){ echo "NON PUOI ENTRARE"; }else{ echo "PAGINA PROTETTA"; print("Il tuo ID: $PHPSESSID "); print("Sei loggato come: $username "); print("<A HREF=\"login.php?logout=1\">logout</A>"); }*/ if(isset($_SESSION[SESSIONE]['id']) && (int)$_SESSION[SESSIONE]['id'] > 0){ echo "PAGINA PROTETTA"; print("Il tuo ID: $PHPSESSID "); print("Sei loggato come: $username "); print("<A HREF=\"login.php?logout=1\">logout</A>"); }else{ echo "NON PUOI ENTRARE"; } ?>
Credo che qui ( $_SESSION[SESSIONE]['id']perda il riferimento,bhooo!!!
Sai dove sbaglio?
Grazie ancora......

perda il riferimento,bhooo!!!
Rispondi quotando