Téléchargement
illégal
Posez votre question Signaler

[Correction PHP] Un IF un peu long... [Résolu]

geogeolharicot - Dernière réponse le 13 juin 2010 à 16:58
Bonjour !
Je débute en PHP avec un tutoriel pour les débutants. Mais, comme j'ai vraiment hâte de savoir programmer en PHP, je crois que j'ai sauté pas mal de trucs... Je me suis dit que je ferait bien de faire un petit exercice de remémoration. Mais bon, il fallait s'y attendre, ca foire... J'ai beau éplucher tout le script aussi grand qu'il est, je ne trouve pas d'où vient l'erreur.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
    <head> 
        <title>Page de test de fonctions ameliorée</title> 
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    </head> 
 <body> 
<h2>Bienvenue sur cette page de fonctions !</h2> 
<p>Nous allons ici tester quelques fonctions. Par exemple :</p> 
<h3>> Un script qui donne nous dit votre nom et votre prénom !</h3> 
<div style="border: dashed 2px blue"><?php 
if (isset($_GET['nom'])) AND (isset($_GET['prenom'])) AND (isset($_GET['repete'])) AND (isset($_GET['repetition'])) AND (strlen($_GET['prenom'] <= 15)) AND (strlen($_GET['nom'] <= 20)) AND (strlen($_GET['repete'] <= 30)) AND ($_GET['repetition'] < 100) 
{ 
 echo '<p><strong>Voilà vos informations !</strong></p><table><thead><tr><th>Information</th><th>Valeur</th></tr></thead><tbody><tr><td><em>Prenom :</em></td><td>'.$_GET['prenom'].'<td/></tr><tr><td><em>Nom :</em></td><td>'.$_GET['nom'].'<td/></tr></tbody></table><p><strong>Voilà la phrase que vous vouliez répéter !</strong>'; 
 for ($r = $r = 0 ; $_GET['repetition'] ; $r++) 
  { 
  echo $_GET['repete'].'<br />'; 
  } 
} 
elseif (isset($_GET['nom'])) OR (isset($_GET['prenom'])) OR (isset($_GET['repete'])) OR (isset($_GET['repetition'])) 
{ 
 echo 'Vous avez probablement oublié un champ ou un champ est faussé. Réessayez.'; 
} 
else 
{ 
 echo 'Ici s\'affichera vos coordonnées'; 
} 
?></div> 
<form method="get" action="index.php"><fieldset><legend>Esssayez !</legend> 
<label for="prenom">Entrez votre nom : </label><input type="text" id="prenom" name="prenom" maxlength="15" /><br /> 
<label for="nom">Entrez votre nom : </label><input type="text" id="nom" name="nom" maxlength="20" /><br /> 
<label for="repete">Entrez une phrase à répeter : </label><input type="text" id="repete" name="repete" maxlength="30" /><br /> 
<label for="repetition">Entrez le nombre de fois où la valeur doit etre répétée : </label><input type="text" id="repetition" name="repetition" maxlength="2" /><br /><br /> 
<input type="submit" /><input type="reset" /> 
</fieldset></form> 
</body></html>

Ça me fait "Parse Error" à la ligne 12, la ligne du grand IF.
Merci de m'aider à trouver l'erreur (les) !
Lire la suite 

[Correction PHP] Un IF un peu long »

