Redirection de page selon deux conditions

Résolu/Fermé
Signaler
-
 Bryant -
Bonjour,
Je gère un espace d'administration dans mon site mais j'ai une erreur de redirection sans que je voye ou peut ce trouver l'erreur !

Voici le code :

?php
//include('fonctions.php');
//include('config.php');

session_start(); // début de session

// Paramètres de connexion
$hostname= "localhost"; // nom ou ip de votre serveur
$database = "azerty"; // nom de votre base de données
$username= "root"; // nom d'utilisateur (root par défaut)
$password= "azerty"; // mot de passe
$db = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);

if (isset($_POST['Pseudo'])){ // execution uniquement apres envoi du formulaire (test si la variable POST existe)
$pseudo = addslashes($_POST['Pseudo']); // mise en variable du nom d'utilisateur
$mdp = addslashes(($_POST['Mdp'])); // mise en variable du mot de passe
$statut = $_POST['Statut'];

// requete sur la table administrateurs (on récupère les infos de la personne)
mysql_select_db($database, $db);
$verif_query=sprintf("SELECT * FROM inscription WHERE Pseudo='$pseudo' AND Mdp='$mdp' AND Statut='$statut'");
$verif = mysql_query($verif_query, $db) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$admin = mysql_num_rows($verif);

if ($admin) { // On test s'il y a un utilisateur correspondant
session_register("authentification"); // enregistrement de la session

// déclaration des variables de session
$_SESSION['Pseudo'] = $row_verif['Pseudo']; // Son Login
if ($_GET['Statut'] == 'Administrateur') { // On test s'il y a un utilisateur correspondant
{
header('Location: menu.php'); // redirection si OK
}
else {
header('Location: menu_non_admin.php');
}
}
else {
header('Location:console_admin.php?erreur=Pseudo'); // redirection si utilisateur non reconnu
}
}

L'erreur se trouve quelque part à partir de la condition à la fin de mon code. je ne suis pas sur que ma 2ème condition soit correcte même si je n'ai pas d'erreur de déclarée.
Alors l'erreur se trouve sur cette ligne :
else {
header('Location: menu_non_admin.php');
}

Merci

1 réponse

Bonjour Bryant !!

Me revoilà à l'assaut :p

Pourriez-vous nous montrer votre message d'erreur ?

Cordialement.
Messages postés
131
Date d'inscription
dimanche 13 janvier 2013
Statut
Membre
Dernière intervention
17 octobre 2015
1
n oublier pas de marquer comme resolus
Bonsoir Bryant,

Ça s'arrange petit à petit :) C'est bien !

Alors si le problème est comme vous le décrivez, je pense que ça ressemble à ça si j'ai bien compris:


<?php

// Création de la session
session_start();

// Connexion au serveur
$hostname= "localhost";
$database = "azerty";
$username= "root";
$password= "azerty";
$db = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);

// Analyse du formulaire
if (isset($_POST['Pseudo']))
{
$pseudo = addslashes($_POST['Pseudo']);
$mdp = addslashes(($_POST['Mdp']));

// Récupération des données depuis la base de données
mysql_select_db($database, $db);
$verif_query = sprintf("SELECT * FROM inscription WHERE Pseudo='$pseudo' AND Mdp='$mdp'");
$verif = mysql_query($verif_query, $db) or die(mysql_error());
$user_infos = mysql_fetch_assoc($verif);
$results = mysql_num_rows($verif);

if ($results)
{
session_register("authentification");

$_SESSION['Pseudo'] = $user_infos['Pseudo'];
if ($user_infos['Statut'] == "Administrateur")
header('Location: menu.php');
else
header('Location: menu_non_admin.php');
}
else
header('Location:console_admin.php?erreur=Pseudo');
}

En revanche, avez-vous enlevé le sélecteur de statuts dans votre formulaire ? Car il ne sert pas apparemment, on récupère son statuts dans la bdd avec ses identifiants comme vous le dites :).

Je ne peux pas tester votre code mais je pense que ça devrait aller d'après la doc PHP.
Tenez moi informé.

Bonne soirée :)

Cordialement.
Bonjour incodr !

Votre code marche parfaitement !
Merci beaucoup vraiment ! En fait il n'y avais qu'une ligne a changer :)
Je vais poser d'autres problèmes ! Si vous savez y répondre n'hésitez pas !
Encore MERCI !
Sujet résolu :)
Bonjour Bryant,

You are welcome :) !! Oui en effet, il n'y avait pas beaucoup de chose à changer :)

Pour vos autres problèmes, si j'ai du temps et j'arrive avant quelqu'un d'autre sur le thread, c'est avec plaisir que je vous répondrai :)

Bonne journée Bryant !

Cordialement.
Merci beaucoup et bonne journée à vous aussi incodr !