Avatar billede kongknabe Nybegynder
10. august 2007 - 13:08 Der er 25 kommentarer

Fin URL/Location

Hejsa. Er lidt nybegynder til PHP og sider og roder med en side hvor jeg har brug for at ændre den URL der bliver sendt til serveren med PHP.

Jeg har f.eks. har en URL som følger, http://www.minside.dk/index.php#?page_id=side2 som jeg sender til serveren. Det jeg gerne vil er identificere om der er et "#" efter "index.php", og hvis der er så hive "side2" ud og smide det i en variabel. - Kan det lade sig gøre på en måde?

Håber min forklaring giver mening :-)

(Sidder og leger med at prøve at lave support for bookmarking på AJAX dreven side)
Avatar billede kongknabe Nybegynder
10. august 2007 - 13:09 #1
Argh.. Tastefejl i overskriften.. der skulle selvfølgelig stå "find" :-(
Avatar billede kongknabe Nybegynder
10. august 2007 - 14:01 #2
Hmm.. Det vil egentlig også være fint hvis den bare kan fjerne "#" i URlen så siden http://www.minside.dk/indez.php?page_id=side2 bliver loadet.

Så altså, et script til at fjerne evt. "#" i URLen. :-)
Avatar billede jakobdo Ekspert
10. august 2007 - 14:32 #3
Kunne du ikke bruge:

$_GET['page_id'] som variabel?
Avatar billede kongknabe Nybegynder
10. august 2007 - 14:38 #4
Virker tilsyneladende ikke når der er et "#" tegn  URLen.
Avatar billede jakobdo Ekspert
10. august 2007 - 14:45 #5
Ja det kan jeg da godt se.
Hvorfor er det at # skal være der?
Avatar billede kongknabe Nybegynder
10. august 2007 - 14:58 #6
For at jeg tilføje forskellige page_ids på links uden at siden refresher (Til reference ved bookmarking)
Avatar billede jakobdo Ekspert
10. august 2007 - 15:04 #7
Burde den ikke komme sådan her:
http://www.minside.dk/indez.php?page_id=side2#top
Avatar billede kongknabe Nybegynder
10. august 2007 - 15:16 #8
Det kommer vel egentlig lidt ud på et.. Jeg mangler stadig at fjerne "#" fra URLen :-)
Avatar billede jakobdo Ekspert
10. august 2007 - 15:20 #9
Det gør det jo så tydeligvis ikke! :o)
Avatar billede jakobdo Ekspert
10. august 2007 - 15:21 #10
Du kan fjerne # med:
$new_url = str_replace('#','',$url);
Avatar billede kongknabe Nybegynder
10. august 2007 - 15:28 #11
"Det gør det jo så tydeligvis ikke!"

Så må jeg have misforstået dig :-)

Prøver lige din løsning neden under.. mange tak! :-)
Avatar billede kongknabe Nybegynder
10. august 2007 - 15:35 #12
er $url automatisk lig med den URL man er kommet ind på siden med, eller skal jeg først hive den ud ala:

$url =  $_SERVER['REQUEST_URI'];
Avatar billede kongknabe Nybegynder
10. august 2007 - 18:56 #13
Ok, jeg er kommet så langt: (Med hjælp fra en fyr på en anden side)

<?php
function fjern_dimsen ($addr, $tegn = '#')
{
return str_replace ($tegn, '', $addr);
}
$url = $_SERVER ['REQUEST_URI'];
$url = fjern_dimsen ($url);
// Nu skulle $url meget gerne indeholde den forespurgte uri UDEN den grimme havelåge
?>

Problemet er nu at $_SERVER ['REQUEST_URI']; stopper med at læse URLen når den når til "#" - den læser altså ikke det der kommer efter hash tegnet! - Har googlet lidt og kan se andre har haft samme problem, men har ikke kunnet finde en løsning på det endnu. - Måske en herinde kan !? :-)
Avatar billede erikjacobsen Ekspert
10. august 2007 - 19:01 #14
Browseren sender ikke det, der står efter #-tegnet til serveren.
Avatar billede jakobdo Ekspert
10. august 2007 - 19:08 #15
Dine links er forkerte.
Prøv at se siden her: http://www.codebreaker.dk/exp/791107exp.php
Avatar billede kongknabe Nybegynder
10. august 2007 - 19:20 #16
ja, ved godt at ideen med # er lavet til at springe rundt på den samme side fra <a href"#23">Paragraf23</a> til <a name=23"></a> - Men det er noget helt andet.. Det er ikke det jeg vil. Jeg vil bare udnytte det faktum at du  kan tilføje #whatever til din URL uden at siden reloader (Og så loade mit content med AJAX :-) Men har man ikke ikke slået javascript til, eller er man en søgerobot har jeg brug for at "#" bliver fjernet så siden stadig fungere :-)
Avatar billede erikjacobsen Ekspert
10. august 2007 - 19:24 #17
Jeg forstår ikke hvad du vil - søgemaskiner kan sagtens klare links med #, og browsere med javascript slået fra elsker dem også.
Avatar billede kongknabe Nybegynder
10. august 2007 - 19:26 #18
"Browseren sender ikke det, der står efter #-tegnet til serveren."

Er du helt sikker på det?? Damn... Æv.. :-( Så kan det slet ikke lade sig gøre det jeg vil.
Avatar billede kongknabe Nybegynder
10. august 2007 - 19:30 #19
Nå, men takker for hjælpen.. Så må jeg se om jeg kan finde en anden løsning :-)
Avatar billede erikjacobsen Ekspert
10. august 2007 - 19:31 #20
Jo - du putter det bare ind i querystringen. Ikke

    "http://vi.vil.hjem/til.dig?a=7#limfjorden"

men

    "http://vi.vil.hjem/til.dig?a=7&anchor=limfjorden"
Avatar billede kongknabe Nybegynder
10. august 2007 - 19:35 #21
Jamen http://vi.vil.hjem/til.dig?a=7&anchor=limfjorden duer jo ikke.. Så reloader siden vel? Eller har jeg misforstået noget?
Avatar billede erikjacobsen Ekspert
10. august 2007 - 20:21 #22
Ja, men det skal den jo også hvis du vil aflæse noget på serveren.
Avatar billede kongknabe Nybegynder
10. august 2007 - 20:43 #23
Ja, men det vil den jo også gøre første gang man indtaster en fuld URL - Ideen er at den ikke frem over skal lave et serverkald eller gøre noget.. Når først man er inde på siden vil jeg loade mit content med AJAX (Eller.. lad os sige med DHTML ;-D) - Er udelukkende interesseret i at prøve at implementere en bookmarking funktion på siden.. Men begynder at kunne se at det ikke kan lade sig gøre på den måde jeg havde forestillet mig :-) (Men hey hey.. En ny ide tager form i netop dette sek. - det må jeg lige prøve af :-D)
Avatar billede kongknabe Nybegynder
10. august 2007 - 20:52 #24
Tak for forklaringen i øvrigt.. Kan godt se nu at jeg ikke helt havde tænkt igennem hvordan en browser behandler den salgs.. dejligt at få styr på! :-)
Avatar billede erikjacobsen Ekspert
10. august 2007 - 21:21 #25
AJAX henter ting på serveren. Links på samme side med "...#anker" spørger ikke serveren. Men det lader til du har set lyset ;)
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