impossible de prendre l'apostrophe pour l'enregistrement dans mysql

impossible de prendre l'apostrophe pour l'enregistrement dans mysql - PHP - Programmation

Marsh Posté le 22-08-2008 à 18:27:03    

Bonjour,
voilà j'ai créé une page avec un formulaire tout fonction mais je n'arrive pas a rajouter le controle pour que l'apostrophe passe pour l'adresse dans ma base mysql merci de m'aider voici ma page:
 
?>
 
<body>  
<div class="contenu">
<?php
 
 
/**  
 * On commence par vérifier si le bouton soumettant le formulaire a été  
 * cliqué, "envoi" étant l'attribut "name" du bouton "submit"  
 * Sinon, on saute à la ligne 255 de ce code.  
 */  
if(isset($_POST['envoi']))  
{  
    /* Récupération des données du formulaire */  
    $nom       = isset($_POST['nom'])       ? trim($_POST['nom'])       : "";  
    $prenom    = isset($_POST['prenom'])    ? trim($_POST['prenom'])    : "";  
 $adresse   = isset($_POST['adresse'])   ? trim($_POST['adresse'])    : "";  
    $code_postal  = isset($_POST['code_postal'])  ? trim($_POST['code_postal'])    : "";  
    $ville     = isset($_POST['ville'])     ? trim($_POST['ville'])     : "";  
    $pays     = isset($_POST['pays'])     ? trim($_POST['pays'])     : "";  
 $telephone = isset($_POST['telephone']) ? trim($_POST['telephone']) : "";  
 $gsm     = isset($_POST['gsm'])     ? trim($_POST['gsm'])     : "";  
    $e_mail     = isset($_POST['e_mail'])     ? trim($_POST['e_mail'])     : "";  
    /**  
     * Définition des variables servant au traitement de l'adresse électronique et du numéro de  
     * téléphone: on utilise ici des expressions régulières.  
     */  
    $valid = "#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#";  
    $phone = "#^\d{6,10}$#";  
    /**  
     * Définition des variables servant au traitement de l'url:  
     */  
 
    /**  
     * Traitement de vérification des champs vides ou invalides (téléphone et/ou email et/ou url)  
     * Conditions de mauvaises réponses (champ vide par exemple)  
     */  
    if ($nom == '' || $prenom == '' || $adresse == '' || $code_postal == '' || $ville == '' || $pays == '' || $telephone == '' || !(preg_match($phone,$gsm,$telephone)) || $gsm == ''|| $e_mail == '' || !(preg_match($valid, $e_mail)))  
    {  
        /* Action à adopter */  
?>  
                <h3>Informations incomplètes</h3>  
                <p>Un (ou plusieurs) champ(s) obligatoire(s) n'a(ont) pas été correctement rempli(s).</p>  
<?php  
        if ($nom == '')  
        {  
            /* Si le champ "prénom" est vide, */  
            print "<p>Vous n'avez pas précisé le nom</p>\n";  
        }  
        if ($prenom == '')  
        {  
            /* Si le champ "nom" est vide, */  
            print "<p>Vous n'avez pas précisé le prénom</p>\n";  
        }  
   if ($adresse == '')  
        {  
            /* Si le champ "nom" est vide, */  
            print "<p>Vous n'avez pas précisé l'adresse</p>\n";  
        }  
   
   if ($code_postal == '')  
        {  
            /* Si le champ "nom" est vide, */  
            print "<p>Vous n'avez pas précisé le code postal</p>\n";  
        }  
   if ($ville == '')  
        {  
            /* Si le champ "nom" est vide, */  
            print "<p>Vous n'avez pas précisé la ville</p>\n";  
        }  
   if ($pays == '')  
        {  
            /* Si le champ "nom" est vide, */  
            print "<p>Vous n'avez pas précisé le pays</p>\n";  
        }  
        if ($telephone == '')  
        {  
            /* Si le champ "téléphone" est vide, */  
            print "<p>Vous n'avez pas précisé le numéro de téléphone</p>\n";  
        }  
        if (($telephone) && !(preg_match($phone,$gsm,$telephone)))  
        {  
            print "<p>Le numéro de téléphone doit comporter seulement des chiffres, de 6 à 10 chiffres sans espaces ni tirets</p>\n";  
        }  
   if ($gsm == '')  
        {  
            /* Si le champ "nom" est vide, */  
            print "<p>Vous n'avez pas précisé le gsm</p>\n";  
        }  
   if (($gsm) && !(preg_match($phone,$gsm,$telephone)))  
        {  
            print "<p>Le numéro de gsm doit comporter seulement des chiffres, de 6 à 10 chiffres sans espaces ni tirets</p>\n";  
        }  
        if(!$e_mail)  
        {  
            /* Si le champ "adresse électronique" est vide, */  
            print "<p>Vous avez omis de mentionner une adresse électronique !</p>\n";  
        }  
        if(($e_mail) && !(preg_match($valid, $e_mail))) /* Si il y a une adresse inscrite mais invalide */  
        {  
            /* On vérifie LES DEUX conditions réunies (avec le sugne "&&" ): si on ne vérifie que la validité, en ne  
            mettant pas d'adresse dans le formulaire, on obtient l'affichage des deux messages, or l'adresse à  
            ce moment là n'est pas invalide, elle est absente: le message d'invalidité ne s'applique donc pas. */  
            print "<p>L'adresse électronique saisie est invalide.</p>\n";  
        }  
        /**  
         * Si les vérifications ont généré des erreurs, affichage du formulaire  
         * contenant les données déjà saisies.  
         */  
$adresse = addslashes($adresse);
?>
 
<form action="ajouterclient.php ?>" method="post">  
  <fieldset>  
  <label><span class="legende_elmt">Nom : </span> <input type="text" name="nom" maxlength="40" class="cases" value="<?php echo $nom ?>" /></label><br />  
  <label><span class="legende_elmt">Prénom : </span> <input type="text" name="prenom" maxlength="40" class="cases" value="<?php echo $prenom ?>" /></label><br />  
  <label><span class="legende_elmt">Adresse : </span> <input type="text" name="adresse" maxlength="40" class="cases" value="<?php echo $adresse ?>" /></label><br />  
  <label><span class="legende_elmt">Code Postal: </span> <input type="text" name="code_postal" maxlength="40" class="cases" value="<?php echo $code_postal ?>" /></label><br />  
  <label><span class="legende_elmt">Ville : </span><input type="text" name="ville" maxlength="40" class="cases" value="<?php echo $ville ?>" /></label><br />  
  <label><span class="legende_elmt">Pays : </span><input type="text" name="pays" maxlength="40" class="cases" value="<?php echo $pays ?>" /></label><br />  
  <label><span class="legende_elmt">Téléphone : </span> <input type="text" name="telephone" maxlength="40" class="cases" value="<?php echo $telephone ?>" /></label><br />  
    <label><span class="legende_elmt">Gsm : </span><input type="text" name="gsm" maxlength="40" class="cases" value="<?php echo $gsm ?>" /></label><br />  
  <label><span class="legende_elmt">Email : </span> <input type="text" name="e_mail" maxlength="40" class="cases" value="<?php echo $e_mail ?>" /></label><br />  
    <div class="c3">  
  <input type="submit" class="verif" name="envoi" value="Envoyer" />
  </div>  
  </fieldset>  
</form>  
<?php  
    }  
    else  
    {  
  $db_link = mysql_connect("localhost","root","" );
 if (!$db_link){
  die ("Erreur de connexion :".mysql_error());
  }
  mysql_select_db("gestion de commande" ) or die ("Sélection de la base impossible" );
  /*performing SQL query*/
     //$adresse= stripslashes($adresse) ;  
  $sql="INSERT INTO client VALUES('".$_POST["id"]."','".$_POST["nom"]."','".$_POST["prenom"]."','".$_POST["adresse"]."','".$_POST["code_postal"]."','".$_POST["ville"]."','".$_POST["pays"]."','".$_POST["telephone"]."','".$_POST["gsm"]."','".$_POST["e_mail"]."','".$_POST["desactive"]."')";
 
 /*echo $sql;*/
   $result = mysql_query($sql,$db_link);
  if (!$result)
  die ("erreur sur ma requete".mysql_error());
 
  /* closing connection*/
  mysql_close($db_link);
 }
   
     
}  
 
