Redirection de page selon deux conditions

Résolu
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

  1. Bonjour Bryant !!

    Me revoilà à l'assaut :p

    Pourriez-vous nous montrer votre message d'erreur ?

    Cordialement.
    1. 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
    2. 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.
    3. 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
    4. 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.
    5. 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 :(