[DEFI] Ahah ! Aux armes chevaliers du PHP !
Résolu
Fricky42
Messages postés
466
Date d'inscription
Statut
Membre
Dernière intervention
-
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
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 !
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:
- [DEFI] Ahah ! Aux armes chevaliers du PHP !
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Alert php ✓ - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
- Les chevaliers du zodiaque tous les épisodes youtube ✓ - Forum Cinéma / Télé
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...
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.
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.
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.
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.
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
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).