Apostrophes ne passent pas ?

Résolu/Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 15 mars 2007 à 13:41
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 16 mars 2007 à 13:51
Salut a tous,
J'ai un petit souci assez bizarre.
En local, lorsque je tape une apostrophe dans le commentaire (pour un ajout de fiche, voir sur http://txiki.free.fr) ça me met une erreur alors que chez free ça passe très bien.
Y a t-il quelque chose a configurer en local (apache ou autre...) ?
Merci pour la réponse.

4 réponses

nassdak Messages postés 61 Date d'inscription jeudi 26 octobre 2006 Statut Membre Dernière intervention 8 juin 2007 23
15 mars 2007 à 16:08
Salut!
Ce ne serait pas dû au fait que, les serveurs de Free antislashent automatiquement les apostrophes par mesure de sécurité?
Essaie d'utiliser la fonction addslashes dans ton script

https://www.php.net/manual/fr/function.addslashes.php
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
15 mars 2007 à 20:37
Je te remercie pour ta réponse mais je ne comprends pas bien là:
Comment je fais pour mon formulaire ou pratiquement tous les champs a renseigner le seront en texte donc avec possibilités d'accent, de point, point virgule etc....
Ce qui est actuellement chez free est provisoire car a terme, ce sera hébergé en interne dans la boite.
0
nassdak Messages postés 61 Date d'inscription jeudi 26 octobre 2006 Statut Membre Dernière intervention 8 juin 2007 23
16 mars 2007 à 11:23
Lors de l'envoi de ton formulaire, tu utilises la fonction addslashes qui se chargera de mettre des antislashes devant tes apostrophes.
Je ne sais pas si je suis clair :)

Après il faut savoir que ton serveur interne a ta boite sera surement configuré aussi de façon à le faire automatiquement, mais bon ça ne te coute rien d'utiliser cette fonction ds ton code.

J'espère avoir répondu à ta question, sinon tu peux tjs poster un bout de ton code ;)
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
16 mars 2007 à 11:46
Pour préciser ce qu'a dit Nassdak, lorsque tu récupère tes paramètres dans ton script php qui effectue les requètes SQL, il te faut modifier la valeur de ces paramètres en bloquant les ' et " via la fonction addSlashes de la facon suivante :

$param = addSlashes($_POST["param"]);

