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

PHP & Base de données Discussion :

[Conception] Que fait ma fonction ?


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut [Conception] Que fait ma fonction ?
    bonjour, voila ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (!get_magic_quotes_gpc()) 
         {   
           $valeur = stripslashes($valeur);
           $valeur = addslashes($valeur);
         }
    dans mon idée je voudrais que si $valeur est de la forme l'essai c'est a dire avec une quote, qu'un \ soit ajouté automatiquement pour l'inhiber.
    Et que si $valeur est de la forme l\'essai ca enleve dans un premier temps le slash avant d'en rajouter un de facon toujours obtenir une fois la fonction passé un $valeur de la forme l\'essai pour pouvoir executer correctement ma requete SQL par la suite.
    Mais visiblement ce n'est pas la bonne facon de proceder vu que j'obtien l' comme $valeur apres le passage dans ma fonction

  2. #2
    Invité
    Invité(e)
    Par défaut
    ...

  3. #3
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut
    c'est quand meme simple non ? enfin clair !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    si tu veut que ca te retourne l\'essai essye de faire ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $valeur = "l'essai";
    if(ereg("'",$valeur)>0){
     $valeur = ereg_replace("'", "<a href="file://\\&#39;" target="_blank">\\'</a>", $valeur);
    }
    j'ai testé ca marche chez moi

  5. #5
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Par défaut
    magic_quotes_gpc() n'est appliqué que lors de passge de paramétre par Get/Post/Cookie

    Si valeur est de la forme "l'\essai" avec l'option magic_quotes d'activée on obtiendra "l\\\'essai".

    Tu doit donc remplacer tous les '\' par rien.

  6. #6
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    get_magic_quotes_gpc => Retourne la configuration actuelle de l'option magic_quotes_gpc

    Utilise get_magic_quotes_gpc dès la réception des variables de ton formulaire.
    <?php
    if (!get_magic_quotes_gpc()) {
    &#160;&#160;&#160;
    $lastname = addslashes($_POST&#91;'ta_variable']);
    }
    else {
    &#160;&#160;&#160;
    $lastname = $_POST&#91;'ta_variable'];
    }
    ?>
    Dans ce code, ajoute des slashes si l'option magic_quotes_gpc est activé.

  7. #7
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut
    non ca ne fonctionne pas pour moi .. je recupere seulement station d\'
    a la place de station d'epuration par exemple

  8. #8
    Invité
    Invité(e)
    Par défaut
    tu affiches cette valeur comment?
    tu fais juste un echo ou bien elle est dans une balise avec l'attribut value?

  9. #9
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut
    je le vois car je fais un echo de ma requete a la fin de sa creation.
    Et je viens de me rendre compte que lorsque je fais un print_R de mon post je n'envoi pas non plus en entier .. donc le probleme se situe plus haut ... donc ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     if (eregi('^(enum)\((.+)\)$', $tab[$i][1], $tmp)) 
         {
          $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
          $valeurs[$tab[$i][1]]=explode(",",$tmp[2]);
     
           echo "<p><label>".$tab[$i][0]." : </label>";
           echo "<select name='".$tab[$i][0]."' onfocus=\"this.className='focus';\" 
    onblur=\"this.className='normal';\">";
           foreach($valeurs[$tab[$i][1]] as $j => $valeur) 
           { 
            $valeurs[$tab[$i][1]][$j]=substr($valeur,1,strlen($valeur)-2); 
            echo "<option value='".$valeurs[$tab[$i][1]][$j]."'>";
            echo $valeurs[$tab[$i][1]][$j]."</option>";
     
           }
           echo "</select>";
          }
    or dans mon select, l'info affichée est de la forme station d\'epuration donc non tronquée .. mais quand je l'envoie elle le devient ...

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    La solution recommandée par Yobs est pourtant celle qui fonctionne chez tout le monde.

    Je te conseille de faire un petit script simple afin de tester tout cela sans interférences. Prends le code de Yobs, définis une variable avant et teste en affichant le tout.

  11. #11
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut
    Ce que je trouve bizard c'est que dans le select, j'ai la valeur entiere, et dans le post la valeur devient tronquée !

  12. #12
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo "<option value='".$valeurs[$tab[$i][1]][$j]."'>";
    echo $valeurs[$tab[$i][1]][$j]."</option>";
    Les deux $valeur sont identique or celui qui fait afficher me montre le nom en entier, donc celui utilisé pour le nom de l'option devrait etre identique non ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    ton value est entre apostrophes et dans la valeur que tu veux afficher il y a un apostrophe par consequent ton option va afficher tout ce qui se trouve avant l'apostrophe puis terminera .
    exemple de ce que je dis

    $test = "vive l'été";
    echo $test; // affichera vive l'été

    echo "<option value='".$test."' >".$test."</option>";
    //value aura la valeur <option value='vive l'été'>vive l'été'</option>
    //donc ton post recevra la valeur -- vive l' --

    >>essai avec des guillemet
    echo "<option value=\"".$test."\" >".$test."</option>";

  14. #14
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut
    merci, ca marche avec les guillemets. Mais encore une question :

    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!get_magic_quotes_gpc()) 
    {   
           $valeur = addslashes($valeur);
    }
    et avec cette variable dans POST : "Plan d\'eau"
    apres je recupere : 'Plan d\\\'eau'

    Donc il y a toujours un soucis !


    C'est reglé en faisant un stripslashes dans l option du select comme ca il passe un truc sans / donc pas de probleme. Voila merci a tous pour votre aide !

  15. #15
    Invité
    Invité(e)
    Par défaut
    tu fais un stripslashes

    >>essai avec des guillemet
    echo "<option value=\"".stripslashes($test)."\" >".$test."</option>";

    si le pb est régle noublies pas le résolu

  16. #16
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    Pour un code plus lisible je te conseille d'écrire:
    echo '<option value="'.$test.'" >'.$test.'</option>'."\n";

    Aussi je te donne ce lien vers un tutoriel sur les simples ou double quotes:
    http://pbnaigeon.developpez.com/tuto...phe-guillemet/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Que fait cette fonction ?
    Par Invité(e) dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/05/2008, 20h40
  2. que fait cette fonction ?
    Par nitteo dans le forum C#
    Réponses: 21
    Dernier message: 31/01/2008, 17h30
  3. Que fait cette fonction ?
    Par masterix59 dans le forum Débuter
    Réponses: 2
    Dernier message: 16/11/2007, 21h13
  4. Que fait la fonction htmlentities ?
    Par Ravaka dans le forum Langage
    Réponses: 16
    Dernier message: 10/04/2007, 17h56
  5. que fait cette fonction ?
    Par salseropom dans le forum C
    Réponses: 21
    Dernier message: 12/10/2006, 18h33

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