Problème avec le caractere '&' de php vers javascript

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec le caractere '&' de php vers javascript

Re: Problème avec le caractere '&' de php vers javascript

par devlop78 » 21 janv. 2011, 01:45

il faut urlencoder le &. urlencode('&').

De façon générale :

$monUrl = 'var=' . rawurlencode($var) . '&var2=' . rawurlencode($var2);
echo htmlspecialchars($monUrl);

Ce dernier (htmlspecialchars()) n'étant à mettre que dans le page HTML hors balise <script></script>.

Problème avec le caractere '&' de php vers javascript

par coolissimo » 20 janv. 2011, 14:31

Bonjour,

Je crée un bouton tweet pour mon site qui permet de tweeter chaque produits d'une liste (1 bouton par produit)
Un mélange de php et javascript. Je débute en code.

Le code fonctionne mais j'ai juste un soucis concernant l'url car celle ci contient plusieurs fois le symbole "&" et javascript la retranscrit alors coupée au premier "&" rencontré.

Voici le lien en php :

Code : Tout sélectionner

$product_link = 'index.php?page=shop.product_details&category_id=1&flypage=flypage.tpl&product_id='.$product_id.'&option=com_virtuemart&Itemid=29';
Et voici le genre de code javascript utilisé :

Code : Tout sélectionner

<a href="http://twitter.com/home?status=decouvrez%20ce%20-<?php print($product_name);?>-%20<?php echo $product_link ?>%20via %40blabla" target="_blank" title="blabla"><img src="http://www.blabla.fr/images/tweet_btn.gif" alt="blabla" title="blabla" border="0" width="52" height="21"></a>
En gros une fois cliqué sur le bouton tweet , voici ce qui apparait dans la boite twitter :

decouvrez ce -machin- index.php?page=shop.product_details via @blabla

Il me manque donc le reste de l'url : &category_id=1&flypage=flypage.tpl&product_id=9&option=com_virtuemart&Itemid=29

Comment puis je résoudre cela ??