Problème de formulaire

Résolu/Fermé
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 2 févr. 2009 à 21:16
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 3 févr. 2009 à 16:23
Bonjour,

Ce code ci ne semble pas fonctionner:

<form action='' enctype='multipart/form-data' method='post'>
	<p class='bckTitre'>Modifier une page</p>
	<p ckass='bckTexte'>Voici tes cibles, jedi:<br /><br />
	<span class='eachPage'>
		<label class='stats'>Titre: <input type='text' name='MP[011d9f][]' value='Accueil'/></label>
		<select name='MP[011d9f][]' class='stats'>
			<option value='ffbb00' style='background-color:#ffbb00' selected></option>
			<option value='2222ff' style='background-color:#2222ff'></option>
		</select><br />
		<label>Texte:<textarea class='textContenter' name='MP[011d9f][]'>Ou pas!</textarea><br />
		<label class='stats'>En cours d'édition: <input type='radio' name='MP[011d9f][]' value="en cours d'édition" /></label>
		<label class='stats'>En ligne: <input type='radio' name='MP[011d9f][]' value='en ligne' checked /></label><br /><br />
		<label>Mots-clefs:<textarea name='MP[011d9f][]'>Première page de test, test couleurs modifiées, add mots clefs,</textarea></label>
		<input type='hidden' value='011d9f' name='MP[011d9f][]'/><br />
		
		<a href='#' onclick="javascript:Annexes('annexes')">Module d'annexes</a><br />
		<span class='annexes' id='annexes' style='display:none;'>
		<label class='miniature'>Miniature n°1: <input type='file' name='annexes[1][mini]'/></label>
		<label class='image'>Image n°1: <input type='file' name='annexes[1][img]'/></label><br/>
		<label class='miniature'>Miniature n°2: <input type='file' name='annexes[2][mini]'/></label>
		<label class='image'>Image n°2: <input type='file' name='annexes[2][img]'/></label><br/>
		</span>
		
		<a href='#' onclick="javascript:Annexes('delAnnexes')">Suppression d'annexes</a><br />
		<span class='annexes delAnnexes' id='delAnnexes' style='display:none;'>
		<input type='hidden' name='AnnToken' value=''/>
		</span>
	</span>
<br /><input type='submit'/>
	</p>
</form>


Je reçois le nom des images dans le tableau voulu quand il n'y a pas l'attribut enctype, mais s'il est là, je ne reçois rien.
Quoi qu'il en soit, je n'arrive pas à récupérer les fichiers avec ce formulaire, et j'aimerais comprendre pourquoi.
Quelqu'un pourrait il m'aider? A ce que j'en sais, c'est valide^^

Smoke

PS: toutes les autres données sont récupérées, il ne manque que les données image.

3 réponses

Judes-Emile Bornes IV Messages postés 123 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 23 février 2010 12
2 févr. 2009 à 21:41
On aimerait voir tout ton code, c'est à dire aussi celui qui sert à récupérer les données du formulaire!
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
2 févr. 2009 à 21:56
mdr tu l'auras voulu!

ALAKAZAM!!!

//récupère les variables, en cours de développement donc pas terrible
	function annexeMods($cible){
		$annexes=$_POST['annexes'];//tableau multi dont chaque tableau contient une miniature et une image
		$token=$_POST['AnnToken'];
			if($annexes or $files){
				foreach($annexes as $iAnn=>$vAnn){
					$fCorps.="Annexe id $iAnn value $vAnn[img]<br />";
					if(!$vAnn['img'] OR !$vAnn['mini']) { unset($annexes[$iAnn]); }
					$mini=$vAnn['mini']; $img=$vAnn['img'];
					$fCorps.="Bober: $mini $img <br />";
				}
			}else{
				$fCorps="Aucune donnée n'a été transmise en ajout d'image. ";
			}
		return $fCorps;
	}




