Problème if et else

Résolu/Fermé
caro__48 Messages postés 242 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 18 mai 2017 - Modifié par jordane45 le 17/07/2015 à 02:17
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 16 juil. 2015 à 12:05
Bonjour à tous,

Je suis en train de faire une page avec des if et des else et j'ai un beug!!

Voici mon bout de code:
//récupération des variables
$nom=$_POST['nom'];
$pass=$_POST['passw'];

//requete de selection

$quer=mysql_query("SELECT Nom_utilisateur FROM adherents WHERE Nom_utilisateur ='".$nom."' AND mot_de_passe='".$pass."' AND bloque =''");
$req= mysql_fetch_row($quer);
//je vérifie ma requete $req et après je veux effectuer une autre requete mais aussi en même temps rediriger vers accueil!!!!!!
if (!empty($req[0]))
{
 
 $requete=mysql_query("update adherents set nb_connexions = nb_connexions+1 where Nom_utilisateur = '".$nom."' ") or die (mysql_error());
 
  if($requete){
 $_SESSION['nom'] = $req[0];
  header('location:accueil.php');
 }


}

//Mais je veux que si le nom entré (à la page précédente) est utilisateur 1 OU utilisateur 2 cela affiche le message d'erreur suivant:
else
{
 if ($nom = 'utilisateur1')
 {
  echo 'Vos accès au système sont temporairement annulé. Veuillez contacter la centrale au ---- pour plus de renseignements<BR>';
 }
 else if ($nom = 'utilisateur2')
 {
  echo 'Vos accès au système sont temporairement annulé. Veuillez contacter la centrale au ----  pour plus de renseignement.<BR>';
 }

//MAIS mon beug est la, cela m'affiche toujours le message au dessus si l'utilisateur3 se trompe de mot de passe. Alors que moi je veux que cela affiche le message si dessous.
 else
{
?><div class="modif"><br>Vos identifiants ne sont pas reconnu par le système.<br><br> Veuillez réessayer de vous connecter <a href="index.php"> avec vos identifiants.</a> <br><br>Si le problème perdure, ou si vous rencontrez d'autres erreurs lors de l'enregistrement, vous pouvez contacter ....

<br /><br />
Vous pouvez recommencer votre connexion <a href="index.php">en cliquant ici</a></div>
<?php
}}
 

Quelqu'un aurait-il une solution ou une piste pour m'aiguiller??
Merci beaucoup.


EDIT : Ajout de la coloration syntaxique.

l'informatique est né pour nous faire réfléchir....

2 réponses

Utilisateur anonyme
16 juil. 2015 à 12:04
Bonjour

if ($nom = 'utilisateur1')

Ce test est toujours vrai car la comparaison ne se fait pas avec = en PHP, elle se fait avec == :
if ($nom == 'utilisateur1')


Au passage, il ne faut plus (vraiment plus) utiliser la bibliothèque mysql_ standard pour accéder à mysql. Il faut utiliser mysqli ou PDO.
3
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 545
16 juil. 2015 à 12:05
Salut,

Tes conditions ne sont pas correctes, tu confonds l'opérateur d'affectation = avec l'opérateur de comparaison d'égalité == ou ===

Tu dois donc corriger tes conditions comme ceci :
if ($nom === 'utilisateur1')
{
    echo '...';
} 
else if ($nom === 'utilisateur2') 


Bonne journée
0