Prob fonction in_array()
Utilisateur anonyme
-
Stef60 Messages postés 257 Statut Membre -
Stef60 Messages postés 257 Statut Membre -
Bonjour,
En ce moment je fais des petits tests persos et j'ai un petit problème avec mon script php.
J'envoie le résultat de mon formulaire dans une nouvelle page qui m'affiche ces résultats en les testants avant.
J'ai un problème avec ces tests et je pense que cela vient de ma fonction in_array().
Quand je remplis le formulaire et que j'envoie, je reçois les message d'erreur de mes trois variables qui dans leur test possède cette fonction.
Je vous laisse le code de mon script et du formulaire pour mieux comprendre.
Le formulaire:
Et la page php avec le script et l'affichage du résultat:
Merci d'avance de vos réponses.
Ciao
En ce moment je fais des petits tests persos et j'ai un petit problème avec mon script php.
J'envoie le résultat de mon formulaire dans une nouvelle page qui m'affiche ces résultats en les testants avant.
J'ai un problème avec ces tests et je pense que cela vient de ma fonction in_array().
Quand je remplis le formulaire et que j'envoie, je reçois les message d'erreur de mes trois variables qui dans leur test possède cette fonction.
Je vous laisse le code de mon script et du formulaire pour mieux comprendre.
Le formulaire:
<html> <head> <title> Formulaire ciné </title> </head> <body> <form action="script.php"> <label>Titre du film : </label> <input type="text" name="titre" /><br/> <label>Année : </label> <input type="text" name="annee" maxlength="4"/><br/> <label>Genre : </label> <select name="genre[]" multiple="yes" size="3"> <option value="policier">Policier</option> <option value="sf">Science-Fiction</option> <option value="culte">Culte!!!</option> </select><br/> <label>Description : </label> <textarea name="descript">Tape la description ici</textarea><br/> <label>Film en couleur : </label> <input type="radio" name="couleur" value="1"> Oui - <input type="radio" name="couleur" value="0"> Non<br/> <label>Pays : </label> <select name="pays"> <option value="fr">France</option> <option value="us">USA</option> <option value="gb">Angleterre</option> </select><br/> <label>Sous-titre : </label> <input type="checkbox" name="soustitre[]" value="fr"> Français - <input type="checkbox" name="soustitre[]" value="gb"> Anglais - <input type="checkbox" name="soustitre[]" value="es"> Espagnol<br/> <input type="submit" value="Valider" /> </form> </body> </html>
Et la page php avec le script et l'affichage du résultat:
<?php
function verif()
{
$erreur="";
if(strlen($_REQUEST['titre'])<2)
{ $erreur .="- le titre est composé d'au moins 2 caractères<br/>";}
if($_REQUEST['annee']<1930 || $_REQUEST['annee']>2008)
{ $erreur .="- y'avait ou y'a pas encore de film dans la date que tu donnes...<br/>"; }
if((is_array($_REQUEST['genre'])==false) || count($_REQUEST['genre']<1))
{ $erreur .="- il faut sélectionner un genre<br/>"; }
else
{
$tableaugenre = array("sf","culte","policier");
foreach($_REQUEST['genre'] as $tmp)
{ if(in_array($_REQUEST['genre'],$tableaugenre)==false)
{ $erreur .= "- le genre $tmp n'est pas correct<br/>"; }
}
}
if($_REQUEST['couleur']!=0 && $_REQUEST['couleur']!=1)
{ $erreur .= "- la couleur n'a pas été précisée<br/>"; }
if(strlen($_REQUEST['descript'])<10 || strlen($_REQUEST['descript'])>500)
{ $erreur .= "- description non valide (10<nb de caractères<500)<br/>"; }
if(is_array($_REQUEST['soustitre'])==false || count($_REQUEST['soustitre']<1))
{ $erreur .="- il faut sélectionner un sous-titre<br/>"; }
else
{
$tableauST = array("fr","gb","es");
foreach($_REQUEST['soustitre'] as $tmp)
{ if (in_array($_REQUEST['soustitre'],$tableauST)==false)
{ $erreur .= "- le sous-titre $tmp n'est pas correct<br/>";}
}
}
if((is_array($_REQUEST['pays[]']))==false || count($_REQUEST['pays'])<1)
{ $erreur .="- il faut sélectionner un pays<br/>"; }
else
{
$tableaupays = array("fr","us","gb");
foreach($_REQUEST['pays'] as $tmp)
{ if (in_array($_REQUEST['pays'],$tableauST)==false)
{ $erreur .= "- pas de pays choisi<br/>";}
}
}
if(!empty($erreur))
{ print($erreur);
return false;
}
}
if(verif()==false) exit(0);
echo "<b>Titre : </b>".$_REQUEST['titre']."<br/>";
echo "<b>Année : </b>".$_REQUEST['annee']."<br/>";
$genre = join(',',$_REQUEST['genre']);
echo "<b>Genre : </b>".$genre."<br/>";
echo "<b>Description : </b>".$_REQUEST['descript']."<br/>";
echo "<b>Couleur : </b>".$_REQUEST['couleur']."<br/>";
echo "<b>Pays : </b>".$_REQUEST['pays']."<br/>";
$soustitre = join(',',$_REQUEST['soustitre']);
echo "<b>Sous-titre : </b>".$soustitre."<br/>";
?>
Merci d'avance de vos réponses.
Ciao
Configuration: Windows XP Firefox 2.0.0.17
7 réponses
-
-
Bonsoir,
y'a pas une erreur la :
($_REQUEST['genre']<1))
moi j'aurai mis ca :
($_REQUEST['genre'] ) <1 ) -
-
Tu as du le lire 100 fois sans le voir ;-)
ca arrive.
Sinon, ton formulaire fonctionne ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Mes premieres erreurs n'apparaissent plus mais maintenant il me dit que mes genres n'existent pas alors que ce sont les mêmes qui sont dans le formulaire et dans le tableau... et ça fait pareil pour les autres tableaux...
-
foreach($_REQUEST['genre'] as $tmp)
{ if(in_array($tmp,$tableaugenre)==false)
{ $erreur .= "- le genre $tmp n'est pas correct<br/>"; }
}
pareil pour le reste -
tu as aussi une erreur ici :
$tableaupays = array("fr","us","gb");
foreach($_REQUEST['pays'] as $tmp)
{ if (in_array($tmp, $tableauST )==false)
{ $erreur .= "- pas de pays choisi<br/>";}
que vient faire $tableauST ?
C'est la le copier-coller ;-)