Impossible d'ajouter des slashs [ - Job's Done - ]

Impossible d'ajouter des slashs [ - Job's Done - ] - PHP - Programmation

Marsh Posté le 03-09-2003 à 09:04:55    

voilà, j'ai un appel js dont les valeurs sont aléatoires... or, certaines peuvent prendre comme valeur : l'exemple [:toukc].
 
le pb vient du fait que dans ma fonction js, ça se présente comme suit :  
 

Code :
  1. $nfo[2]="l'exemple";
  2. echo "<a href=\"#\" onclick=\"really_del('".$nfo[2]."',".$m.",".$nfo[4].",'pub_banniere'); return false;\"></a>";


 
alors, j'ai essayé plusieurs choses comme :  

  • addslashes($nfo[2]) => marche pô [:tilleul].
  • htmlentities($nfo[2], ENT_QUOTES) => marche pô [:tilleul].
  • addslashes(addslashes($nfo[2])) => marche pô [:tilleul].


donc je patauge grave !!
si qq1 pouvait m'aider à y voir plus clair..
 
NOTA : magic_quotes_gpc On(Local Value) On(Master Value) [:xtc]


Message édité par xkamui le 03-09-2003 à 15:27:29
Reply

Marsh Posté le 03-09-2003 à 09:04:55   

Reply

Marsh Posté le 03-09-2003 à 09:41:01    

- le problème c'est quoi?
- l'interpréteur JS te dit quoi?
- really_del() fait quoi?
 
> On est bien d'accord que l'instruc PHP serait:
$nfo[2] = addslashes($nfo[2]); // et pas seult addslashes($nfo[2]);


Message édité par ACut le 03-09-2003 à 09:43:50

---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
Reply

Marsh Posté le 03-09-2003 à 09:59:13    

> le problème c'est quoi?
>> C'est que je ne peut pas lancer mon js sur un client dont le nom comprend des ', comme par exemple : l'horloger.
 
> l'interpréteur JS te dit quoi?
>> sous mozilla et netscape, le js console ne me dit rien, par contre sous ie j'ai ce message :

Code :
  1. Ligne : 439
  2. Car : 15
  3. Erreur : ')' attendu
  4. Code : 0
  5. url : http://www.marseillemalin.com/admi [...] ction=list


et voici la ligne 439 :

Code :
  1. <td class="td-ban-ls41"><a href="#" onclick="really_del('l'absainte',8,1061201073,'pub_encart'); return false;" title="Supprimmer :: l'absainte :: ??" class="l-lst-upd"><img src="img/8/del.png" alt="Supprimmer :: l'absainte :: ??" border="0" /></a></td>


 
> really_del() fait quoi?
>> il me redirige vers une page et me suprimes les éléments dans ma base de données en fonction des paramètres passés, et tout ça avec une alterte.
 
> On est bien d'accord que l'instruc PHP serait:
$nfo[2] = addslashes($nfo[2]); // et pas seult addslashes($nfo[2]);

>> admettons, mais ça ne change rien...

Reply

Marsh Posté le 03-09-2003 à 10:08:12    

OK.
 
As-tu réellement essayé:
$nfo[2] = addslashes(addslashes($nfo[2]));
?
 
(le JS c'est pas trop ma partie, mais je suppose que le car d'échappement est le même, non?)
 
Edit: Ou alors faut-il transformer les merdes en entités HTML:
$nfo[2] = htmlspecialchars($nfo[2]);


Message édité par ACut le 03-09-2003 à 10:13:21

---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
Reply

Marsh Posté le 03-09-2003 à 10:22:04    

problème réglé, je changeais pas le bon $nfo[2]
 
notons tout de même que addslashes($nfo[2]); marche très bien comme suit :  
echo "<span class=\"".addslashes($nfo[2])."\">";
sans faire un $nfo[2] = addslashes($nfo[2]) avant.
 
merci d'avoir été aussi attentif et patient.
@+

Reply

Marsh Posté le 03-09-2003 à 10:42:34    

xkamui a écrit :


...
notons tout de même que addslashes($nfo[2]); marche très bien comme suit :  
echo "<span class=\"".addslashes($nfo[2])."\">";
sans faire un $nfo[2] = addslashes($nfo[2]) avant.


Il allait sans dire que si tu manipules directement le retour de addslashes($toto) ça fonctionne. Reste que l'appel de addslashes($toto) ne modifie pas $toto. Comme ton code initial semblait manipuler $toto après l'opération, il était nécessaire dans ce contexte de réaffecter $toto ($toto = addslashes($toto);).


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed