IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Case à cocher à choix multiple php/mysql


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut Case à cocher à choix multiple php/mysql
    Bonjour tout le monde,
    j'ai un formulaire avec des cases à cocher , l'utilisateur a la possibilité de cocher plusieurs case, et j'ai une page cible qui contient le traitement php.
    Mon problème se pose au niveau de 'lajout des champs dans la base de données.
    J'ai pu réccupérer la liste des champs et les affichés mais pas les ajoutés dans ma base de données
    erreur:
    Warning: mysql_escape_string() expects parameter 1 to be string, array given in C:\wamp\www\Site\site\cibleAjoutFormStage.php on line 141

    la ligne 141
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pj=mysql_escape_string($tab);
    si vous pouvez m'aider svp
    formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <tr>
    <td>Pièce jointe (rar/zip)<span class="rouge">*</span> :</td>
    <td>CV:<input name="pj[]" type="checkbox" value="CV" /> <br />
    Attestation:<input name="pj[]" type="checkbox" value="attestation" />
    Diplôme:<input name="pj[]" type="checkbox" value="diplome" />
    </td>
    </tr>

    voilà une partie du traitement de ma page cible si vous pouvez m'aider à traiter la variable de case à cocher pj et merci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    $tab =$_POST['pj'];  
    if( !empty($_POST['nom'])&& !empty($_POST['prenom'])&& !empty($_POST['cin'])&& !empty($_POST['etablissement'])&& !empty($_POST['email'])  && !empty($_POST['telephone'])&& !empty($_POST['adresse'])&& !empty($_POST['type']) && !empty($_POST['referenceoffre']) && !empty($_POST['delai']) && !empty($tab) && isset($_FILES['avatar']) && isset($_FILES['CV']) )
    {
    //récupération des données saisies dont des variables
     
      $nom=mysql_escape_string($_POST['nom']);
      $prenom=mysql_escape_string($_POST['prenom']);
      $cin=mysql_escape_string($_POST['cin']); 
      $etablissement=mysql_escape_string($_POST['etablissement']); 
      $email=mysql_escape_string($_POST['email']);
      $telephone=mysql_escape_string($_POST['telephone']);
      $adresse=mysql_escape_string($_POST['adresse']);
      $type=mysql_escape_string($_POST['type']);
      $referenceoffre=mysql_escape_string($_POST['referenceoffre']);
      $descriptionsujet=mysql_escape_string($_POST['descriptionsujet']);
      $delai=mysql_escape_string($_POST['delai']);
      $avatar=$dossier.$fichier;
      $pj=mysql_escape_string($tab);
      $CV=$dossier1.$fichier1;
     
     
      //Requête SQL
      $requete="INSERT INTO formulaire (nom, prenom, cin,etablissement, email,telephone, adresse,type,referenceoffre, descriptionsujet,delai,avatar,pj,CV) 
      VALUES ('$nom' ,'$prenom','$cin','$etablissement', '$email','$telephone','$adresse','$type','$referenceoffre','$descriptionsujet', '$delai', '$avatar','$pj', '$CV')";
     
     echo "Téléphone :" .$telephone. "<br><br>" ;
     echo "Adresse :" .$adresse. "<br><br>" ;
     echo "Type :" .$type. "<br><br>" ;
     echo "Référence offre :" .$referenceoffre. "<br><br>" ;
     echo "Délai de la réponse :" .$delai. "<br><br>" ;
     print_r($tab);

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    D'ou vient ce $tab.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut
    Pardon j'ai oublier cette ligne, je viens d'édité mon ancien post
    Merci pour votre aide Mr

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2009
    Messages : 126
    Par défaut
    Citation Envoyé par tatutatu2009 Voir le message
    Bonjour tout le monde,
    Warning: mysql_escape_string() expects parameter 1 to be string, array given in C:\wamp\www\Site\site\cibleAjoutFormStage.php on line 141
    Tu passes un tableau en paramètre, passe une chaine de caractère ca devrait fonctionner

  5. #5
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut
    je ne vous est pas compris svp sivous pouvez m'expliquer un peu plus merci

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2009
    Messages : 126
    Par défaut
    Utilises de préférence mysql_real_escape_string (mysql_escape_string obsolète depuis PHP 5.3.0.)

    dans la doc php :
    string mysql_real_escape_string ( string $unescaped_string )
    l'argument demandé est une string
    ton $tab =$_POST['pj']; est un array fais un var_dump($_POST) pour t'en apercevoir.
    En revanche $_POST['pj'][0] constitue une chaine de caractère.

    Une solution serait de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array_walk($tab, create_function('&$val', '$val = mysql_real_escape_string($val);'));
    qui va appliquer mysql_real_escape_string sur chaque élément du tableau
    voici la doc array_walk

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par matlow Voir le message
    Une solution serait de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array_walk($tab, create_function('&$val', '$val = mysql_real_escape_string($val);'));
    qui va appliquer mysql_real_escape_string sur chaque élément du tableau
    voici la doc array_walk
    bien joué t'as recrée array_map ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Update multiple PHP/MySQL
    Par lebanner82 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/01/2012, 21h06
  2. [XL-2010] Faire une case a choix multiple
    Par Yvan77 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/09/2011, 13h01
  3. Identifiant d'une case à cocher avec variable PHP
    Par Nicolas74100 dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2010, 20h15
  4. Cases à cocher à sélection multiple?
    Par athos7776 dans le forum IHM
    Réponses: 4
    Dernier message: 15/06/2007, 21h46
  5. [forms 9i] case à cocher : suppression multiple
    Par ramaro dans le forum Forms
    Réponses: 3
    Dernier message: 05/04/2006, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo