cyberappz
Messages postés13Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention19 juillet 2005
-
17 juil. 2005 à 20:43
cyberappz
Messages postés13Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention19 juillet 2005
-
19 juil. 2005 à 19:27
Bonjour,
j'ai un problème qui me fait tourner en rond depuis plusieurs jours.
J'ai un fichier qui écrit des instructions "str_replace" dans un autre fichier grâce à "fwrite"...
Mon problème se situe au niveau des guillemets qui se trouvent dans des
guillemets qui se trouvent dans des apostrophes etc. Et le problème se
situe plus précisément au niveau de ce que l'utilisateur entre comme
valeur parce que si les variables ne contenaient aucun caractère
spécial comme les guillemets ou autres, il n'y aurait aucun problème...
J'ai testé en mettant leur code html à la place mais en vain. Le gros
problème se situe dans les apostrophes de la fonction javascript popup,
il interprète le code comme la fin de sa variable. En clair:
popup('blablabla'blabla'); il croit que c'est 'blablabla' la
valeur fournie à la fonction...
Fichier qui écrit les requêtes "str_replace" (il écrit dans un fichier qui est include en fait):
.... (déclaration de la variable fp, etc. aucun prob jusque là) ... puis ...
<meta http-equiv= "Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">
fwrite($fp, "<? \$ var = str_replace("$var1", "\\"$var2\\" onclick= \\" popup('nom de fichier contenant des apostrophes');\\">$var1", \$var); ?>\n");
PS:
Non, ce n'est pas une erreur (au cas où), j'ai bien voulu ne pas
interpréter la variable "var" contrairement aux autres. Le but étant
d'écrire un code dans un fichier qui sera inclut dans un autre (grâce à
include).
Fichier de résultat:
<meta http-equiv ="Content-Type" content= "text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">
<? $var = str_replace("nom de fichier avec des ' ... (se trouvant dans var1 donc)", ""lien cliquable contenant aussi des apostrophes" onclick= " popup('nom de fichier avec des apostrophes aussi');">var1", $var); ?>
Donc, il me faut obtenir comme résultat le contenu du fichier de
résultat ci-dessus mais avec la gestion des ' ou encore des " (le
problème se pose tant au niveau des guillemets que des apostrophes)
dans les variables envoyées par l'utilisateur depuis mon formulaire...
Svp, aidez-moi, j'éspère que quelqu'un sera éclairer ma lanterne car
j'ai pas arrêté de chercher non-stop....en vain... Comment faire si
même les codes html ne marche pas Je dois sûrement m'y prendre mal...
Un TRES TRES grand merci à celui qui sera m'aider...
cyberappz
Messages postés13Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention19 juillet 2005 17 juil. 2005 à 21:18
Oua! Ca c'est de la réponse rapide ! Un grand merci de m'avoir répondu
tout d'abord. Malheureusement, "parse error, unexpected
T_CONSTANT_ENCAPSED_STRING" à cette ligne mais j'ai juste modifié un
truc qui a peut-être fait malgré que je ne pense pas (c'est ce qui est
en dessous mais avec ta version)...
En reprenant ma version, je te montre juste la différence qu'il me faudrait en plus.
Avant:
fwrite($fp, "<? $var = str_replace("$var1",
"
onclick=\\"popup('nom de fichier contenant
des apostrophes');\\"
>$var1", \$var); ?>\n");
Après:
$param
onclick\\"popup('nom de fichier contenant
des apostrophes');\\"
(je ne mets pas de guillemets supplémentaires ni ; lol c déjà assez
complexe comme ca c pour toi voir le principe que j'aimerais).
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 17 juil. 2005 à 21:21
Heu...
tu voudrais pas poster un exemple de ce que ça doit donner sans le code
php, en html, et ensuite mettre les variables qui seront modifiées,
etc... (le code php quoi)
cyberappz
Messages postés13Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention19 juillet 2005 17 juil. 2005 à 21:35
Ben le reste ca a pour la plupart rien à voir, c'est vraiment juste un
problème dans la syntaxe avec les guillemets c'est le seul truc quoi...
Le reste c'est juste quelques champs, un bouton submit, et à chaque
fois qu'il recoit les valeurs var1 etc. ben il l'écrit dans le
fichier...
Le but c'est d'écrire du code php dans un fichier (donc faut l'écrire
sans qu'il soit interprété) et transformer une phrase du genre "il fait
beau"
en lien cliquable (adresse du lien fourni par le formulaire) + le
paramètre onclick qui, au lieu, d'être mis dans la balise, est remplacé
par une variable (param)
et suffit de déclarer $param= "onclick=blabla"; dans un cas,
sinon variable vide (ce qui donne juste un a href sans onclick). C'est
assez simple en fait, d'ailleurs j'ai tout bon sauf dans la syntaxe, ce
qui fait que les variables ne peuvent PAS contenir de guillemets ou
apostrophes.
cyberappz
Messages postés13Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention19 juillet 2005 17 juil. 2005 à 22:08
Comment ca? Donc au lieu d'appeller tes variables tu appelles ta fonction ($variable); ?
Comment ferais-tu pour ceci qui est quand même assez complexe?
if(condition) {
$param =
onclick=\\"popup('nom de fichier contenant
des apostrophes');\\" (je ne remets pas de guillemets pour ne pas embrouiller plus la chose)
}
fwrite($fp, "<? $var = str_replace("$var1",
"$var1", \$var); ?>\n");
Comme ca, si la condition n'est pas remplie, la partie onclick n'est pas affichée.
Je
cherche à faire ca comme ca mais en version correct sans 1000
backslashes et avec des variables POUVANT contenir des ' ou des ".
cyberappz
Messages postés13Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention19 juillet 2005 17 juil. 2005 à 22:31
Je sais g bien précisé :
(je ne remets pas de guillemets pour ne pas embrouiller plus la chose)
Dans mon code, je les ai mis mais ici
j'ai voulu faire comprendre ce que je voulais faire sans justement
embrouiller le truc vu que le prob c'est les fameux " et '.
Tu n'as pas une idée alors?
ton :
fwrite($fp,'<?php $var str_replace( "'. $var1.'<gras>",""'.$var2.'" onclick</gras>"popup(\'nom de fichier contenant des apostrophes\');">'.$var1.'",'.$var.'); ?>'."\n");
semblait déjà beaucoup mieux...
Une autre idée? Ca doit bien être faisable quand même lol. Je galère depuis des jours et c'est pas la joie quoi pfff.
Au passage, les autres n'hésitez pas à donner vos idées au passage...
cyberappz
Messages postés13Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention19 juillet 2005 17 juil. 2005 à 22:38
Merci de vos réponses. Il est vrai qu'il faudrait décomposé pas con du tout.
Je vais faire plein de tests et je publie le résultat dès que j'y
arrive. Je reste sur le forum si une autre idée vous venait à l'esprit.
:D -[ Nicolas - http://redhatpower.free.fr ]- 8)
cyberappz
Messages postés13Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention19 juillet 2005 17 juil. 2005 à 22:50
D'oh ! Je réfléchis à ca... On ne peut pas décomposer...
Pcq si j'écris du str_replace dans du fwrite, c'est pcq mon but c'est d'écrire des commandes php dans un fichier...
donc je dois écrire la commande str_replace dans le fichier...
En tout résumé:
- j'ai un fichier "liste.php" contenant une liste de phrase
--------> Dans ce fichier, j'inclus un fichier qu'on appellera "remplacement.php" contenant les commandes str_replace.
Mon but, c'est, à travers un formulaire d'administration, pouvoir
écrire dans le fichier "remplacement.php" les règles de remplacement.
A chaque validation du formulaire, je désire qu'une seule ligne de remplacement soit écrit...
Ca écrit donc à chaque ligne: <? str_replace
("le_mot", "le_mot AVEC LIEN et (sous condition avec OnClick (condition
déjà faite))", $var); ?>
Donc la commande str_replace dans fwrite ne doit pas être interprété
(pour ca que je backslash les $) mais juste vu comme une simple phrase
écrite dans un fichier.
C'est liste.php qui se chargera de lire sa liste et de lire tout les str_replace qui se situent dans "remplacement.php".
J'éspère que j'ai pu mieux vous éclairer. Je me comprends mieux moi-même c'est pour dire lol.