[DEFI] Ahah ! Aux armes chevaliers du PHP !
Résolu
Fricky42
Messages postés
489
Date d'inscription
Statut
Membre
Dernière intervention
-
pyschopathe Messages postés 2053 Statut Membre -
pyschopathe Messages postés 2053 Statut Membre -
Bien le bonjour preux et inconscients chevaliers ! Voici un defi qui fera trembler plus d'un !
Euuuh bon, c'est un truc sur lequel je bloque mais je cojite dessus depuis 45mn, j'en suis a mon 4e cafe depuis, et c'est pas simple =D.
Voici la consigne !
J'ai une variable stocké dans ma base MySQL.
nom de la variable : city
contenu de la variable : ceci'est une'phrase complete
Voici le bout de code qui nous interesse :
Voici donc un code PHP intégré a du JS.
voici ce qui nous interesse plus particulierement, ligne 5 :
Le probleme etant le suivant :
si j'entoure la variable de ' (quotes), ce qui donnerai : value=' " .$data2['city']. " '
>> Et bien il ne m'affichera seulement ceci
Si je n'entoure pas la variable de quotes : value=" .$data2['city']. "
>> Il ne m'affiche seulement ceci'est
C'est normal dans la mesure ou le parametre Value doit etre guidé pour savoir ce qu'il doit prendre en compte. Si j'entoure de quotes, il s'arretera a la prochaine quote, et si je l'entoure pas, il s'arretera au prochain espace.
OBJECTIF : Pouvoir afficher dans la liste deroulante la variable complete ceci'est une'phrase complete !!
Voila, a vous de jouer !
Le premier prix : Un gros bisou virtuel de ma part =p.
Merci beaucoup de votre attention !
--
Le "lol" est aux boulets ce que le ";" est aux programmeurs
b2eda605511811988d04704ed7e809a4
Euuuh bon, c'est un truc sur lequel je bloque mais je cojite dessus depuis 45mn, j'en suis a mon 4e cafe depuis, et c'est pas simple =D.
Voici la consigne !
J'ai une variable stocké dans ma base MySQL.
nom de la variable : city
contenu de la variable : ceci'est une'phrase complete
Voici le bout de code qui nous interesse :
document.getElementById(id).innerHTML = " <?php $recup_data2 = mysql_query("SELECT * FROM membres WHERE name='Fricky'");
$data2 = mysql_fetch_array($recup_data2);
echo "<input type='hidden' name='flag' value='infos'>";
echo "<table>";
echo "<tr><td>Ma ville : </td><td><input type=text name=city value=" .$data2['city']. "></td></tr>";
echo "</table><br>";
echo "<input type='submit' value='Valider'>"
?>";
Voici donc un code PHP intégré a du JS.
voici ce qui nous interesse plus particulierement, ligne 5 :
<input type=text name=city value=" .$temp. ">
Le probleme etant le suivant :
si j'entoure la variable de ' (quotes), ce qui donnerai : value=' " .$data2['city']. " '
>> Et bien il ne m'affichera seulement ceci
Si je n'entoure pas la variable de quotes : value=" .$data2['city']. "
>> Il ne m'affiche seulement ceci'est
C'est normal dans la mesure ou le parametre Value doit etre guidé pour savoir ce qu'il doit prendre en compte. Si j'entoure de quotes, il s'arretera a la prochaine quote, et si je l'entoure pas, il s'arretera au prochain espace.
OBJECTIF : Pouvoir afficher dans la liste deroulante la variable complete ceci'est une'phrase complete !!
Voila, a vous de jouer !
Le premier prix : Un gros bisou virtuel de ma part =p.
Merci beaucoup de votre attention !
--
Le "lol" est aux boulets ce que le ";" est aux programmeurs
b2eda605511811988d04704ed7e809a4
Configuration: Windows XP Firefox 3.0.3
2 réponses
-
Et si tu faisais une fonction qui convertit ta phrase en ceci'est_une'phrase_complete avant de la stocker dans ta base et qu'au moment de l'affichage tu utilisais une fonction inverse ? De la même manière, au lieu de modifier les espaces, tu pourrais modifier les apostrophes... Tu peux peut-être même les changer en entités html...
-
-
J'y ai pensé en effet.
Cependant si un mec ecrit Voici_une phrase_bien_vicieuse.
en passant par les 2 fonctions dont tu parles, j'ai a la fin :
Voici une phrase bien vicieuse. Je ne pourrais jamais avoir d'underscore a la sortie...
En gardant ta technique je pourrais remplacer les espaces par une chaine inspiré d'IKEA(=p) style : @%__SC0RE.
Je doute qu'un mec s'amuse a rentrer cette chaine dans la variable.
Cependant la technique est lourde et assez moche pour quelque chose que j'aimerais utiliser tres souvent.
Je prefererai que la solution soit lié aux quotes et doubles quotes du code cité. M'enfin je garde tout de meme cette idee en dernier recours. -
-
Bonjour,
Est-tu vraiment sur que sur ta base de données, la chaine y est insérée correctement ?
As tu pensé à l'utilisation de fonctions PHP tel que addslashes ?
https://www.php.net/manual/fr/function.addslashes.php
Voir aussi * stripcslashes() * stripslashes() * addcslashes() * htmlspecialchars() * quotemeta() * get_magic_quotes_gpc()
-
-
-
Oulala si je change la variable city en inserant des "(doublequotes) c'est encore pire (bah ui la chaine echo "" est coupée en plein milieu !)
Donc a mon avis, finalement, la solution ne se trouverait pas dans l'utilisation des quotes et doubles quotes dans le code, mais leurs inhibitions dans la variable.
Je test des trucs selon cette idee. Et je vous tient au courant.