Avatar billede nemlig Professor
11. april 2016 - 22:54 Der er 2 kommentarer

Alert virker ikke når der er html-specialtegn

Hejsa.

Jf. nedenfor har jeg defineret et advarselsvindue, men "advarslen" kommer ikke, når jeg i advarselsteksten har htmlspecialchar().

Teksten "Specialtegn < - > - & - ' - " - Kalender..." er et udtræk fra MySQL, hvor teksten er gemt med PHP's htmlspecialchars()

Hvis der ikke er specialtegn i teksten, så virker advarselsvinduet:

HTML-koden, som den læses i browseren:

<span class='text41'><a href='ret_slet_post.php?xid=8ghGYzi0aiN7Uc06bqRy' OnClick="return window.confirm('Sikker på du vil fjerne denne aftale fra kalenderen?\nHvis du vil slette aftalen, skal du efterfølgende vælge menupunktet [Andet lejeaftaler]\nLejer = Specialtegn &lt; - &gt; - &amp; - &#039; - &quot; - Kalender...')"><img src='gfx/f.gif' border='0' alt='Fjern aftalen fra kalenderen'></a>
Avatar billede jakobdo Ekspert
11. april 2016 - 23:11 #1
Avatar billede nemlig Professor
13. april 2016 - 12:34 #2
Hmm... jeg fornemmer, at problemet er elementært og ligger i brugen af single quotes.

3 eksempler, der alle giver fejlen, hvor alert'en ikke virker:

OnClick="return window.confirm('Jeg bruger single quote: &#039;')"
OnClick="return window.confirm('Jeg bruger single quote: &apos;')"
OnClick="return window.confirm('Jeg bruger single quote: ' ')"

Hvis single quote escapes, fx. \&#039;, så virker det.

Jeg har brugt denne her:

str_replace('&#039;','\&#039;',$navn);


men der findes måske noget mere elegant/korrekt?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester