[Resolu] Problème sur formulaire en ligne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Resolu] Problème sur formulaire en ligne

Re: Problème sur formulaire en ligne

par Neomcdn » 09 août 2011, 11:47

Je viens de trouver la solution.

Je suis reparti d'un fichier utilisé chez Ophos. Pour cet hébergeur, nous ajoutons un fichier nommé quotes.php qui contient les éléments suivants:

Code : Tout sélectionner

if (get_magic_quotes_gpc()){ $_POST = array_map('stripslashes',$_POST); $_GET = array_map('stripslashes',$_GET); $_COOKIE = array_map('stripslashes',$_COOKIE);
Ce fichier permet d'éviter d'avoir un slash devant les apostrophes à chaque soumission d'un $_POST.

Sauf que voilà, ici cela provoquait une erreur sur le tableau du formulaire chez Amen...

Enfin!

[Resolu] Problème sur formulaire en ligne

par Neomcdn » 09 août 2011, 10:50

Bonjour,

J'ai un site hébergé sur un Plesk chez Amen qui me pose problème.

En effet, j'utilise sur une administration un formulaire avec des checkbox. Elle fonctionne très bien en local mais pas en ligne et je ne parviens pas à savoir pourquoi.

Pour un produit, on peut lui affecter plusieurs critères (via checkbox). Je récupère ensuite la valeur de ces checkbox pour créer un implode et enregistrer les valeurs dans un champ de la base de données. Le problème est qu'en ligne, mon $_POST n'est pas reconnu comme un tableau et qui me donne donc lieu à une erreur sur mon implode :
Warning: implode() [function.implode]: Invalid arguments passed in
Mon var_dump($_POST) me donne çà:
["choix"]=> string(5) "Array"
Voici mon code :

Code : Tout sélectionner

if($_POST['submit']=='Valider'){ if(!isset($_SESSION['choix'])){ $_SESSION['choix']=array(); } $count=count($_POST['choix']); echo $count; var_dump($_POST); //exit(); if($count==''){ $erreur='Vous n\'avez opéré aucun choix concernant les mets du produit. Veuillez cocher, au minimum, une case avant de valider. (Ne pas tenir compte de ce message si vous avez fait "précédent")'; } else { $categ=implode(',', $_POST['choix']); // on enregistre en session les valeurs qui seront affectées au champ categ_etab de la table tbl_etab $_SESSION['categ']=$categ; $_SESSION['choix']=$_POST['choix']; header('Location: adm-cob-produit-mets-processor.php?famille='.$_GET['famille'].'&produit='.$_GET['produit']); } }
Et une partie de mon formulaire :

Code : Tout sélectionner

<tr> <td width="40">&nbsp;</td> <td width="930" colspan="2" align="left"> '; if($existe_mets==0){ echo ' Aucun met n\'est enregistré'; } else { while($row_mets=mysql_fetch_assoc($rs_mets)) { $_explode=explode(',',$row_produits['mets']); //var_dump($_explode); echo ' <p class="type-choix"><input type="checkbox" name="choix[]" id="choix[]" value="'.$row_mets['id_met'].'" '; if(is_array($_POST['choix']==TRUE) && in_array($row_mets['id_met'],$_POST['choix'])){ echo'checked="checked"'; } echo'/>&nbsp;'.$row_mets['nom_met'].'</p> '; } }echo' </td> </tr> '; } echo'<tr> <td class="titre2" colspan="3" align="center"> <input type="submit" name="submit" id="submit" class="bouton" value="Valider"/> </td> </tr> </form> </table>';
Qu'en pensez-vous? Avez-vous déjà rencontré ce type de problème?

Bien cordialement,

@+!