Avatar billede comeback Nybegynder
02. september 2004 - 11:02 Der er 13 kommentarer og
2 løsninger

bøvl med gåseøjne i if-confirm sætning

Jeg har følgende:

_____________________

$overskrift = urldecode($myrow[1]); //den kommer fra en db der er urlencode()


<A href="prioriter.php?id=<?php echo $id.'&oversigtvalgt='.$tabel; ?>" onClick="if(confirm('Vil du forfremme dette indlæg til sidste nye nyhed: \n<?php echo $overskrift ;?> ?'))this.href='prioriter.php?id=<?php echo $id.'&oversigtvalgt='.$tabel; ?>'; else this.href='#'">Prioritér</A>
_____________________

Det virker ok lige indtil at at der ' eller " i $overskrift... Jeg har virkelig prøvet alt men den bliver ved med at fejle der:-(
Er der ikke nogen der har en god løsning på det problem?
(med udgangs punkt i ovenstående
Avatar billede dennismp Nybegynder
02. september 2004 - 11:10 #1
prøv at erstatte:
echo $overskrift
med
echo addslashes($overskrift)
Avatar billede comeback Nybegynder
02. september 2004 - 11:19 #2
same same... giver ingen forskel (ud over at den sætter \ foran
Har prøvet ;-)
Avatar billede dennismp Nybegynder
02. september 2004 - 11:22 #3
Hvad vis du urlencoder feltet? Giver det noget?

Hvordan vil du skrive

alert('noget med en ' i');

Skriver man ikke  (jeg kender ikke js ret godt)
alert('noget med en \' i'); ?
Avatar billede comeback Nybegynder
02. september 2004 - 11:28 #4
$ overskrift er allerede urlencoded og de b liver urldecoded inden det bliver echoet. Finten er vel at der i sætningen
onClick=-->"<--if(confirm(-->'<--Vil du forfremme dette indlæg til sidste nye nyhed: \n<?php echo $overskrift ;?> ?-->'<--))

Allerede er både ' og " præsenteret så når den kommer til endnu en " eller ' tror den at stengen slutter...
Avatar billede comeback Nybegynder
02. september 2004 - 11:29 #5
lidt kryptisk men forstår du?
Avatar billede roenving Novice
02. september 2004 - 11:48 #6
Prøv at erstatte indre 'er og ""er med hhv. \49 og \42, som er oktal-værdierne for tegnene og javascriptsk, for en event-handler er jo skrevet i javascript !-)
Avatar billede comeback Nybegynder
02. september 2004 - 11:51 #7
altså dem der er i $overskrift?
Avatar billede dennismp Nybegynder
02. september 2004 - 12:15 #8
ja, prøv

echo strtr($overskrift,array('\''=>'\\49','"'=>'\\42'));
Avatar billede comeback Nybegynder
02. september 2004 - 12:47 #9
jow det gik næsten...

Det lader til at den har styr " men ' bliver til "en firkan" og et 9 tal ???

Men ´mon ik at vi er rette spor? Den fejler ikke længere men skriver det heller ikke helt rigtigt
Avatar billede dennismp Nybegynder
02. september 2004 - 12:53 #10
heh, oktal har ikke 9 :-)

prøv med 47 istedet for 49 :)
Avatar billede comeback Nybegynder
02. september 2004 - 13:11 #11
he he Nej klart. Works like a charm!

roenving you've done it again - og tak for hurtig assistance!
dennismp gjorde det forståeligt for mig.
Kan i dele pointene?

jeg har lagt lidt ekstra i


SVARET:
<A href="prioriter.php?id=<?php echo $id.'&oversigtvalgt='.$tabel; ?>" onClick="if(confirm('Vil du forfremme dette indlæg til sidste nye nyhed: \n<?php echo strtr($overskrift,array('\''=>'\\47','"'=>'\\42')) ;?> ?'))this.href='prioriter.php?id=<?php echo $id.'&oversigtvalgt='.$tabel; ?>'; else this.href='#'">Prioritér</A>
Avatar billede dennismp Nybegynder
02. september 2004 - 15:58 #12
Herligt :)

(en eller anden dag, burde jeg se nærmere på javascript.. )
Avatar billede roenving Novice
02. september 2004 - 16:06 #13
Velbekomme '-)

-- tavetosser forkommer åbenbart regelmæssigt, godt dennis lige kunne gennemskue den !-)
Avatar billede comeback Nybegynder
02. september 2004 - 19:32 #14
;-)
Avatar billede roenving Novice
02. september 2004 - 22:21 #15
-- og tak for point ;~}
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