[RESOLU] header("Location: avec une variable");

Eléphanteau du PHP | 10 Messages

18 sept. 2017, 18:56

Bonjour,

J'ai ajouter sur mon site une page connexion avec mot de passe.
Mon problème, est que dans ma BDD, j'ai créé une colonne avec le nom des pages a atteindre quand le mot de passe est correct.
je n'arrive pas a modifier le header pour obtenir mon résultat.
header("Location: mapage.php") // fonctionne tres bien
header("Location: $page") // ne fonctionne pas du tout !!!!

Pouvez vous me corriger ?

Merci d'avance

Philippe.

Mammouth du PHP | 2703 Messages

18 sept. 2017, 20:11

$page = "mapage.php";
header("Location: $page");

que se passe-t-il avec uniquement cela dans un fichier php ?

Eléphanteau du PHP | 10 Messages

18 sept. 2017, 21:41

En validant, j'arrive bien sur mapage.php.
Mon soucis est que j'ai plusieurs pseudo et mot de passe avec a chaque fois une page différente.
Donc je voudrais que pour chaque pseudo, s'affiche la page correspondant.
C'est là que je bloque complementemnt.

Mammouth du PHP | 2703 Messages

18 sept. 2017, 21:54

si ça bloque, c'est que $page ne contient pas ce qui est attendu. et comme on a pas le code, on va pouvoir facilement t'aider.

Eléphanteau du PHP | 10 Messages

19 sept. 2017, 08:23

Je comprends bien, je vous joins la partie de code qui doit correspondre.
Merci de votre aide.

/* Connexion */
try
{
$connect = new PDO('mysql:host='.$hostname.';dbname='.$database, $username, $password, $pdo_options);
}
catch (PDOException $e)
{
exit('problème de connexion à la base');
}

/* Requête pour récupérer les enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire */
/* $requete = "SELECT * FROM membres WHERE pseudo = :nom AND pass = :password"; */
$requete = "SELECT * FROM membres WHERE pseudo = :nom AND pass = :password";
try
{
/* Préparation de la requête*/
$req_prep = $connect->prepare($requete);

/* Exécution de la requête en passant les marqueurs et leur variables associées dans un tableau*/
$req_prep->execute(array(':nom'=>$pseudo,':password'=>$pass));

/* Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois*/
$resultat = $req_prep->fetchAll();

$nb_result = count($resultat);

if ($nb_result == 1)
{
/* Démarre une session si aucune n'est déjà existante et enregistre le pseudo dans la variable de session $_SESSION['login'] qui donne au visiteur la possibilité de se connecter. */
if (!session_id()) session_start();
$_SESSION['login'] = $pseudo;

$message = 'Bonjour '.htmlspecialchars($_SESSION['login']).', vous etes connecte';

$page="cherche.php";
/*ou redirection vers une page en cas de succès ex : menu.php page a modifier pour ouverture de page */
header("Location:$page");
/* header("Location: cherche.php"); */
exit();

Mammouth du PHP | 1967 Messages

19 sept. 2017, 16:58

c'est avec le résultat de la requète que tu dois remplir ta variable $page.

quelque chose comme ceci
$page = $resultat[0]['url_perso'];
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube