Ahem... ma a parte quello, poi il resto della connessione la fai correttamente? Se il codice che c'è nella pagina è solo quello che hai postato tu (spero di no), allora mi mangio il cappello di babbo natale se mai ti dovesse funzionare!!!
Dovresti strutturare un po' meglio l'intero procedimento, su questo non c'è dubbio: ad esempio.
crei un file di configurazione, prendi il mio esempio come prototipo, ed integralo con le eventuali altre variabili ricorrenti nei tuoi script.
Crea un file di autorizzazione, ossia qualcosa in cui controlli se una variabile di sessione che indica l'avvenuto (corretto) login è settata (e quindi consenti la navigazione nell'area riservata) oppure no: reindirizzi alla pagina di login-registrazione.
Devi fare LARGO uso delle sessioni, per cui dovresti avere ben chiaro il loro funzionamento.
Esempio file auth.php
codice:
<?php
if (!isset($_SESSION['is_logged']) || $_SESSION['is_logged']==0) {
header("Location: login.php");
}
?>
file di login (login.php)
codice:
<?php
include("conf.inc.php");
if (isset($_POST['nickname']) && isset($_POST['password'])) {
$nickname = $_POST['nickname'];
$password = $_POST['password'];
// connessione a db
$query = "SELECT * FROM membri WHERE nickname='$nickname' AND password = '$password'";
$result = mysql_query($query, $connection);
if (mysql_num_rows($result) == 1) {
session_start();
$is_logged = 1;
session_register('is_logged');
session_register('nickname');
// in caso scorri l'array con i dati utenti, con il solito mysq_fetch_array
// e popola l'array di sessione con i dati che ritieni necessari
// a questo punto puoi fare il redirect alla pagina che credi
header("Location: index_area_riservata.php");
}
else { //login non effettuata, riproponi la maschera di login
}
}
else {// non sono state inviate in post le informazioni necessarie
// --> maschera di login
}
?>
Qualcosa del genere insomma.
In tutte le pagine in cui avrai necessità di verificare l'avvenuto login farai qualcosa del genere:
codice:
<?php
session_start();
include("auth.php");
//codice della pagina
?>
Questo proprio a grandissime linee.