|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2004
Città: Milano Provincia
Messaggi: 376
|
[PHP] problema con le sessioni
è apparso un'altro problema...
una volta effettuato il login mi apre direttamente (non proprio direttamente perchè c'è prima bisogno della conferma) la home iniziando prima una sessione: Codice:
session_start (); $_SESSION['username'] = $username; $_SESSION['pass'] = $pass; // Salvo i dati del nuovo utente nel database mysql_query("UPDATE utenti SET data_ultima = NOW() WHERE (username = '$username') AND (password = '$pass')") or die (mysql_error()); header('Location: ' . 'http://127.0.0.1/nomesito/home.php'); }else{ die("Utente non ancora confermato"); } }else{ die("Il nome utente inserito è inesistente"); } }else{ die("Password errata"); } Codice:
<?php session_start(); if( IsSet($_SESSION['username']) && IsSet($_SESSION['pass']) ) { echo "BENVENUTO SU nome sito! </br>"; echo "<a href='logout.php'> Effettua Il Logout</a>"; } else { echo "Login non effettuato"; } ?> non riesco a capire cosa c'è di sbagliato... spero che qualcuno possa darmi una mano... grazie! Ultima modifica di Luca 88 : 29-10-2009 alle 17:34. |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Beh, se non la distruggi di proposito la sessione rimane naturalmente attiva.
La durata non la ricordo, ma c'è un tempo. Ricorda che in pratica sono dei semplici cookie. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2004
Città: Milano Provincia
Messaggi: 376
|
ma il fatto è che ora fa il contrario... cioè se faccio il login tutto ok... mentre se la apro in un altra finestra sempre con la sessione aperta mi dice login non effettuato... e non ho cambiato niente...
metto i due file incriminati completi: login.php Codice:
<?php include("connessioneDB.php"); $username = $_POST['username']; $pass = MD5($_POST['pass']); $password = 'password'; $confermato = 'conf'; // Query che seleziona la password del utente $query = "SELECT password FROM utenti WHERE username = '$username' LIMIT 1"; $result = mysql_query($query, $db); $row = mysql_fetch_assoc($result); $num = mysql_num_rows($result); // Query che seleziona il campo confirmed del utente $query1 = "SELECT conf FROM utenti WHERE username = '$username' LIMIT 1"; $result1 = mysql_query($query1, $db); $row1 = mysql_fetch_assoc($result1); if ($result != '0'){ if($row[$password] == $pass){ if($row1[$confermato] == 1){ session_start (); $_SESSION['username'] = $username; $_SESSION['pass'] = $pass; // Salvo i dati del nuovo utente nel database mysql_query("UPDATE utenti SET data_ultima = NOW() WHERE (username = '$username') AND (password = '$pass')") or die (mysql_error()); header('Location: ' . 'http://127.0.0.1/nomesito/home.php'); }else{ die("Utente non ancora confermato"); } }else{ die("Il nome utente inserito è inesistente"); } }else{ die("Password errata"); } ?> Codice:
<?php session_start(); if( IsSet($_SESSION['username']) && IsSet($_SESSION['pass']) ) { echo "BENVENUTO SU nomesito! </br>"; echo "<a href='logout.php'> Effettua Il Logout</a>"; } else { echo "Login non effettuato"; } ?> Ultima modifica di Luca 88 : 29-10-2009 alle 17:34. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2004
Città: Milano Provincia
Messaggi: 376
|
ho modificato in questo modo:
login.php: Codice:
<?php include("connessioneDB.php"); $username = $_POST['username']; $pass = MD5($_POST['pass']); $password = 'password'; $confermato = 'conf'; // Query che seleziona la password del utente $query = "SELECT password FROM utenti WHERE username = '$username' LIMIT 1"; $result = mysql_query($query, $db); $row = mysql_fetch_assoc($result); $num = mysql_num_rows($result); // Query che seleziona il campo confirmed del utente $query1 = "SELECT conf FROM utenti WHERE username = '$username' LIMIT 1"; $result1 = mysql_query($query1, $db); $row1 = mysql_fetch_assoc($result1); if ($result != '0'){ if($row[$password] == $pass){ if($row1[$confermato] == 1){ session_start (); $_SESSION['username'] = $username; $_SESSION['pass'] = $pass; // Salvo i dati del nuovo utente nel database mysql_query("UPDATE utenti SET data_ultima = NOW() WHERE (username = '$username') AND (password = '$pass')") or die (mysql_error()); header('Location: ' . 'http://127.0.0.1/nomesito/home.php'); }else{ die("Utente non ancora confermato"); } }else{ die("Il nome utente inserito è inesistente"); } }else{ die("Password errata"); } ?> Codice:
<?php session_start(); if(IsSet($_SESSION['username']) && IsSet($_SESSION['pass'])) header('Location: ' . 'http://127.0.0.1/nomesito/home.html'); else header('Location: ' . 'http://127.0.0.1/nomesito/index.html'); ?> da cosa puo dipendere? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Aug 2004
Città: Milano Provincia
Messaggi: 376
|
ho risolto... dico come per aiutare qualcuno che magari incontrerà questo problema...
non so il perchè... ma se il file lo si chiama home.php non funziona... ho provato a cambiargli il nome con prova e funziona perfettamente... ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
Sei un gallo!
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:00.