Anzitutto buonasera, sono nuovo del forum e da poco ho iniziato a "programmare" ( se così possiamo dire ) qualcosina per conto mio..
Ho sviluppato un sistemino, tipo pagina di cortesia, che raccoglie in un database i nome e email utente che vogliono essere avvisati dell'apertura di un determinato sito web.
Una volta raccolti i dati, ho creato un'area riservata, dalla quale mando una mail a tutte le mail presenti nel database ( caricate dai vari utenti ) ..
Detto questo vengo al problema.. Ho studiacchiato un pochetto le sessioni, ed ho creato un pannello di login che dovrebbe permettermi di accedere al pannello di controllo, che rinvia ( una volta inseriti i dati..) ad una pagina di controllo che dovrebbe effettuare il login..
fino a qui in effetti funziona.. e la pagina sembra salvare la sessione, perchè mi reindirizza alla pagina giusta.. poi però quando vado nella pagina in cui vengo reindirizzato.. che necessita delle variabili di sessione per apparire.. ovvero:
le variabili di sessione non vengono caricate..
ho fatto anche un test con var_dump per verificarne il contenuto, e questo risulta NULL.
Perchè secondo voi, in un'altra pagina utilizzando la stessa tecnica mi funziona?
P.S. in entrambe le pagine all'inizio subito dopo <?php c'è session_start();
Grazie in anticipo..
Ho sviluppato un sistemino, tipo pagina di cortesia, che raccoglie in un database i nome e email utente che vogliono essere avvisati dell'apertura di un determinato sito web.
Una volta raccolti i dati, ho creato un'area riservata, dalla quale mando una mail a tutte le mail presenti nel database ( caricate dai vari utenti ) ..
Detto questo vengo al problema.. Ho studiacchiato un pochetto le sessioni, ed ho creato un pannello di login che dovrebbe permettermi di accedere al pannello di controllo, che rinvia ( una volta inseriti i dati..) ad una pagina di controllo che dovrebbe effettuare il login..
PHP:
.........
$username = $_POST['username'];
$password = sha1($_POST['password']);
try
{
$sql ='SELECT COUNT(*) FROM login WHERE username =:username AND password =:password';
$s = $pdo->prepare($sql);
$s->bindValue(':username', $username);
$s->bindValue(':password', $password);
$s->execute();
}
catch (PDOException $e)
{
$error = 'Error: ' . $e->getMessage();
include '../ERRORDB/error.html.php';
exit();
}
$row = $s->fetch();
if ($row[0] > 0){
$SESSION['loggedin'] = 1;
$SESSION['username'] = $username ;
$SESSION['password'] = $password ;
}else{
unset($SESSION['loggedin']);
unset($SESSION['username']);
unset($SESSION['password']);
}
if ($SESSION['loggedin'] === 1 ){
echo '<script language=javascript>document.location.href="../../PHP/controllruler.php"</script>';
} else {
echo '<script language=javascript>document.location.href="../../index.html"</script>';
}
PHP:
if ($SESSION['loggedin'] !== 1 ){
echo "<h1>Area riservata, accesso negato.</h1>";
echo "Effettua il login <a href='../PHP/login/login.php'><font color='orange'>qui</font></a>";
die;
} elseif ($SESSION['loggedin'] === 1) {
include 'connection.php';
try
{
$sql = 'SELECT nome, email, data FROM user' ;
$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error: ' . $e->getMessage();
include 'error.html.php';
exit();
}
foreach ($result as $row)
{
$utenti[] = array(
'nome' => $row['nome'],
'email' => $row['email'],
'data' => $row['data']
);
}
include 'controllpanel.php';
}
ho fatto anche un test con var_dump per verificarne il contenuto, e questo risulta NULL.
Perchè secondo voi, in un'altra pagina utilizzando la stessa tecnica mi funziona?
P.S. in entrambe le pagine all'inizio subito dopo <?php c'è session_start();
Grazie in anticipo..
Ultima modifica di un moderatore: