|
|||||||
|
|
|
![]() |
|
|
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 18: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 18: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: 17:07.



















