Avatar billede Slettet bruger
27. november 2003 - 20:38 Der er 12 kommentarer og
1 løsning

Problemer med at skrive på knap når jeg bruger & og andre

Hej!

Jeg skriver tekst på en knap vha.

<img src="skriv_knap.php?tekst=I trailere og både&farve=911F1C" alt="" border="0">

skriv_knap.php ser sådan her ud:

<?php
$tekst = $_REQUEST['tekst'];
$farve = $_REQUEST['farve'];
$r = hexdec(substr($farve, 0, 2));
$g = hexdec(substr($farve, 2, 2));
$b = hexdec(substr($farve, 4, 2));
$im = ImageCreateFromPng("knap.png");
$sort = ImageColorAllocate($im,$r,$g,$b);
ImageTTFText($im,15,0,0,17,$sort,"trebucbd.ttf",$tekst);
header("Content-type: image/png"); // image/png hvis det er et png-billede
ImagePNG($im); // eller ImagePNG hvis det er et PNG
ImageDestroy($im);
?>

Det fungerer sådan set meget godt, men begynder jeg at bruge & tegn i min sætning forsvinder det efter & tegnet. Logisk nok, da PHP tror at den næste variabel kommer.

Men hvordan løser jeg det?

urlencode() og htmlspecialchars() giver bare fejl.
Avatar billede wickedd Juniormester
27. november 2003 - 20:40 #1
$tekst = ereg_replace("&","&amp;",$tekst); måske
Avatar billede wickedd Juniormester
27. november 2003 - 20:41 #2
&amp; = & , bare i et tegn så alle browsere, programmer osv. forstår det uden at lave fejl
Avatar billede Slettet bruger
27. november 2003 - 21:03 #3
Nej det er ligegyldigt, det er i selve udførslen af scriptet den er gal. Strengen der overføres slutter lige efter & uanset om jeg bruger & eller &amp;
Avatar billede wickedd Juniormester
27. november 2003 - 21:31 #4
\&
prøv det
Avatar billede Slettet bruger
27. november 2003 - 21:34 #5
Nope...
Avatar billede wickedd Juniormester
27. november 2003 - 22:35 #6
Hvad bruger egentlig & til?
Avatar billede Slettet bruger
27. november 2003 - 23:01 #7
Du skal urlencode der hvor du laver img-taggen, ikke i skriv_knap.php.

Husk også, at du skal urlencode teksten for sig selv - ikke sammen med farven, for så bliver &-tegnet, der skal være der også encodet.

Et eksempel:

<img src="skriv_knap.php?tekst="<?php urlencode("I trailere og både"); ?>&farve=911F1C" alt="" border="0">
Avatar billede jakoba Nybegynder
27. november 2003 - 23:17 #8
wickedd  >>
  '?'  afslutter urlend adressedel og siger 'det herefter er parametre til den url'
  '&'  bruges til at adskille 2 eller flere parametre:
hver parameter angives med et parameternavn fulgt af '=' fulgt af en parameterværdi.

  href="enside.html?param1=forste&param2=anden&param3=tredie"
Avatar billede Slettet bruger
28. november 2003 - 09:10 #9
Som sagt har jeg prøvet med urlencode, og jeg ved godt at det skal bruges på den side jeg kalder skriv_knap.php med ;)

Men når man følgende kigger i kildekoden på siden forsvinder den tekst der urlencodes, og der er det her tilbage:

<img src="skriv_knap.php?tekst=&farve=911F1C" alt="" border="0">

Jeg har midlertidigt løst det ved at smide :and: ind og replace i skriv_knap.php men det holder ikke i længden.

Min PHP er sat op med magic_quotes og det kan jeg også se ved at jeg skal køre strip_slashes() på skriv_knap.php
Avatar billede Slettet bruger
28. november 2003 - 09:11 #10
ok, der manglede lige en echo i urlencode men det gør ingen forskel, teksten deles ved & uanset hvad.
Avatar billede Slettet bruger
02. december 2003 - 18:30 #11
øv...
Avatar billede wickedd Juniormester
02. december 2003 - 18:32 #12
jakoba -> Ved jeg, men ville lige se linket han bruger det i. Men ligemeget nu åbenbart
Avatar billede Slettet bruger
02. december 2003 - 18:40 #13
Nej det er ikke ligemeget, jeg gav kildekoden til alt det jeg har. I er velkomen til selv at teste og evt. komme med en løsning.

Jeg bruger & til at...øh...skrive & altså som i Bing & Grøndahl... bare med noget andet tekst.
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

IT-JOB