Je suis en train de faire un espace membre et je ne vois pas pourquoi ce script ne marche pas :s
<?php
// Ouverture d'une session
session_start();
// Redirection à FALSE au cas ou...
$redirection = FALSE;
// Vérification des variables POST
if( !isset($_POST['password']) || !isset($_POST['date']) ) {
// Si elles n'existent pas, on redirige vers l'accueil
header('Location: ./index.php');
} else {
// Inclusion du fichier de fonctions...
include('./functions.php');
// Connexion à la base de données
connect_db();
// protections des variables
$year = mysql_real_escape_string(intval($_POST['year']));
$date = mysql_real_escape_string($_POST['date']);
$password = mysql_real_escape_string($_POST['password']);
// Création de la requête
$requete = mysql_query('SELECT * FROM tableau_mariages WHERE annee="'.$year.'" AND date_brute="'.$date.'" AND password="'.$password.'"') or die(mysql_error());
// Condition pour savoir si le couple existe...
if($donnees = mysql_fetch_array($requete)){
// Si le couple existe on creer des variables à vérifier sur les pages à protéger...
$_SESSION['date'] = $date;
$_SESSION['year'] = $year;
$_SESSION['password'] = $password;
// On active la redirection
$redirection = TRUE;
} else {
// Creation des variaables mais VIDES
$_SESSION['date'] = '';
$_SESSION['year'] = '';
$_SESSION['password'] = '';
// On enlève la redirection
$redirection = FALSE;
}
}
// Si c'est valide, on redirige vers la page protégé, si Non, on redirige vers l'index...
if( $redirection == TRUE ) {
header('Location : ./gallery/');
} else {
header('Location : ./index.php');
}
?>
En fait, que le mot de passe sois valide ou non, il redirige pas...Alors, j'ai fais le fameux test du echo 'oui'; et echo 'non'; que j'ai mis dans ma condition (celle qui vérifie si le couple est bon...)
Et ça, sa marche... Il m'affiche "oui" quand c'est bon (et qu'il devrai me rediriger) et "non" quand c'est pas bon et que j'ai fais exprès de me "tromper" de mot de passe...
Voilà...
Merci à vous !
PS: j'ai aussi essayé de mettre l'opérateur === au lieu de ==, dans la toute dernière condition, mais ça ne change rien...
d'ailleurs, j'ai toujours pas compris se que ça changé réellement