Prob fonction in_array()

Fermé
Utilisateur anonyme - 16 oct. 2008 à 19:32
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 - 17 oct. 2008 à 00:04
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:
<html>
<head>
	<title> Formulaire cin&eacute; </title>
</head>

<body>
	<form action="script.php">
		<label>Titre du film : </label>
		<input type="text" name="titre" /><br/>
		
		<label>Ann&eacute;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&ccedil;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&eacute; d'au moins 2 caract&egrave;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&eacute;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 &eacute;t&eacute; pr&eacute;cis&eacute;e<br/>"; }

	if(strlen($_REQUEST['descript'])<10 || strlen($_REQUEST['descript'])>500)
	{	$erreur .= "- description non valide (10<nb de caract&egrave;res<500)<br/>"; }

	if(is_array($_REQUEST['soustitre'])==false || count($_REQUEST['soustitre']<1))
	{ $erreur .="- il faut s&eacute;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&eacute;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&eacute;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

7 réponses

Utilisateur anonyme
16 oct. 2008 à 21:27
Personne n'a d'idées?
1
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 41
16 oct. 2008 à 21:54
Bonsoir,
y'a pas une erreur la :
($_REQUEST['genre']<1))

moi j'aurai mis ca :
($_REQUEST['genre'] ) <1 )
-1
Utilisateur anonyme
16 oct. 2008 à 21:57
effectivement, je suis stupide lol
Merci!
-1
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 41
16 oct. 2008 à 21:59
Tu as du le lire 100 fois sans le voir ;-)
ca arrive.
Sinon, ton formulaire fonctionne ?
-1

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

Posez votre question
Utilisateur anonyme
16 oct. 2008 à 22:10
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...
-1
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 41
17 oct. 2008 à 00:01
foreach($_REQUEST['genre'] as $tmp)
{ if(in_array($tmp,$tableaugenre)==false)
{ $erreur .= "- le genre $tmp n'est pas correct<br/>"; }
}

pareil pour le reste
-1
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 41
17 oct. 2008 à 00:04
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 ;-)
-1