Comment éviter les antislashes dans les messages issues de mon formulaire?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par dotbug, 9 Avril 2010.

  1. dotbug
    dotbug Nouveau WRInaute
    Inscrit:
    9 Avril 2010
    Messages:
    4
    J'aime reçus:
    0
    Bonjour, après de m'avoir cassé la tête pendant plusieurs jours sans avoir trouvé la solution, je suis dans la nécessité de demander de l'aide.
    Pour le traitement de mon formulaire html j'utilise un script en php, simple mais assez efficace:
    <?php
    $TO = "contact-form@monsite.com";
    $h = "From: " . $TO;
    $message = "";
    $subject = "Request";
    while (list($key, $val) = each($HTTP_POST_VARS)) {
    $message .= "$key : $val\n";
    }
    mail($TO, $subject, $message, $h);
    Header("Location: http://www.monsite.com/contact/confirmation.html");
    ?>

    Le Problème: dans le message issue du dit formulaire il y à des antislashes devant chaque apostrophe et guillemets (exemple: aujourd/'hui).
    Pour quelqu'un qui connaît le php, peut-être, c'est une question banale mais, Comment puis je faire pour enlever les antislashes?
    Merci infiniment des votres aides.
     
  2. tyv
    tyv WRInaute occasionnel
    Inscrit:
    6 Janvier 2006
    Messages:
    260
    J'aime reçus:
    0
    juste avant la fonction mail, tu peux supprimer tous les \ de la variable $message en utilisant la fonction stripslashes:

    $message=stripslashes($message);

    edit: j'avais pas vu que c'était ton premier message donc bonjour et bienvenue :D
    edit2: le lien vers la doc php sur cette fonction
     
  3. dotbug
    dotbug Nouveau WRInaute
    Inscrit:
    9 Avril 2010
    Messages:
    4
    J'aime reçus:
    0
    Merci beaucoup Tyv, ça marche très bien. Je regrette de ne pas avoir demandé du l'aide avant, tout le temp que j'ai perdu sur ce sujet. Merci encore.
    J'ai été sur des différents sites comme php.net, phpcs, php-astux, etc, etc; des forums WRI et d'autres, ils font tous référence à la fonction stripslashes() mais sans expliquer clairement comment et où la utiliser. Je suis sur que maintenant, et grâce à toi, des néophytes de php (comme moi) trouveront des solutions aux mêmes problèmes.
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 168
    J'aime reçus:
    345
  5. dotbug
    dotbug Nouveau WRInaute
    Inscrit:
    9 Avril 2010
    Messages:
    4
    J'aime reçus:
    0
    Bonjour, si j'ai bien compris il faut il impérativement avoir une base de données pour désactiver les magic quotes? si non, peut-on placer le code mentioné sur sitepoint.com dans formmail.php?
    Merci.
     
  6. tyv
    tyv WRInaute occasionnel
    Inscrit:
    6 Janvier 2006
    Messages:
    260
    J'aime reçus:
    0
    non, c'est pas vraiment ça (c'est indépendant de la base de données): les backslashes sont automatiquement ajoutés lorsque dans la configuration de php l'option magic quotes est activée. En php 4 cette option avait comme but de protéger automatiquement les entrées des GET et POST est ainsi limiter les risques d'injection sql.
    En php5 cette option est désactivée par défaut, en php6 il me semble que cette fonction n'existera plus (perso tant mieux :D ).

    edit: Il est possible de le désactiver soit:
    - en modifiant la configuration de php sur ton serveur (si tu es sur un dédié)
    - en utilisant la fonction ini_set de php ou SetEnv dans un .htaccess qui permettent de modifier (selon les hébergeurs) certaines options de php.

    Par contre, il faut bien veiller à "échapper" correctement les chaines qui doivent être traitées en base de données (un exemple classique d'injection sql).
     
  7. dotbug
    dotbug Nouveau WRInaute
    Inscrit:
    9 Avril 2010
    Messages:
    4
    J'aime reçus:
    0
    Merci Tyv pour l'explication et à Spout aussi, maintenant tout est beaucoup plus claire pour moi.
    Pour le moment je n'ai pas besoin d'une base de données, dans le future surement oui. J'ai donc intérêt de apprendre davantage php.
    Merci.
     
Chargement...
Similar Threads - éviter antislashes issues Forum Date
faut-il activer les URL image ou éviter pour économiser le crawl Référencement Google 21 Juin 2021
Comment éviter les no-cors sur une PWA ? Développement d'un site Web ou d'une appli mobile 8 Mai 2021
Comment éviter un piège à bots avec un crawler ? Crawl et indexation Google, sitemaps 3 Décembre 2020
Les très grosses erreurs à éviter en référencement Débuter en référencement 1 Décembre 2020
Obfuscation de lien pour éviter de disperser le jus ? Netlinking, backlinks, liens et redirections 25 Mai 2020
Comment est ce que vous éviter l'adsense limit? AdSense 7 Mai 2020
WordPress Cloner mon site, les erreurs à éviter Développement d'un site Web ou d'une appli mobile 3 Mars 2020
Erreur 404 perso : comment éviter qu'elle soit indexée ? Administration d'un site Web 1 Décembre 2019
Un contenu serait publié deux endroits/URLs différents, comment éviter le duplicated content ? Référencement Google 2 Octobre 2019
Résolu Souci de redirection censées éviter contenu dupliqué Débuter en référencement 31 Juillet 2019
WordPress Peut-on éviter les redirections 301 multiples ? URL Rewriting et .htaccess 20 Mai 2019
Comment éviter le duplicate content entre 2 sites ? Référencement Google 2 Avril 2019
Actualités courtes : éviter la mauvaise note SEO Débuter en référencement 18 Février 2019
Google semble éviter l'accueil mais pas les pages internes Crawl et indexation Google, sitemaps 18 Février 2019
[Prestashop] Comment éviter duplicate sur marketplaces ? e-commerce 16 Juillet 2018
10 erreurs à éviter avant l’arrivée du Mobile-First Index de Google Crawl et indexation Google, sitemaps 19 Janvier 2018
Google va se plier aux exigences de l'Europe pour éviter d'autres amendes Google : l'entreprise, les sites web, les services 30 Août 2017
Eviter l'indexation de site mobile en sous domaine sur Google Desktop Crawl et indexation Google, sitemaps 6 Juillet 2017
Faut-il éviter la Redirection 301 sur son site ? Référencement Google 9 Mai 2017
Faut-il éviter de mettre sa marque dans les balises title? Débuter en référencement 26 Novembre 2016