Salve a tutti ho creato questo script per il login, ma ho un piccolo problema quando effettuo il login.
Praticamente una volta che effettuo il login, mi fa vedere loggato nella pagina in cui sto, in questo caso login.php, però cambiando pagina mi disconnette e non so perchè. Ho messo vari controlli in tutte le pagine come quello in baso a questo codice ma nulla.
PS.: la sessione la faccio avviare in ogni pagina tramite session_start();.
Codice PHP:
<?php
*/
Creato da: M S
Vietato rimuovere copyright
*/
// includiamo il file di connessione al database
include ('configurazione.php');
// creiamo il nostro modulo di login
?>
<form method="post" action="?login=success">
<p><b>Nome Utente</b><br>
<input type="text" name="username">
<br />
<br>
<b>Password</b><br>
<input type="password" name="password">
<br />
<br>
<input type="image" src="files/img/button_log.jpg" border="0"/><br>
</p>
</form>
<?php
// attraverso un if controlliamo che il form sia stato inviato
if ( $_GET['login'] == "success" ) {
// recuperiamo i dati inviati con il form
$username = $_POST['username'];
$password = $_POST['password'];
// ora controlliamo che i campi siano stati tutti compilati
if ( $username == TRUE && $password == TRUE) {
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$risultati = mysql_query("SELECT * FROM utenti WHERE user = '$username' AND pass = '$password'");
$vettore = mysql_fetch_array($risultati);
$num = mysql_num_rows($risultati);
if ( $num == 1 ) {
echo "Complimenti $username login effettuato con successo.";
session_start();
$_SESSION['id'] = $vettore['id'];
$_SESSION['username'] = $vettore['user'];
// messaggi da far visualizzare per conferma inserimento
}
else {
echo "Username o password sbagliati";
}
} else {
echo "Username o password mancanti.";
}
}
if (($_SESSION['id']) != 0) {
echo "funziona";
} else {
echo "non funziona";
}
?>