5 réponses
Réponse
+0
moins plus
if (isset($_GET['nom']) AND (isset($_GET['prenom'])) AND (isset($_GET['repete'])) AND (isset($_GET['repetition'])) AND (strlen($_GET['prenom'] <= 15)) AND (strlen($_GET['nom'] <= 20)) AND (strlen($_GET['repete'] <= 30)) AND ($_GET['repetition'] < 100)){


Essaye ça
Ajouter un commentaire
Réponse
+0
moins plus
if ((isset($_GET['nom'])) AND (isset($_GET['prenom'])) AND (isset($_GET['repete'])) AND (isset($_GET['repetition'])) AND (strlen($_GET['prenom'] <= 15)) AND (strlen($_GET['nom'] <= 20)) AND (strlen($_GET['repete'] <= 30)) AND ($_GET['repetition'] < 100) )
{



essaye ca

Parenthèses entourant toutes les conditions du IF
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup !
En effet, j'ai oublié un truc fondamental !
Je vous remercie beaucoup, et puis je vais résoudre aussi la boucle à répeter, en effet : celle-ci est infinie !
Ajouter un commentaire
Réponse
+0
moins plus
Donc voilà ! Le code va déjà mieux !
Mais il y a un problème auquel je ne peux résoudre.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Page de test de fonctions ameliorée</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
	<body>
<h2>Bienvenue sur cette page de fonctions !</h2>
<p>Nous allons ici tester quelques fonctions. Par exemple :</p>
<h3>> Un script qui donne nous dit votre nom et votre prénom !</h3>
<div style="border: dashed 2px blue"><?php
if ( (null != $_POST['nom']) AND (null != $_POST['prenom']) AND (null != $_POST['repete']) AND (null != $_POST['repetition']) AND (strlen($_POST['prenom'] <= 15)) AND (strlen($_POST['nom'] <= 20)) AND (strlen($_POST['repete'] <= 30)) AND ($_POST['repetition'] < 100) )
{
 echo '<p><strong>Voilà vos informations !</strong></p><table><thead><tr><th>Information</th><th>Valeur</th></tr></thead><tbody><tr><td><em>Prenom :</em></td><td>'.strip_tags($_POST['prenom']).'<td/></tr><tr><td><em>Nom :</em></td><td>'.strip_tags($_POST['nom']).'<td/></tr></tbody></table><p><strong>Voilà le texte que vous vouliez répéter !</strong><br />';
 for ( $r = 1 ; $r <= $_POST['repetition'] ; $r++)
  {
  echo '(n°'.$r.') '.strip_tags($_POST['repete']).'<br />';
  }
}
elseif ( (isset($_POST['nom'])) OR (isset($_POST['prenom'])) OR (isset($_POST['repete'])) OR (isset($_POST['repetition'])) )
{
 echo 'Vous avez probablement oublié un champ ou un champ est faussé. Réessayez.';
}
else
{
 echo 'Ici s\'affichera vos coordonnées';
}
?></div>
<form method="post" action="index.php"><fieldset><legend>Esssayez !</legend>
<label for="prenom">Entrez votre prénom : </label><br/><input type="text" id="prenom" name="prenom" maxlength="15" /><br />
<label for="nom">Entrez votre nom : </label><br/><input type="text" id="nom" name="nom" maxlength="20" /><br />
<label for="repete">Entrez une texte à répeter : </label><br/><textarea type="text" id="repete" name="repete" maxlength="300"></textarea><br />
<label for="repetition">Entrez le nombre de fois où la valeur doit etre répétée : </label><br/><input type="text" id="repetition" name="repetition" maxlength="2" /><br /><br />
<input type="submit" /><input type="reset" />
</fieldset></form>
</body></html>


Lorsque je lance la page, je veux que le div affiche "Ici s'affichera vos coordonnées", mais le PHP me signale que aucune valeur $_GET['nom'] n'existe. Logique puisqu'elle n'a pas étée crée...

A moins de faire ce script sur deux pages ( ce qui était mon contre-objectif ), je ne vois pas la solution... Ce n'est pas génant pour le reste du script, mais le visiteur a à se demmander...

Merci d'avance !
Ajouter un commentaire
Réponse
+0
moins plus
Finalement j'ai trouvé tout seul !
Il ne faut pas verifier de variable qui n'existe pas sauf avec isset.
Si un if n'est pas retenu, son contenu n'est pas exploré, donc ca marche !

<h3>> Un script qui donne nous dit votre nom et votre prénom !</h3>
<div style="border: dashed 2px blue; overflow: hidden;"><?php


if ( (isset($_POST['nom'])) OR (isset($_POST['prenom'])) OR (isset($_POST['repete'])) OR (isset($_POST['repetition'])) )
{
 if ( (null != $_POST['nom']) AND (null != $_POST['prenom']) AND (null != $_POST['repete']) AND (null != $_POST['repetition']) AND (strlen($_POST['prenom'] <= 15)) AND (strlen($_POST['nom'] <= 20)) AND (strlen($_POST['repete'] <= 300)) AND ($_POST['repetition'] < 100) )
 {
   echo '<p><strong>Voilà vos informations !</strong></p><table><thead><tr><th>Information</th><th>Valeur</th></tr></thead><tbody><tr><td><em>Prenom :</em></td><td>'.strip_tags($_POST['prenom']).'<td/></tr><tr><td><em>Nom :</em></td><td>'.strip_tags($_POST['nom']).'<td/></tr></tbody></table><p><strong>Voilà le texte que vous vouliez répéter !</strong><br />';
   for ( $r = 1 ; $r <= $_POST['repetition'] ; $r++)
    {
    echo '(n°'.$r.') '.strip_tags($_POST['repete']).'<br />';
    }
 }
 else
 {
  echo 'Vous avez probablement oublié un champ ou un champ est faussé. Réessayez.';
 }
}
else
{
 echo 'Ici s\'afficheront vos coordonnées';
}
?></div>
<form method="post" action="index.php"><fieldset><legend>Esssayez !</legend>
<label for="prenom">Entrez votre prénom : </label><br/><input type="text" id="prenom" name="prenom" maxlength="15" /><br />
<label for="nom">Entrez votre nom : </label><br/><input type="text" id="nom" name="nom" maxlength="20" /><br />
<label for="repete">Entrez une texte à répeter : </label><br/><textarea type="text" id="repete" name="repete" maxlength="300"></textarea><br />
<label for="repetition">Entrez le nombre de fois où la valeur doit etre répétée : </label><br/><input type="text" id="repetition" name="repetition" maxlength="2" /><br /><br />
<input type="submit" /><input type="reset" />
</fieldset></form>


Voilà, si ca peut aider quelqu'un !
Au revoir !
Ajouter un commentaire
Ce document intitulé « [Correction PHP] Un IF un peu long... » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?