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 :
Vengo riportato nella pagina mostra.php che a sua volta ha un controllo per la sessione: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");
}
?>
Il problema è che pur portandomi su mostra.php sembra che qui la sessione non sia presente, infatti mi appare la simpatica scrittaCodice 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 '......' ;
'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!

Rispondi quotando