Redirection de page selon deux conditions

Résolu/Fermé
Bryant - Modifié par Bryant le 12/12/2013 à 16:34
 Bryant - 13 déc. 2013 à 09:20
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
A voir également:

1 réponse

Bonjour Bryant !!

Me revoilà à l'assaut :p

Pourriez-vous nous montrer votre message d'erreur ?

Cordialement.
0
Salut incodr et merci de prendre du temps pour me répondre !

Voici l'erreur : Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\Formulaire\verif_admin.php on line 35

ca doit être une erreur de } mais je ne vois pas ou.

En fait, ce que je veux faire c'est que si le pseudo est correct selon la BDD et que le statut est égal à 'Administrateur' alors on est redirigé vers la page 'menu.php' sinon on est redirigé vers la page 'menu_non_admin.php'.

Merci
0
Bryant,

Regardez ici:


// 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
}

Accolade en trop ! :p

Dite moi si c'est Ok ! :)

Cordialement.
0
incodr,
Plus d'erreur mais maintenant des que mes infos sont bonnes, je reste sur la page de connexion (console_admin.php) au lieu d'être redirigé vers la page (menu.php) !

Est ce que mon 2eme if est correct :

if ($_GET['Statut'] == 'Administrateur')

Je ne suis pas sur que cette condition soit correct si?

Merci d'avance
0
La syntaxe est bien correcte, en revanche d'après le formulaire que vous avez créé tout à l'heure, je pense bien que les données sont envoyées depuis un formulaire de type "POST".

Etes-vous sûr de cela: if ($_GET['Statut'] == 'Administrateur')

Au lieu de: if ($_POST['Statut'] == 'Administrateur')

Cordialement.
0
Oui j'ai déjà testé avec le POST mais le problème reste le même !
Je ne vois vraiment pas ou peut se trouver le problème :(
0