[php] escape ' -> \' toch?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik snap niet waarom ik een ' niet kan escapen met \'

ik wil namelijk bij mijn agendapuntjes wat extra info kwijt kunnen als volgt:

code:
1
2
3
4
<? PHP
$agendamoreinfo = "vertrek s'avonds";
echo "<a title='".$agendamoreinfo."'>agendapuntje</a>";
?>

hier krijg je dus als titel : vertrek s

dit moet je toch kunnen escapen door addslashes te gebruiken?

dan wordt de titel: vertrek s\

.. niet goed dus

[ Voor 26% gewijzigd door Verwijderd op 04-02-2004 18:04 ]


Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 18-09 21:53

Tux

Je hebt er dus last van dat die slash blijft staan? Dan moet je stripslashes() gebruiken :)

En het is 's avonds ;)

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
euuhh.. haha.. ja oke.. 's avonds werkt ook niet :P

en als je vervolgens stripslashes gebruikt. ben je terug bij af toch :?

[ Voor 6% gewijzigd door Verwijderd op 04-02-2004 17:45 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Wat staat er in de sourcecode dan? Dit zou wel moeten werken :)

Misschien handig: http://www.spider007.net/standaloneTools/escaping.php

[ Voor 38% gewijzigd door Spider.007 op 04-02-2004 17:46 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • frankivo
  • Registratie: Januari 2002
  • Laatst online: 02-06 13:53
volgens mij moet je het gewoon handmatig doen
anders klopt simpelweg je syntaxis niet :O

iRacing Profiel


Acties:
  • 0 Henk 'm!

Verwijderd

als je met escape werkt moet het natuurlijk wel zo
echo "<a title='vertrek \'s avonds'>...";

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dit staat er nu in de source:

<a title='Vertrek 's avonds'>

dan doe ik addslashes als volgt:
code:
1
2
      $agendamoreinfo = $rowagenda['MOREINFO'];
      $agendamoreinfo = addslashes($agendamoreinfo);

en dan krijg je dus dit..

<a title='Vertrek \'s avonds'>

waar moet ik dan weer die stripslashes doen?

want nu krijg ik als titel: Vertrek \

[ Voor 29% gewijzigd door Verwijderd op 04-02-2004 17:51 ]


Acties:
  • 0 Henk 'm!

  • Xtinct
  • Registratie: November 2002
  • Laatst online: 16-03-2018
Wat is er mis met &rsquo; ???
Makkelijkste manier om je ' op te lossen.

dus dan krijg je:
$agendamoreinfo = "vertrek &rsquo;s avonds";

output is dan:
vertek ’s avonds

[ Voor 46% gewijzigd door Xtinct op 04-02-2004 17:55 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oke.. ’ werkt..

alleen wordt het een pagina voor leken dus ik zal dit wel achter de schermen moeten fixen..

alleen.. weet niet echt met welke functie dit moet

edit.. zelfs hier werkt het :)..

[ Voor 12% gewijzigd door Verwijderd op 04-02-2004 18:03 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Probeer eens title tussen dubbele quotes te zetten ipv enkele.

[ Voor 190% gewijzigd door Verwijderd op 04-02-2004 17:59 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

gebruik ander urlencode :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
tja.. tussen dubbele quotes.. het is wel html geecho't (als je dat zo mag noemen tenminste :)) in php. dus dat gaat niet op, of kun je dat ook weer escapen?

ps.. urlencode maakt er vertrek+%92s%+avonds van.. is ook niet de bedoeling

[ Voor 22% gewijzigd door Verwijderd op 04-02-2004 18:02 ]


Acties:
  • 0 Henk 'm!

  • R4NCOR
  • Registratie: December 2000
  • Laatst online: 16-09 12:26

R4NCOR

eigenlijk gewoon Niels

Verwijderd schreef op 04 februari 2004 @ 18:01:
tja.. tussen dubbele quotes.. het is wel html geecho't (als je dat zo mag noemen tenminste :)) in php. dus dat gaat niet op, of kun je dat ook weer escapen?

ps.. urlencode maakt er vertrek+%92s%+avonds van.. is ook niet de bedoeling
die kun je ook escapen inderdaad.

Volgens mij ligt daar inderdaad de fout, eerste wat me te binnen schoot toen ik topicstart las... :) succes

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jo dat werkt.. heb er nu dit van gemaakt

code:
1
echo "<a title=\"".$agendamoreinfo."\">".$agendaevent."<a/>"


probleem opgelost.. (uiteraard wel addslashes van tevoren uitgevoerd!)

Acties:
  • 0 Henk 'm!

  • R4NCOR
  • Registratie: December 2000
  • Laatst online: 16-09 12:26

R4NCOR

eigenlijk gewoon Niels

Verwijderd schreef op 04 februari 2004 @ 18:06:
jo dat werkt.. heb er nu dit van gemaakt

code:
1
echo "<a title=\"".$agendamoreinfo."\">".$agendaevent."<a/>"


probleem opgelost.. (uiteraard wel addslashes van tevoren uitgevoerd!)
Sterker nog, ik denk dat de addslashes hier overbodig is :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
yep.. had ik helemaal niet aan gedacht maar is nu niet meer nodig nee.

zijn er nog meer tekens die ellende kunnen veroorzaken? anders laat ik addslashes gewoon staan.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:52

crisp

Devver

Pixelated

Verwijderd schreef op 04 februari 2004 @ 18:10:
yep.. had ik helemaal niet aan gedacht maar is nu niet meer nodig nee.

zijn er nog meer tekens die ellende kunnen veroorzaken? anders laat ik addslashes gewoon staan.
ja, dubbele quotes in je title ;)

Dit is naar mijn mening de beste methode:

PHP:
1
echo '<span title="' . htmlspecialchars($agendamoreinfo) . '">' . htmlspecialchars($agendaevent) . '</span>';

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
PHP:
1
htmlspecialchars($string,ENT_QUOTES);

moet ook werken. Dan escape je ' wel.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Nee, dan escape je hem niet, dan vervang je hem door een htmlentity.
Is toch wel iets significant anders :)

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
ACM schreef op 05 februari 2004 @ 13:47:
Nee, dan escape je hem niet, dan vervang je hem door een htmlentity.
Is toch wel iets significant anders :)
Ja, mar dat mag toch in een attribuut van een tag? Dat was het doel van de TS.

Acties:
  • 0 Henk 'm!

  • WildernessChild
  • Registratie: Februari 2002
  • Niet online

WildernessChild

Voor al uw hersenspinsels

W3C zegt:
By default, SGML requires that all attribute values be delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39). Single quote marks can be included within the attribute value when the value is delimited by double quote marks, and vice versa. Authors may also use numeric character references to represent double quotes (") and single quotes ('). For double quotes authors can also use the character entity reference ".
Dus als je dubbele quotes op je title-attribuut gebruikt en op je strings htmlspecialchars() loslaat (zonder tweede argument, want enkele quotes hoeven niet te worden vervangen) dan kan er (in principe) niets meer mis gaan :)

Maker van Taekwindow; verplaats en resize je vensters met de Alt-toets!

Pagina: 1