Formulaire PHP/MYSQL

Bonjour,
je vient de faire un formulaire qui contien des bouton radio et des zone et des champs de texte...
je l'ai testé ça marche.
sur la base de données j'ai une zone de texte "textlong" je l'ai remis en "Bloblong"...lorsque j'introduit une petite paragraphe dans le formulaire ça s'enregistre pas ou ça me donne "Erreur de syntaxe près de "libelé de la zone" dans ce formulaire' à la ligne 3"...et lorsque je met un mot ça s'enregistre...
à l'aide SVP
Configuration: Windows Vista
Internet Explorer 7.0

24 réponses

  1. Bonjour,
    le problème de addslashes() qui n'était pas accepté.
    le prb venait du fait que j'ai une seule page.php qui contient à la fois le formulaire html et le code php...j'ai séparé les 2 pages et ça a marché tout est devenu logique sur mon formulaire...
    1. je m'exuse mais la fonction addslashes() ça a marché avec un exemple :
      je l'ajout = je pt taper l'apostrophe et ça marche...si je la supprime et je tape l'apostrophe ça me donne "erreur de syntaxe près de ' ,xxxxxxx"...et je suis obligé de la précéder par \ pour que ça marche...
      sur mon formulaire sans mettre addslashes() ça marche avec 2 zones de textes et pas avec 3 champs de texte, si je la rajoute ça change rien...je me trouve dans un contradictoire et j'arrive pas trouver la solution...en sachant que je suis en train de préparer un formulaire de satisfaction de client où l'utilisateur doit tapez son nom....
      aussi sur la base les caractères : é - è - à .... s'enregistre avec ????...
      à l'aide je suis vraiment bloqué...merci bcp
      1. Pour pas que le formulaire soit envoyé deux fois :

        echo '<input type=hidden name=pas_deux_fois value="'.uniqid('').'">';

        dans le code de ton formulaire, et dans le code qui traite ce formulaire :

        session_start();
        if(!isset($_SESSION['pas_deux_fois']) || $_SESSION['pas_deux_fois'] !== $_POST['pas_deux_fois']){
        $_SESSION['pas_deux_fois'] = $_POST['pas_deux_fois'];
        // la tu traites le formulaire
        }else{
        // la tu ne traites pas le formulaire parce que c'est le visiteur qui a réenvoyé le même
        }
        1. un autre prb lorsque je clique actualiser ça m'enregistre une ligne vide dans la base...est ce que je pt limiter l'envoit just au bouton envoyer??? et merci
          1. Bizarre, mon message précédent ne semble pas s'afficher ...

            je disais donc ... pour faire simple, utilise la fonction htmlentities()

            $texte = addslashes(htmlentities($texte));

            [Edit] ha ben il semble affiché maintenant :D [/edit]
            1. merci bcp ça vt dire que ça se fait pas sur la base...merci bcp
              1. Pour faire simple, utilise la fonction php htmlentities() qui remplacera les caractères spéciaux par leur équivalent HTML (par ex : é -> é )

                $texte = addslashes(htmlentities($texte));

                ?
                1. j'ai oublié sur la base de données il m'affiche ? à la palce des é, è, à, ê....???
                  je crois qu'on pt résoudre ce prb en choissant un type dans interclassement ou....
                  1. ahhhhhhhhhh ouiiiiiiiiiiiiii et texte_en_arial_gras + texte_en verdana vont jouer le role d'un conteneur ou des variables....j'ai compris et vous m'avez résolu une grande partie de mes problèmes...je crois que c'est tous ce que j'ai pour le moment...
                    Merci bcp pour votre efficacité
                    1. <font class=texte_en_arial_gras>lalala</font>

                      <font class=texte_en_verdana>lalala</font>

                      et dans ton css :

                      font.texte_en_arial_gras {
                      font-family : arial;
                      font-weight : bold;
                      ...
                      }
                      font.texte_en_verdana {
                      font-family : verdana;
                      ...
                      }

                      ?
                      1. oui je sait comment faire un petit peu mais, si j'ai une page qui contient de police différentes, les titres en gras et le texte normale....???comment je vais faire?
                        1. Heu, peut-être.

                          Essaye de mettre quelque chose comme ça dans une feuille de style :

                          font {
                          font-family : verdana, arial, helvetica, sans-serif;
                          }
                          1. ça serai pas le cas parce que j'utilise Arial blanc qui dispo par défaut sur tous les postes...je crois que c'est par ce que j'ai pas mis de feuille de style...est ce que c'est ça ?
                            1. La police utilisée n'est peut-être pas disponible sur l'autre poste ?
                              1. donc mtn j'ai terminé mon formulaire...ça marche parfaitement mais depuis un autre poste ça m'affiche une autre police...??? d'où vient ce souci?
                                1. ok c'est réglé voici une partie de mon code :

                                  <?php
                                  // fonctions de connexion a la BDD...
                                  include("testconnexion.php");
                                  include("connexion.php");
                                  // test de remplissage de formulaire
                                  if(isset ($_POST['nom'])) {$nom = $_POST['nom'];} else {$nom = '';}
                                  if(isset ($_POST['commentaire'])) {$prenom = $_POST['commentaire'];} else {$commentaire = '';}

                                  //requête d'ajout sur la base de données

                                  $requete = "INSERT INTO client (nom,commentaire) values ('$nom' , '".addslashes($commentaire)."');";

                                  mysql_query($requete) or die(mysql_error());

                                  ?>
                                  1. parfait, j'ai mis un longtext dans la BDD, et j'ai rajouté addslach : '".addslashes($questionouverte)."' et ça a marché...merci bcp
                                    juste la dérnière chose les é - è - à ... apparaissent en ? dans la base de donnée ça je crois qu'on doit choisir un type dans interclassement???
                                    1. oui mais ça me servira pour autre chose...de faire accepter les apostrophe et les accent et les é - è - à ...
                                      1. $texte = "texte avec des apostrophes ' ' ' ' ";
                                        $sql = "INSERT INTO table (texte) VALUES ('".addslashes($texte)."');";

                                        Mais ça n'a peut-être rien à voir avec ça
                                        • 1
                                        • 2