Avatar billede tingholm Mester
30. december 2009 - 16:11 Der er 8 kommentarer og
1 løsning

Mod rewrite og '&'

Hej Eksperter

Min mob rewrite:
RewriteRule ^([0-9]+)/(.*)$ static/vis.php?id=$1&name=$2

Virker egentlig fint, men nogle gange har jeg brug for at have et & tegn med i navnet. eks:
www.domæne.dk/123/sjov&ballade
eller
www.domæne.dk/123/sjov&ballade

når jeg udskriver $name viser den kun "sjov" altså & tegnet og alt derefter smides væk...

Nogle forslag??
Avatar billede wanze Nybegynder
30. december 2009 - 17:59 #1
Prøv med:
RewriteRule ^([0-9]+)/(.*)$ static/vis.php?id=$1&name=$2&%{REQUEST_URI
Avatar billede tingholm Mester
30. december 2009 - 20:01 #2
Jeg tester lige i morgen... men er du sikker på der ikke mangler noget i den linie??
Avatar billede wanze Nybegynder
30. december 2009 - 20:16 #3
Min fejl, der mangle et }.
RewriteRule ^([0-9]+)/(.*)$ static/vis.php?id=$1&name=$2&%{REQUEST_URI}
Avatar billede tingholm Mester
31. december 2009 - 09:10 #4
Det virker ikke :(

Jeg forstår heller ikke lige hvorfor det skulle virke... giver det ikke en forespørgsel i stil med:
www.domæne.dk/static/vis.php?id=123&name=sjov&ballade&123/sjov&ballade

Hvis du gerne vil se det i aktion kan du se på:
http://www.menuen.dk/247/Engelhardts%20Caf%C3%A9%20&%20Restaurant

Jeg har sat den til at udskrive name variablen øverst på siden... Siden er i drift, så jeg vil helst ikke have den ned ret lang tid af gangen...
Avatar billede wanze Nybegynder
31. december 2009 - 15:09 #5
Ah ok, nu er jeg med. Jeg misforstod dig. Ligesom når du skriver 20% for mellemrum, så skal du for at lave & skrive %26.
Avatar billede tingholm Mester
01. januar 2010 - 20:13 #6
Nu ved jeg ikke hvor meget du er inde i php, men det rigtigste ville vel være at køre strengen igennem en urlencode() før jeg bruger den som parameter?

Men det ligger min side helt ned den lader til at encode specialtegn (é, â, ï...) til noget som serveren slet ikke forstår...

Ved du om der findes en bedre encoder til at lave links der senere bliver lavet om af mod rewrite?
Avatar billede wanze Nybegynder
02. januar 2010 - 04:27 #7
Encode specialtegn til noget som serveren ikke forstår? Hvad mener du? Nej, selvfølgelig læser den ikke de url-enkodede tegn som de oprindelig tegn, men så må du jo bare bruge urldecode() på strengen før den bliver bearbejdet.
Avatar billede tingholm Mester
02. januar 2010 - 12:02 #8
på siden bruger jeg kun sidens navn til at generer title...
prøv at kigge på titlen på disse links:
http://menuen.dk/538/sjov%26ballade
http://www.menuen.dk/303/Le+Casse-Cro%FBte

Det er alm encodede() navne, men hvis jeg escaper % tegnet bag efter, så bliver de til:
http://menuen.dk/538/sjov%2526ballade
http://www.menuen.dk/303/Le+Casse-Cro%25FBte

og så virker alt som det skal. Selvfølgelig skal jeg i min kode urldecode() før jeg kan bruge stregene til noget...

Synes bare det virker mærkeligt at jeg er nød til at escape spacialtegn to gange...
Avatar billede tingholm Mester
24. juni 2010 - 11:02 #9
tror ikke vi kommer længere her.
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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