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

BelphegorCLC Messages postés 37 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 4 février 2006 - 20 juil. 2004 à 12:35
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 21 juil. 2004 à 10:51
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

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
20 juil. 2004 à 12:49
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!
0
BelphegorCLC Messages postés 37 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 4 février 2006
20 juil. 2004 à 12:58
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...
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
20 juil. 2004 à 13:17
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
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
20 juil. 2004 à 13:57
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!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BelphegorCLC Messages postés 37 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 4 février 2006
20 juil. 2004 à 14:02
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...
0
BelphegorCLC Messages postés 37 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 4 février 2006
20 juil. 2004 à 14:05
enlever les 2 <? ils n'ont rien à y faire

sinon salut (dsl) et merci de m'aider :P
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
20 juil. 2004 à 16:54
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
0
BelphegorCLC Messages postés 37 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 4 février 2006
20 juil. 2004 à 18:36
ok merci beaucoup arnal69130
je vais essayer ça ;)
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
21 juil. 2004 à 10:51
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!
0
Rejoignez-nous