//établi le formulaire général
	function modiPages(){
		$fType='upload';
		$fTitre='Modifier une page';
			if(!$_POST['mP']){//on sélectionne les cibles
				$sqlMP="select ref,chemin,titre from contenu order by titre asc";
				$queryMP=mysql_query($sqlMP) or die(mysql_error());
					while($mP=mysql_fetch_array($queryMP)){
						$fCorps.="<label>$mP[titre] <input type='checkbox' value='$mP[chemin]' name='mP[]'/></label><br />";
					}
				$fCorps.="<br />";
			}else{//on répète le formulaire pour chaque cible
				$fCorps.="Voici tes cibles, jedi:<br /><br />";
					$targets=$_POST['mP'];
						foreach($targets as $id=>$tip){
							$sqlMP="select contenu.chemin as chemin, contenu.statut as statut, contenu.titre as titre, ";
							$sqlMP.="menu.couleur as couleur, menu.ref as meRe, ";
							$sqlMP.="contenu.texte as texte, contenu.keyWords as keyds, contenu.annexes as gals ";
							$sqlMP.="from contenu,menu where contenu.chemin='$tip' and menu.ref='$tip'";
								$queryMP=mysql_query($sqlMP) or die(mysql_error());
								while($mP=mysql_fetch_array($queryMP)){
									$fCorps.="\n\t\t\t\t\t\t\t\t<span class='eachPage'>";
									$fCorps.="\n\t\t\t\t\t\t\t\t\t<label class='stats'>Titre: <input type='text' name='MP[$mP[chemin]][]' value='".parent::shapeStringOut($mP[titre])."'/></label>";
										$fCorps.="\n\t\t\t\t\t\t\t\t\t<select name='MP[$mP[chemin]][]' class='stats'>";
										$fichier=fopen('couleurs.txt','r');
											$couleurs=fread($fichier,filesize('couleurs.txt'));
										fclose($fichier);
											$couleurs=explode('//',$couleurs);
											foreach($couleurs as $tipd){
												$fCorps.="\n\t\t\t\t\t\t\t\t\t\t<option value='$tipd' style='background-color:#$tipd'";
												if($tipd==$mP['couleur']){
													$fCorps.=" selected";
												}
												$fCorps.="></option>";
											}
										$fCorps.="\n\t\t\t\t\t\t\t\t\t</select><br />";
									$fCorps.="\n\t\t\t\t\t\t\t\t\t<label>Texte:<textarea class='textContenter' name='MP[$mP[chemin]][]'>".parent::shapeStringOut($mP[texte])."</textarea><br />";
									$fCorps.="\n\t\t\t\t\t\t\t\t\t<label class='stats'>En cours d'édition: <input type='radio' name='MP[$mP[chemin]][]' value=\"en cours d'édition\" ";
										if($mP['statut']=="en cours d'édition"){
											$fCorps.="checked ";
										}
									$fCorps.="/></label>";
									$fCorps.="\n\t\t\t\t\t\t\t\t\t<label class='stats'>En ligne: <input type='radio' name='MP[$mP[chemin]][]' value='en ligne' ";
										if($mP['statut']=='en ligne'){
											$fCorps.="checked ";
										}
									$fCorps.="/></label><br /><br />";
									$fCorps.="\n\t\t\t\t\t\t\t\t\t<label>Mots-clefs:<textarea name='MP[$mP[chemin]][]'>".parent::shapeStringOut($mP[keyds])."</textarea></label>";
									$fCorps.="\n\t\t\t\t\t\t\t\t\t<input type='hidden' value='$mP[chemin]' name='MP[$mP[chemin]][]'/><br />";
									$fCorps.="\n\t\t\t\t\t\t\t\t\t".parent::annexeMods();
									$fCorps.="\n\t\t\t\t\t\t\t\t\t".parent::delAnnexes($mP['chemin'])."\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t";
								}
						}
			}
		parent::formed($fType,$fTitre,$fCorps);
	}



//fonction contenant les input files
	function annexeMods(){
		$fCorps="\n\t\t\t\t\t\t\t\t\t<a href='#' onclick=\"javascript:Annexes('annexes')\">Module d'annexes</a><br />";
		$fCorps.="\n\t\t\t\t\t\t\t\t\t<span class='annexes' id='annexes' style='display:none;'>";
			for($i=1;$i<=2;$i++){
				$fCorps.="\n\t\t\t\t\t\t\t\t\t<label class='miniature'>Miniature n°$i: <input type='file' name='annexes[$i][mini]'/></label>";
				$fCorps.="\n\t\t\t\t\t\t\t\t\t<label class='image'>Image n°$i: <input type='file' name='annexes[$i][img]'/></label><br/>";
			}
		$fCorps.="\n\t\t\t\t\t\t\t\t\t</span>";
		return $fCorps;
	}



//met en forme toutes les fonctions que j'lui envoi et qui sont en formulaires
	function formed($fType,$fTitre,$fCorps){
		echo "\n\t\t\t\t\t\t\t<form action=''";
				if ($fType=='upload') 
				echo " enctype='multipart/form-data'";
			echo " method='post'>";
			echo "\n\t\t\t\t\t\t\t\t<p class='bckTitre'>$fTitre</p>",
				"\n\t\t\t\t\t\t\t\t<p ckass='bckTexte'>$fCorps";
			if(!preg_match('#(\sne\s|\saucun\s)(^input)#i',$fCorps)){
				echo "<br /><input type='submit'/>";
			}
			echo "\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</form>";
	}
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
3 févr. 2009 à 16:23
Problème résolu, c'est assez compliqué à faire donc je ne récapitulerais pas. Si quelqu'un est confronté à un problème similaire, qu'il me contacte par MP^^
0