[DEFI] Ahah ! Aux armes chevaliers du PHP !

Résolu/Fermé
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 - 29 oct. 2008 à 14:48
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 30 oct. 2008 à 00:48
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 :

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 !
A voir également:

2 réponses

pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
29 oct. 2008 à 14:54
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...
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
29 oct. 2008 à 14:55
Mais tu es sûr qu'il s'arrête au premier espace ?
0
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 182
29 oct. 2008 à 14:59
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.
0
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 182 > pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010
29 oct. 2008 à 15:01
Oui il s'arrete au premier espace.

De facon general si tu as <input type=submit value=coucou comment ca va>
il t'affiche un bouton avec ecrit coucou dessus. Ne pas entouré les contenus des parametres dans les balises c'est pas le top.
0
_will Messages postés 133 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 3 décembre 2008 17 > Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012
29 oct. 2008 à 15:02
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()


0
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 182 > _will Messages postés 133 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 3 décembre 2008
29 oct. 2008 à 15:05
Oui, dans la db la variable est bien celle attendu.

L'utilisation de addslashes et stripslashes j'ai testé oui, mais cela revient exactement au meme. De plus selon certaines sources sur le net, c'est moins secure que mysql_real_escape_string() (ce que j'utilise).

0
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 182
29 oct. 2008 à 15:08
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.
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
29 oct. 2008 à 15:16
Sinon, à la place d'un input txt, tu peux mettre un input textarea...
0
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 182 > pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010
29 oct. 2008 à 15:22
Ouarf En effet... C'est con mais fallait y penser, et vu que la valeur est entouré de balise, osef des quotes et dblquotes, espaces et tout le tralala.

C'est cool je te remercie. Tiens, SMAAAACK.

Bonne aprem !
=).
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135 > Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012
30 oct. 2008 à 00:48
Chouette, content d'avoir eu cette idée, j'ai droit à un bisou virtuel bien baveux ^^ !
0