Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2006, 14h59   #1
Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 214
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 214
Points : 62
Points : 62
Par défaut [Conception] Que fait ma fonction ?

bonjour, voila ma fonction :

Code :
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
Tr@nkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 15h21   #2
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
...
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 15h33   #3
Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 214
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 214
Points : 62
Points : 62
c'est quand meme simple non ? enfin clair !
Tr@nkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 15h50   #4
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 111
Points : 30
Points : 30
si tu veut que ca te retourne l\'essai essye de faire ca
Code :
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
tit_oune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 15h58   #5
Membre confirmé
 
Étudiant
Inscription : avril 2006
Messages : 237
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 237
Points : 299
Points : 299
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.
Tipoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 16h06   #6
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
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.
Citation:
<?php
if (!get_magic_quotes_gpc()) {
   
$lastname = addslashes($_POST['ta_variable']);
}
else {
   
$lastname = $_POST['ta_variable'];
}
?>
Dans ce code, ajoute des slashes si l'option magic_quotes_gpc est activé.
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 16h08   #7
Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 214
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 214
Points : 62
Points : 62
non ca ne fonctionne pas pour moi .. je recupere seulement station d\'
a la place de station d'epuration par exemple
Tr@nkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 16h24   #8
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
tu affiches cette valeur comment?
tu fais juste un echo ou bien elle est dans une balise avec l'attribut value?
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 09h03   #9
Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 214
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 214
Points : 62
Points : 62
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 :
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 ...
Tr@nkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 13h39   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 13h45   #11
Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 214
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 214
Points : 62
Points : 62
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 !
Tr@nkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 15h42   #12
Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 214
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 214
Points : 62
Points : 62
Code :
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 ?
Tr@nkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 16h43   #13
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
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>";
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 13h41   #14
Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 214
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 214
Points : 62
Points : 62
merci, ca marche avec les guillemets. Mais encore une question :

je fais
Code :
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 !
Tr@nkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 14h04   #15
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
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
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 15h03   #16
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
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/
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h46.


 
 
 
 
Partenaires

Hébergement Web