Question bete : peut on imbriquer un if dans un if ?

Signaler
Messages postés
37
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
4 février 2006
-
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
-
Bien que je ne soit pas vraiment un débutant je suis confronté à un probleme. Un de mes scripts ne marche pas et à premiere vue ca ne viendrai que de quelque chose comme ça :

if(isset($_REQUEST["login"]))
{
if(empty($password)
{
echo "...";
}
}

Or ici $login est vide (ou plutot $_POST["login"]) et pourtant j'ai le message d'erreur, le doute m'a submergé :

Peut-on imbriquer 1 if dans 1 if ?

9 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Pas de problème, tu peux insérer des ifs dans des ifs...

Et si tu fais comme ca?
if(isset($_REQUEST["login"]) && !empty($_REQUEST["login"]) && empty($password))
{
 echo '';
}


Au fait: if(empty($password) --> manque )

@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!
Messages postés
37
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
4 février 2006

ok merci,
donc je ne vois pas d'ou vien mon bug :(

c'est cette partie là qui foire :

c'est vers le début de la page :

if(isset($_REQUEST['login']));
{
$login = $_POST['login'];
$password = $_POST['password'];
$password_conf = $_POST['password_conf'];

if(empty($login) || empty($password) || empty($password_conf))
{
?>
<SCRIPT LANGUAGE="JavaScript">
alert('Des champs n\'ont pas été remplis ! Merci de changer ces informations.');
javascript:history.back();
</SCRIPT>
<?
exit;
}
}

En théorie il ne doit pas afficher ce code, vu que la page vien d'etre chargée...J'ai du faire un grosse gaffe, tellement grosse que je la voit pas...
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

Salut

Pour mettre de l'HTML (ou javascript) dans un if, il faut utiliser la structure :
if ( condition ) :
?>
Un peu d'HTML
<?
endif ;

Ou bien tu peux écrire le script via un echo ou print.

A++

Chouchou
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
On utilise plutot <?php que <?

Je te propose un truc, change ton code en (temporairement):
if(empty($login))
echo 'login empty
';

if(empty($password))
echo 'password empty
'

if(empty($password_conf))
echo 'passwordconf empty';


Tu saura lequel(s) foire(nt)...

Vérifie bien le nom des champs dans le formulaire...

@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!
Messages postés
37
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
4 février 2006

j'ai essayé en mettant du html, ou un echo tout simple et il persiste à m'afficher le if...

if(isset($_REQUEST['login']));
{

if(empty($login) || empty($password) || empty ($password_conf))
{
echo "test";
<?
exit;
}
}

et j'ai essayé par dépit ce code :

$essai = "jyhvfjhf";
if($essai == "2");
{

if(empty($login) || empty($password) || empty ($password_conf))
{
echo "test";
<?
exit;
}
}

il m'affiche tjr le second if, c'est tellement aberrant que j'y pige rien...
Messages postés
37
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
4 février 2006

enlever les 2 <? ils n'ont rien à y faire

sinon salut (dsl) et merci de m'aider :P
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
2 suggestions :

- Attention à ne pas mettre de ";" juste après une condition :
if(isset($_REQUEST['login']));  <--
{


- Si ton seul but est de vérifier que les champs d'un formulaire ne sont pas vides, je te suggère d'utiliser du javascript à la validation du formulaire. Un truc du genre :
<script type="text/javascript">
function verifForm()
{
  if (document.getElementById('login').value="") 
  { 
    alert('login vide'); 
    document.getElementById('login').focus(); 
    return false; 
  }
[ ...idem pour password et password_conf ]
}
</script>

et dans ton formulaire : 
<form [...] onsubmit="return verifForm();">

[...]
</form>


La vérification se fera au moment du clic (et pas au rechargement de la page).

En espérant t'avoir aidé.
Arnaud
Messages postés
37
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
4 février 2006

ok merci beaucoup arnal69130
je vais essayer ça ;)
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Heu... Désolé de faire le trouble fête mais: Si le JavaScript est pas activé, ce qui est possible, les tests ne seront pas faits...

Je te conseille de les garder en PHP...

@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!