$rqt = "SELECT bidule FROM machin WHERE toto = '".$param."'
0
nassdak Messages postés 61 Date d'inscription jeudi 26 octobre 2006 Statut Membre Dernière intervention 8 juin 2007 23
16 mars 2007 à 12:18
Nikel ;)
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
16 mars 2007 à 13:51
Merci a vous,
Je crois qu'il y a un truc qui me chagrine:
Sous W2000 et IE6 (au bureau) je suis obligé de mettre un back slashe avant une apostrophe avant de pouvoir valider mon formulaire (html) sans erreur. Mais SI j'affiche la fiche détaillée, le texte est correct.
Dans le php.ini, le magic_quote est bien a off pourtant....
Voici mon formulaire au cas où....
</table>
      <br>
      <table width="100%"  border="0" align="center" cellpadding="3" cellspacing="0">
        <tr>
          <td> Groupe: <strong class="echec">*</strong>
            <select name="groupe">
              <option> </option>
              <option>m&eacute;tier</option>
            <option>management</option>
            <option>SI de gestion</option>
            <option>poste de travail</option>
            </select>
          </td>
        </tr>
  </table>
      <table width="100%"  border="0" align="center" cellpadding="3" cellspacing="0">
        <tr>
          <td width="50%"> Catégorie: <strong class="echec">*</strong>
            <select name="categorie">
            <option> </option>
            <option>CFAO</option>
            <option>DAO</option>
            <option>Logiciel embarqu&eacute;</option>
            <option>Calcul-Simulation</option>
            <option>Mesure-Acquisition</option>
            <option>Supervision-Pilotage</option>
            <option>PAO</option>
            <option>Reprographie m&eacute;tier-traceur</option>
            <option>Maintenance moteur</option>
            <option>D&eacute;veloppement informatique</option>
            <option>Gestion connaissances</option>
            <option>Divers</option>
            <option>Informatique d&eacute;cisionnelle</option>
            <option>Gestion projet-Planification</option>
            <option>Gestion processus</option>
            <option>Projet SAP</option>
            <option>communication-Bureautique</option>
            <option>S&eacute;curit&eacute;</option>
            <option>Composant acc&egrave;s services</option>
            <option>Outillage banalis&eacute;</option>
            <option>Driver p&eacute;riph&eacute;rique carte</option>
            <option>OS syst&egrave;me</option>
            <option>Infrastructure technique</option>
            </select> </td>
          <td width="5">&nbsp;</td>
          <td width="50%">Source: <input type="text" name="source" size="30" maxlength="100"></td>
        </tr>
        <tr>
          <td width="50%">Editeur: <input TYPE="text" name="editeur" SIZE="46" maxlength="100"></td>
          <td width="5">&nbsp;</td>
          <td width="50%"> Nom: <strong class="echec">*</strong><input TYPE="text" name="nom" SIZE="51" maxlength="255">
          </td>
        </tr>
        <tr>
          <td width="50%">Ligne du produit: 
          <input TYPE="text" name="ligne_produit" SIZE="36" maxlength="100"></td>
          <td width="5">&nbsp;</td>
          <td width="50%">Socle: <input TYPE="text" name="socle" SIZE="40"></td>
        </tr>
        <tr>
          <td width="50%">Référence DSI: <strong class="echec">*</strong><select name="reference_DSI">
            <option>choisir une option</option>
            <option>cat</option>
            <option>ref</option>
            <option>&eacute;val</option>
          </select>
          </td>
          <td width="5">&nbsp;</td>
          <td width="50%">Standard DSI: <select name="standard_DSI">
            <option>choisir une option</option>
            <option>standard</option>
            <option>rebut</option>
            <option>*</option>
          </select></td>
        </tr>
        <tr>
          <td width="50%">Type de licence: <select name="type_licence">
            <option>choisir une option</option>
            <option>monoposte</option>
            <option>monoposte &agrave; jeton</option>
            <option>monoposte dongle</option>
            <option>monoposte + cl&eacute; mat&eacute;rielle</option>
            <option>monoposte + cl&eacute; logicielle</option>
            <option>r&eacute;seau</option>
            <option>licence flottante</option>
            <option>licence flottante et monoposte</option>
            <option>client lourd</option>
            <option>client serveur</option>
            <option>cl&eacute; mat&eacute;rielle</option>
            <option>acc&egrave;s unix</option>
            <option>d&eacute;veloppement sp&eacute;cifique TM</option>
            <option>licence site</option>
            <option>client citrix</option>
            <option>aucune</option>
          </select></td>
          <td width="5">&nbsp;</td>
          <td width="50%">Version standard: <input TYPE="text" name="version_standard" SIZE="20" maxlength="150"></td>
        </tr>
        <tr>
          <td width="50%">Compatibilité XP: <select name="compatibilite_XP">
            <option>choisir une option</option>
            <option>oui</option>
            <option>non</option>
            <option>oui pour version 2006</option>
            <option>?</option>
            <option>? pour 4.3 oui pour 5.0</option>
            <option>IE 5.5 sp1</option>
            <option>Office 2000, 2002, 2003</option>
          </select></td>
          <td width="5">&nbsp;</td>
          <td width="50%">Versions en exploitation: <input TYPE="text" name="versions_exploitation" SIZE="20"></td>
        </tr>
        <tr>
          <td width="50%">Type de déploiement: <select name="type_deploiement">
            <option>choisir un type</option>
            <option> serveur/script</option>
            <option>serveur/script + CD</option>
            <option>serveur/proc&eacute;dure</option>
            <option>manuelle</option>
            <option>CD</option>
            <option>?</option>
            <option>logon script</option>
            <option>logon script + disque S</option>
            <option>FTP</option>
            <option>t&eacute;l&eacute;charg&eacute;e</option>
            <option>en cours</option>
          </select></td>
          <td width="5">&nbsp;</td>
          <td width="50%">Type d'installation: <select name="type_installation">
            <option>choisir le type</option>
            <option>locale</option>
            <option>r&eacute;seau</option>
            <option>client</option>
            <option>serveur</option>
            <option>non</option>
          </select></td>
        </tr>
        <tr>
          <td width="50%">Domaine: <select name="domaine">
            <option>choisir un domaine</option>
            <option>CFAO</option>
            <option>DAO</option>
            <option>PAO</option>
            <option>Calul/Simulation</option>
            <option>Logiciel embarqu&eacute;</option>
            <option>Mesure/Acquisition</option>
            <option>Supervision/Pilotage</option>
            <option>Reprographie</option>
            <option>Maintenance moteur</option>
            <option>D&eacute;veloppement informatique</option>
            <option>Gestion des connaissances</option>
            <option>Informatique d&eacute;cisionnelle</option>
            <option>Gestion de projet</option>
            <option>Planification</option>
            <option>Mod&eacute;lisation processus</option>
            <option>SI de gestion</option>
            <option>Accompagnement au changement</option>
            <option>Projet SI</option>
            <option>Communication/Bureautique</option>
            <option>S&eacute;curit&eacute;</option>
            <option>COmposant d'acc&egrave;s &agrave; un service</option>
            <option>Composant java sur le poste</option>
            <option>Outillage banalis&eacute;</option>
            <option>Driver, p&eacute;riph&eacute;rique, exploitation p&eacute;riph&eacute;rique </option>
            <option>OS</option>
            <option>Outil syst&egrave;me</option>
            <option>Infrastructure technique</option>
          </select></td>
          <td width="5">&nbsp;</td>
          <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="2">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="fonctionnalite" cols="35" rows="2" wrap="virtual"></textarea></td>
            </tr>
            <tr>
              <td>Fonctionnalit&eacute;:&nbsp; </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
        </tr>
        <tr>
          <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="description" cols="35" rows="2"></textarea></td>
            </tr>
            <tr>
              <td>Description: </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
          <td width="5">&nbsp;</td>
          <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="2">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="instructions" cols="35" rows="2"></textarea></td>
            </tr>
            <tr>
              <td>Instructions:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
        </tr>
        <tr>
          <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="pre_requis" cols="35" rows="2"></textarea></td>
            </tr>
            <tr>
              <td>Pré-requis:&nbsp; </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
          <td width="5">&nbsp;</td>
          <td width="50%">Référent métier: <input TYPE="text" name="referent_metier" SIZE="36" maxlength="255"></td>
        </tr>
  </table>
	  <table width="100%"  border="0" align="center" cellpadding="3" cellspacing="0">
        <tr>
          <td><table width="100%"  border="0" cellspacing="0" cellpadding="2">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="commentaires" cols="85" rows="2"></textarea></td>
            </tr>
            <tr>
              <td>Commentaires:</td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
        </tr>
  </table>
<table width="80%"  border="0" align="center" cellpadding="4" cellspacing="0">
        <tr>
          <td align="center"><strong class="red">V&eacute;rifiez les champs renseign&eacute;s avant de Valider</strong> <br>
            <br>
          <input type="submit" name="submit" value="Ajouter la fiche dans la base" onClick="javascript: return verif();"></td></tr>
  </table>
  	  </table>
</form>

NOTE: j'ai mis le form dans un tableau pour des Pb de mise en page
impossible par les input classique
.
AUTRE chose plus intriguante encore:
le controle en javascript ne peut se faire sur une liste déroulante avec IE alors que ça fonctionne très sous Firefox. ???
Merci pour votre patience les gars.
0