else  
{  
?>  
<form action="ajouterclient.php ?>" method="post">  
  <fieldset>  
  <label><span class="legende_elmt">Nom : </span> <input type="text" name="nom" maxlength="40" class="cases" value="" /></label><br />  
  <label><span class="legende_elmt">Prénom : </span> <input type="text" name="prenom" maxlength="40" class="cases" value="" /></label><br />  
   <label><span class="legende_elmt">Adresse : </span> <input type="text" name="adresse" maxlength="40" class="cases" value="" /></label><br />  
  <label><span class="legende_elmt">Code Postal: </span> <input type="text" name="code_postal" maxlength="40" class="cases" value="" /></label><br />  
  <label><span class="legende_elmt">Ville : </span><input type="text" name="ville" maxlength="40" class="cases" value="" /></label><br />  
  <label><span class="legende_elmt">Pays : </span><input type="text" name="pays" maxlength="40" class="cases" value="" /></label><br />  
  <label><span class="legende_elmt">Téléphone : </span> <input type="text" name="telephone" maxlength="40" class="cases" value="" /></label><br />  
  <label><span class="legende_elmt">Gsm : </span><input type="text" name="gsm" maxlength="40" class="cases" value="" /></label><br />  
  <label><span class="legende_elmt">Email : </span> <input type="text" name="e_mail" maxlength="40" class="cases" value="" /></label><br />  
 
  <input type="submit" class="verif" name="envoi" value="Envoyer" />
  </div>  
  </fieldset>  
</form>  
<?php  
}  
?>  
</div>  
</body>  
</html>


Message édité par valorix le 22-08-2008 à 18:29:18
Reply

Marsh Posté le 22-08-2008 à 18:27:03   

Reply

Marsh Posté le 22-08-2008 à 18:35:41    

L'apostrophe est un caractère spécial, donc pour en mettre un dans une valeur faut l'échapper (en remplaçant ' par \'). C'est aussi nécessaire du coup pour éviter certaines failles de sécurités. Pour faire ça, englobe tes valeurs par la fonction mysql_real_escape_string :

Code :
  1. $sql="INSERT INTO client VALUES('".mysql_real_escape_string($_POST["id"])."','".mysql_real_escape_string($_POST[......

Reply

Marsh Posté le 22-08-2008 à 18:44:12    

ça marche un grand merci ton aide m'a été precieuse

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed