[PHP/Javascript] functie parameter met HTML

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • klaaz
  • Registratie: April 2000
  • Laatst online: 18-09 22:37

klaaz

it's me!

Topicstarter
Ik wil een functie aanroepen warbij één van de gebruikte parameters in de functieaanroep HTML code bevat:


code:
1
onclick="flipper('".$rownotes["id"]."', '".$rownotes["onderwerp"]."','".$rownotes["tekst"]."')"

Zoals je ziet worden de parameters gevoed met resultaten uit mijn query in PHP. Dit werkt prima zolang er geen HTML code in de parameters staat. Parameter $rownotes["tekst"] bestaat in 9 van de tien gevallen echter uit een klein stukje HTML en dan werkt het niet.

Ik heb me suf gezocht maar niks gevonden over dit onderwerp, wellicht gebruik ik de verkeerde zoekwoorden. Toch moet dit simpel zijn. Toch?? ;)

[ Voor 12% gewijzigd door klaaz op 21-07-2006 10:56 ]


Acties:
  • 0 Henk 'm!

  • Priet
  • Registratie: Januari 2001
  • Laatst online: 19:26

Priet

To boldly do what no one has..

htmlspecialchars() gebruiken :?

[ Voor 58% gewijzigd door Priet op 21-07-2006 11:06 ]

"If you see a light at the end of a wormhole, it's probably a photon torpedo!"


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Bekijk de output van die regels eens.


En verder is dit een PHP probleem dus Programming

Acties:
  • 0 Henk 'm!

  • klaaz
  • Registratie: April 2000
  • Laatst online: 18-09 22:37

klaaz

it's me!

Topicstarter
OK! dank je wel! htmlspecialchars werkte overigens niet, de string werd nog steeds niet correct afgesloten. Ik heb echter de functie gebruikt die in het commentaar wordt genoemd:

code:
1
2
3
4
5
6
7
8
9
// Escapes strings to be included in javascript
function jsspecialchars($s) {
   return preg_replace('/([^ !#$%@()*+,-.\x30-\x5b\x5d-\x7e])/e',
       "'\\x'.(ord('\\1')<16? '0': '').dechex(ord('\\1'))",$s);
}



jsspecialchars($_GET['some_variable'])


die werkt perfect! Ik gebruik meestal een gedownloade lokale PHP helpfile, en dan heb je die commentaren er niet bij. Toch maar beter online zoeken dus.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

PHP:
1
$jshtml = addcslashes($html, "\0\n\r\t\\'/");

is doorgaans voldoende. Voor inline event-handlers moet je daar nog htmlspecialchars() overheen halen.
(note dat ik single quotes gebruik voor JS-strings)

[ Voor 14% gewijzigd door crisp op 21-07-2006 11:36 ]

Intentionally left blank