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 :

[PHP-JS] Réécrire un string lettre après lettre


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut [PHP-JS] Réécrire un string lettre après lettre
    Salut

    J'utilise MySql pour gérer une base de donnée. Les utilisateurs du site peuvent entrer eux-même des données dans la base de données grâce à du html (listbox ect...).
    Le soucis est que si un utilisateur écrit : "J'en étais à..." Lors de la réalisation de la requête SQL l'apostrophe dans "j'en" va faire planter cette dernière.

    Donc pour résoudre ce problème, j'aurais voulu, réécrire la variable contenant la phrase tapée par l'utilisateur, lettre par lettre en mettant une condition si apostrophe et pas d'autre apostrophe qui suit alors je rajoute une deuxième apostrophe à la première (puisque '' permet de passer la ' dans la base de donnée).

    Le soucis est que je n'ai aucune idée du code à utiliser en php pour réaliser cela.

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Il y a des fonctions pour gérer les apostrophes.

    Regarde du côté de addslashes.
    http://fr.php.net/manual/fr/function.addslashes.php

  3. #3
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    (puisque '' permet de passer la ' dans la base de donnée).
    Non ce n'est pas de l'access

    Regarde ça :
    http://fr2.php.net/manual/fr/functio...ape-string.php

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut
    Merci beaucoup

  5. #5
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut Problème avec l'apostrophe
    Bonjour tout le monde,
    J'ai un petit souci pour régler mon problème d'apostrophe! J'ai fait le tour des discussions qu'il y a eu la dessus, J'ai regardé le manual sur addslash() et htmlentities(), j'ai essayé de mettre addslashes($_POST['type']), mais ca ne marche pas et je n'arrive pas à inserer le type bien comme il faut dans ma base
    Merci d'avance pour votre aide

  6. #6
    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
    C'est une base mysql ?
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  7. #7
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Oui c'est une base Mysql

  8. #8
    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
    Montre un peu ton code d'insertion pour voir...
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  9. #9
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Voici le bout du code qui concerne l'insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(isset($_POST['modifier']))
    {
      // Je récupère tous les champs de mon formulaire
     $_POST['type'] = addslashes($_POST['type']);
     // C'est la variable type qui contient un apostrphe
     $req="insert into negociataire values ('" .$_POST['hide']. "','" .$ville."','".$_POST['type']."','".$ad1."' ......)";
    $res_ins=mysql_query($req);
    }
    Si le type ne contient pas ' l'insertion se fait, mais contient il le contient ca insert que la partie avant '.

  10. #10
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Par défaut
    Bonjour,

    Au lieu d'affecter la valeur avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['type'] = addslashes($_POST['type']);
    essaie avec un autre variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mon_type = addslashes($_POST['type']);
    Car je ne pense pas que tu puisses modifier des variables issues de formulaire...

  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
    je ne sais pas si c'est très stratégique d'écraser ta var POST['type'] avec addslashes, essaie en passant par une variable autre et affiche là avant l'insertion pour voir...

    EDIT : grilled au dessus
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  12. #12
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    En faisant ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      $type=$_POST['type'];
      $type = addslashes($_POST['type']);
    Ca ne marche pas! quand j'affiche type, j'ai par exemple : "enseigne l " au lieu de "enseigne l'Excédentaire"
    Apres l'insertion dans la base je met un jour un fichier texte qui est généré avec toute les données, ce fichier sert à mettre à jour un site fait en flash, et les apostrophe simple ou double ne les accepte pas!! ca me crée probleme!!

  13. #13
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $type=$_POST['type'];
      $type = addslashes($_POST['type']);
    n'a aucun intérêt

    Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $type = addslashes($_POST['type']);
    tout simplement.

    Sinon si addslashes ne fonctionne pas essaie cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /******************
       MY ADDDSLASHES 
    *******************/
    /** 
    * Ajoute un \ à un simple quote pour affichage javascript.
    * @param $var La variable qu'il faut analyser
    * @return $var La variable avec les quotes simples échappées si il y en avait
    */
    function my_addslashes($var)
    {
    	$tmp = str_replace("'","\'",$var);
    	$final = str_replace('"','\"',$tmp);
    	return $final;
    }
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  14. #14
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    En utilisant ta fonction, la variable final comprend juste la partie avant '

  15. #15
    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
    Je viens de tester à l'instant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function my_addslashes($var)
    {
    	$tmp = str_replace("'","\'",$var);
    	$final = str_replace('"','\"',$tmp);
    	return $final;
    }
     
    $test = "enseigne l'Excédentaire";
     
    echo my_addslashes($test);
    Echo bien enseigne l\'Excédentaire

    Donc tu dois avoir un souci ailleurs.....
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  16. #16
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Quel genre de souci, car j'ai beau à chercher je ne trouve pas!!

  17. #17
    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
    je ne sais pas montre nous le code complet de ta page ca nous aidera peut ê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. Supprimer lettre après des chiffres
    Par Alexcarlier dans le forum Excel
    Réponses: 2
    Dernier message: 25/03/2013, 21h35
  2. string functions(détecter lettres avec accents)
    Par patburn_911 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/02/2013, 11h22
  3. [Batch] Quelle lettre après Z ?
    Par NorocBzh dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 04/10/2012, 14h48
  4. Affichage console lettre après lettre
    Par Inaky dans le forum C++
    Réponses: 1
    Dernier message: 24/12/2011, 21h06
  5. Suppression des lettres après un espace
    Par Sanka76 dans le forum Administration
    Réponses: 3
    Dernier message: 02/02/2007, 17h17

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