Ciao Ragazzi,
In un sito che sto finendo di realizzare ho creato un sistema di login per entrare del db dove poter vedere i dati, modificali o cancellarli.
php e mysql non sono certo il mio forte, ma aiutandomi con un tutorial ho creato un sistema abbastanza semplice: da login.php inserisco il form che chiede user e password, passa le variabili tramite POST a verifica.php che fa partire una sessione, controlla se i dati inseriti corrispondono a quelli sul db e se tutto va bene ti porta su mostra.php, altrimenti di nuovo su login.php:
Verifica.php :
Codice PHP:
<?php
session_start();
include 'include/db_connect.php';
$user=mysql_real_escape_string($_POST['usr']);
$pass=mysql_real_escape_string(sha1($_POST['psw']));
$query = "SELECT * FROM login WHERE username = '$user' AND password = '$pass' ";
$ris = mysql_query($query, $conn) or die (mysql_error());
$riga=mysql_fetch_array($ris);
$cod=$riga['username'];
if ($cod == NULL) $trovato = 0 ;
else $trovato = 1;
if($trovato === 1) {
session_register('autorizzato');
$_SESSION["autorizzato"] = 1;
$_SESSION['cod'] = $cod;
header("Location:mostra.php");
} else {
header("Location:login.php");
}
?>
Vengo riportato nella pagina mostra.php che a sua volta ha un controllo per la sessione:
Codice PHP:
<?php
session_start();
if (!session_is_registered('autorizzato')) {
echo "<span id='clearing'></span><h1 style='margin-left: 30px;'>Area riservata, accesso negato.</h1>";
echo "<h3 style='margin-left: 30px;'>Per effettuare il login clicca [url='login.php']<font color='blue'>qui</font>[/url]</h3>";
die;
}
$cod = $_SESSION['cod'];
?>
<?php
include 'include/db_connect.php';
$sql = "SELECT id,titolo...";
$res = mysql_query($sql, $conn);
echo '......' ;
Il problema è che pur portandomi su mostra.php sembra che qui la sessione non sia presente, infatti mi appare la simpatica scritta
'Area riservata, accesso negato...'
Non mi spiego come mai in locale funzioni bene e una volta messo in remoto si comporti diversamente, qualche idea? Grazie in anticipo!