Avatar billede hoejgaard Juniormester
26. maj 2008 - 01:20 Der er 10 kommentarer og
2 løsninger

$_GET[vis] med mellemrum

Hej
kan det passe at det giver problemer med $_GET[vis] hvis eks. :

vis='jeg er'

altså når der er mellemrum i det der skal overføres med $_GET ??
Avatar billede coderdk Praktikant
26. maj 2008 - 08:59 #1
Nææh, normalt laver browseren mellemrum om til %20 f.eks.
Avatar billede coderdk Praktikant
26. maj 2008 - 09:00 #2
Mellemrum bliver nu vist lavet om til +...
Du kan også selv gøre det, med $vis = urlencode( $vis );
http://dk2.php.net/urlencode
Avatar billede hoejgaard Juniormester
26. maj 2008 - 10:11 #3
Jeg har lavet sådan en her :
$output = str_replace(" ", " ", $_GET[vis]);

Og overfører så $output til mappe.php :

<tr><td align="left"><?php echo "<a href=\"mappe.php?vis=".$output."\">Mine</a>"; ?></td></tr>

og på mappe.php bliver $output ikke overført ordentligt (hvis der er mellemrum)

Der er ikke noget problem hvis jeg istedet bruger :
<tr><td align="left"><?php echo "<a href=\"mappe.php?vis=".$_GET[vis]."\">Mine</a>"; ?></td></tr>

Hvordan kan det være, erstatter jo " " med "&nbsp;"  ??
Avatar billede michael_stim Ekspert
26. maj 2008 - 10:13 #4
Prøv at sætte ' inde i din GET:
$_GET['vis']
Avatar billede coderdk Praktikant
26. maj 2008 - 10:14 #5
Prøv at bruge urlencode :P
Avatar billede hoejgaard Juniormester
26. maj 2008 - 10:46 #6
okay, men kunne godt tænke mig at vide hvorfor " " og "&nbsp;"
gør nogen forskel mht. overførslen ??
Avatar billede dkfire Nybegynder
26. maj 2008 - 12:07 #7
Det er der en meget simpel forklaring på.
I en URL betyder en & at der kommer yderligere en variabel.
I html kan en & betyde at der efterfølgende kommer en kode for et specialtegn.
Derfor skal du ikke konvertere mellemrum til &nbsp; for værdien til en variabel i en URL.
Når du så indsætter &nbsp; som værdi for 'vis' i din URL, så tror alle browsere at nbsp er en ny variabel og ikke en del af 'vis'.
Avatar billede hoejgaard Juniormester
26. maj 2008 - 12:24 #8
okay sådan hænger det sammen...Mange tak !
tror jeg brugte den $output = str_replace(" ", "&nbsp;", $_GET[vis]);
fordi det gav problemer med visning af en variabel i HTML, hvis variablen indeholdt blanktegn, og derfor ville jeg erstatte dem med &nbsp; ..
Nu prøver jeg bare at bruge $_GET[vis] som den er,istedet for $output ...
Avatar billede dkfire Nybegynder
26. maj 2008 - 12:36 #9
Du bør kører alt større data som du ønsker skal være en værdi til en variabelvi URL igennem urlencode().
Og når du så bruger værdien på en side, kan du kører den igennem urldecode().
Avatar billede hoejgaard Juniormester
27. maj 2008 - 00:15 #10
okay læg et svar coderdk og dkfire
Avatar billede coderdk Praktikant
27. maj 2008 - 00:44 #11
(c:
Avatar billede dkfire Nybegynder
27. maj 2008 - 08:35 #12
Svar :-)
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