Salve a tutti, sto cercando di creare nel mio sito web il login per accedere a delle pagine protette ma non riesco a capire il perchè non funziona. Spero che qualcuno di voi mi aiuti in quanto sono 2 giorni che provo e riprovo ma sembra che la sessione non si apre o muore sul nascere .
In pratica il mio scopo è quello di inserire ad un lato nella mia home la classica tabbellina dove inserire username e pw e far in modo che questa sparisca una volta che si è eseguiti correttamente il Login, in caso contrario essere spediti su una pagina di errore login.
Nel file index.php ho inserito il seguente codice:
Codice PHP:
<?php
session_start();
session_regenerate_id(TRUE);
if (!isset($_SESSION['user'] ) )
{
?>
<form name="login" method="post" action="config.php">
<label for="imUname"><span style="font-family:Tahoma; font-size:10pt; color: #000000">Username:</span></label><br />
<input type="text" name="imUname" id="imUname" style="border: 1px solid #ccc; font-family:Tahoma; font-size:10pt; background-color: #FFFFFF; color: #000000; width: 100px"><br />
<label for="imPwd"><span style="font-family:Tahoma; font-size:10pt; color: #000000">Password:</span></label><br />
<input type="password" name="imPwd" id="imPwd" style="border: 1px solid #ccc; font-family:Tahoma; font-size:10pt; background-color: #FFFFFF; color: #000000; width: 100px"><br />
<input type="submit" value="Login" style="border: 1px solid #ccc; background-color: #DDDDDD; font-family:Tahoma; font-size:10pt; color: #000000">
</form>
<?
}
else
{
echo "Benvenuto ".$_SESSION['user'];
}
?>
dopodichè ho creato il file config.php :
Codice PHP:
<?php
session_start();
session_regenerate_id(TRUE);
$Utente_Ins = $_POST['imUname'];
$Password_Ins = $_POST['imPwd'];
$username="username";
$password="password";
$database="my_database";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Impossibile selezionare il database.");
$query="SELECT * FROM Registrati WHERE Username = '$Utente_Ins' AND Password = '$Password_Ins'";
$risultati=mysql_query($query);
$num=mysql_numrows($risultati);
mysql_close();
if (isset($_POST['imUname']) && isset($_POST['imPwd']))
{
if ($num <> 0)
{
$_SESSION['user'] = $imUname;
$_SESSION['password'] = $imPwd;
header("location: index.php");
}
else
{
header("location: Login_Errato.html");
exit;
}
}
?>
il tutto sembra che funzioni in quanto se inserisco username e password sbagliati vengo spedito alla pagina Login_Errato.html ma la questione è che inserisco username e password corretti vengo si spedito nuovamente nella home del mio sito (index.php) ma invece di vedere la scritta "Benvenuto ecc..." compare nuovamente la finestrella del Login.
Facendo diverse prove sembra che la sessione non si apre ma forse c'e' qualche errore proprio di logica in cio' che ho scritto nella index.php.
Mi potreste aiutare gentilmente? Grazie