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 :

Pb dans formulaire


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 220
    Par défaut Pb dans formulaire
    Bonjour

    Voici mon pb

    ALors j ai créer un formulaire donc voivi le code

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <form method="POST" action="formclient3.php" enctype="multipart/form-data" name="formclient" >
    <div align="center"></div>
    <p align="center">
     
     
    <table width="566" border="0" align="center">
    <p align="center"></p><tr>
          <td><font face="Verdana" size="2">Nom * </font></td>
     
            <td><input name="nom" type="text"style="background-color: #FFFFFF;font: Verdana; border: 0px;"></td>
    </tr><tr>
    	  <td><font face="Verdana" size="2">Prénom * </font></td>
          <td><input name="prenom" type="text"style="background-color: #FFFFFF;font: Verdana; color: #000000; border: 0px;" /></td>
        </tr><tr>
    	  <td width><font face="Verdana" size="2">Societe</font></td>
          <td width><input name="societe" type="text" style="background-color: #FFFFFF;font: Verdana; color: #000000; border: 0px;" ></td>
    	</tr><tr>
    	  <td width><font face="Verdana" size="2">Adresse</font></td>
          <td width><input name="adresse" type="text" style="background-color: #FFFFFF;font: Verdana; color: #000000; border: 0px;" ></td>
    	</tr><tr>
    	  <td width><font face="Verdana" size="2">Code Postal</font></td>
          <td width><input name="cp" type="text" style="background-color: #FFFFFF;font: Verdana; color: #000000; border: 0px;" ></td>
    	</tr><tr>
    	  <td width><font face="Verdana" size="2">Ville</font></td>
          <td width><input name="ville" type="text" style="background-color: #FFFFFF;font: Verdana; color: #000000; border: 0px;" ></td>
    	</tr><tr>
    	  <td width><font face="Verdana" size="2">Tel * </font></td>
          <td width><input name="tel" type="text" style="background-color: #FFFFFF;font: Verdana; color: #000000; border: 0px;" ></td>
    	</tr><tr>
    	  <td width><font face="Verdana" size="2">Fax</font></td>
          <td width><input name="fax" type="text" style="background-color: #FFFFFF;font: Verdana; color: #000000; border: 0px;" ></td>
    	</tr><tr>
    	  <td width><font face="Verdana" size="2">Email * </font></td>
          <td width><input name="email" type="text" style="background-color: #FFFFFF;font: Verdana; color: #000000; border: 0px;" ></td>
    	</tr>
    	<tr>
          <td valign="top">
            <p>&nbsp;</p>
          <p>&nbsp;</p></td><td><div align="center">
            <input type="reset" name="Reset" value="Effacer" />
            <input type="submit" name="envoi" value="Envoyer" onclick="valider()" />
    </div></td>
        </tr>
      </table>
      <div align="center"></div>
    </form>
    Le souci c est que lorsque je rentre une ' dans des champs il refuse de l ajouter dans la BDD et me mets ce message d erreur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: Undefined variable: sql in c:\program files\easyphp1-8\www\actimac\formclient3.php on line 60
    Erreur SQL !
    Erreur de syntaxe près de 'ombre','14000','caen','0231202020','0231202021','juliend@act.fr'' à la ligne 1
    dans ma bdd le type du champ est de TEXT et c est pareil quand il est VARCHAR

    Comment faire Merci

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    mysql_real_escape_string saves the day

  3. #3
    Membre émérite Avatar de gretch
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 165
    Par défaut
    ou encore addslash et stripslash

    Bon courage et pense à cliquer sur

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 220
    Par défaut
    je n ai pas compri vos solutions

  5. #5
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    l'idée, c'est que l'apostrophe (')(ou le guillemet (") selon les cas) est considéré comme une fin de chaine de caractère, et du coup, ta commande SQL ne veut plus rien dire. Il faut donc les 'échaper', c'est à dire rajouter un backslash devant, afin que PHP ne ferme pas la chaine à cet endroit.

    Pour cela, il faut utiliser une des fonctions citées ci-dessus sur la chaine que tu récupère de ton input.
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 220
    Par défaut
    ok j ai bien compri l utilité du backslash mais je le rajoute ou exactement?
    D'aprés ce que j ai compri je devrai le récuper dans le traitement de mon formulaire si c est bien ca mais ou je sais pas?

    VOici comment je récupére ce qui est saisi par l utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (isset($_POST['adresse']))      $adresse=$_POST['adresse'];
    else      $adresse="";
    ce serait donc ici que je devrai mettre le backslash mais ou ?

  7. #7
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Tu as les liens des fonctions citées dans les posts, va tout simplement lire la documentation
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 220
    Par défaut
    Voici les modif que j ai apporté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (isset($_POST['adresse']))      $adresse=addcslashes($_POST['adresse']);
    else      $adresse="";
    Erreur Génerer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: Wrong parameter count for addcslashes() in c:\program files\easyphp1-8\www\actimac\formclient3.php on line 21

  9. #9
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    addslashes et addcslashes sont différentes. (lis la doc tu verras)

    Dans ton cas utilises simplement addslashes ça suffira
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 220
    Par défaut
    ok avec addslash ca marche,
    mais c est quoi la différence avec
    addcslashes j ai pas compri et j ai lu !!

  11. #11
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    string addcslashes ( string str, string charlist )
    addcslashes -- Ajoute des slash dans une chaîne, à la mode du langage C
    addcslashes() retourne la chaîne str, après avoir ajouté des anti-slash devant tous les caractères qui sont présents dans la liste charlist
    string addslashes ( string str )
    addslashes() retourne la chaîne str, après avoir échappé tous les caractères qui doivent l'être
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/07/2005, 18h04
  2. suppression en cascade dans formulaire et sous-formulaire
    Par tooneygirl dans le forum Access
    Réponses: 7
    Dernier message: 20/06/2005, 15h17
  3. Réponses: 4
    Dernier message: 29/11/2004, 17h51
  4. Figer colonnes dans formulaire continu
    Par Mr.Gus dans le forum IHM
    Réponses: 10
    Dernier message: 30/11/2003, 14h59
  5. touche entrée dans formulaire
    Par pram dans le forum XMLRAD
    Réponses: 8
    Dernier message: 15/04/2003, 10h13

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