Salve a tutti,
da una settimana ho cambiato server dove ospitavo il mio sito e alcuni miei amici mi dicono che a volte non riescono a far andare a buon fine l'autenticazione.
In pratica se i dati sono esatti, dovrebbe memorizzare su sessioni nomeutente, password, email ecc...
e poi ad ogni pagina protetta faccio un controllo in questa maniera:
Codice PHP:
session_start();
if (!isset($_SESSION['username']) { header("Location: login.php?pagina=".$_SERVER['PHP_SELF']); die(); }
in locale mi funziona sempre, ma altri miei amici mi dicono che spesso, se non sempre, anche se inseriscono i dati esatti, non memorizza le sessioni e devono fare l'autenticazione all'infinito...
Strano perché non è mai successo sul server precedente, cmq il nuovo server ha la stessa versione di PHP del vecchio;
per sicurezza vi mando anche la parte che fa il login:
Codice PHP:
$connection = mysql_pconnect("$dbhost","$dbusername","$dbpasswd")
or die ("Impossibile connettersi al server MySQL.");
$db = mysql_select_db("$database_name", $connection)
or die("Impossibile selezionare il database.");
if (!empty($_POST['username']) and !empty($_POST['password'])) {
$sql = mysql_query("SELECT * FROM login WHERE username='".$_POST['username']."' AND password='".$_POST['password']."'");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}
// Registrazione variabili in sessioni
session_register('username');
$_SESSION['username'] = $row['username'];
session_register('password');
$_SESSION['password'] = $row['password'];
session_register('admin');
$_SESSION['admin'] = $row['admin'];
session_register('nome');
$_SESSION['nome'] = $row['nome'];
$loggato = 1;
if (!empty($_GET['pagina'])) { header("Location: ".$_GET['pagina']); die(); }
}
} else { $errore = "I dati inseriti non sono corretti!";
}
} else { $errore = "Compilare tutti i campi!";
}
Aiutatemi vi prego, è di vitale importanza!!!