Brukernavn i url'en

Regulæruttrykk, objektorientering, samt problemstillinger omkring optimalisering og sikkerhet.

Brukernavn i url'en

Innlegg bibliotek » 27.03.2012 9:47

Hey, jeg holder på med et nettsamfunn, og lurer på hvordan jeg kan få brukernavn i url'en som f.eks: http://minside.no/Brukernavn

Nå har jeg http://minside.no/profile.php?id=ID

Vet hvordan jeg kan lage så det blir http://minside.no/profile/ID, men vil ha det slik som FB, Twitter osv :)
Og viss brukeren ikke har brukernavn, vil jeg ha profile.php?id=ID ^^ Noen som har noen koder, eller kan dette? Takker for svar :)
bibliotek
Nytt medlem
 
Innlegg: 5
Registrert: 12.02.2012 19:15

Re: Brukernavn i url'en

Innlegg Nukleuz » 27.03.2012 10:42

Det du et ute etter er mod_rewrite, som er en del av Apache server, og ikke PHP. Søk på forumet og du finner mange svar. ;-)
Mvh
Joachim M. Giæver
http://development.giaever.org
Brukerens avatar
Nukleuz
Seniormedlem
 
Innlegg: 1659
Registrert: 09.12.2006 2:08
Bosted: Tromsø

Re: Brukernavn i url'en

Innlegg adeneo » 27.03.2012 10:47

Du kan jo sette en URL til akkurat hva du vil, det er ingen regel som sier at en URL må peke til en mappe eller en fil, selv om det som regel gjøres slik, og er slik automatisk i for eksempel Apache.

Måten FB gjør det på er med en kontroller, eller ofte kalt en router, hvor alle forespørsler går til kontrolleren og den avgjør hva som skal sendes til nettleseren.
FB bruker blant annet javascript History API'en med pushstate osv. noe som sikkert er mer komplisert enn du trenger.

Du kan for eksempel videresende alle forespørsler av en viss type, si for eksempel alle forespørsler til http://sidenmin.no/bruker/**** til samme fil i serveroppsettet, enten med .htaccess, i Vhosts, eller rett i Apache alt ettersom hvilken tilgang du har, og bruke PHP til å lese brukernavnet, blir litt pseudo kode, men noe sånt :

Kode: Merk alt
$url = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$user = array_pop($url);


Sannsynligvis med langt bedre kontroll, og mer sjekking for å se at ting er riktig, men sånn i prinsippet noe lignende, og så hente de dataene som hører til det angitte brukernavnet, noe slikt:

gitt at linken er : http://sidenmin.no/bruker/adeneo

Kode: Merk alt
$url = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$user = array_pop($url);

if ($user=='adeneo') {
  echo '<script type="text/javascript">alert("Hallo adeneo");</script>';
}


Du kan i utgangspunktet videresende nesten hva som helst hvor som helst i serveroppsettet, og det er også som regel trikset for å få enkle lenker med ting som brukernavnet i, men min mening er at slikt bør gjøres enkelt og generelt, og ikke begynne med rewrites av hundrevis av adresser i .htaccess osv.
adeneo
Medlem
 
Innlegg: 628
Registrert: 08.04.2011 21:09

Re: Brukernavn i url'en

Innlegg danielbendiksen » 24.01.2014 16:59

Sjekk denne linken: http://norskwebforum.no/viewtopic.php?f=18&t=45872

Mvh
Daniel Bendiksen
"Some languages are designed to solve a problem. Others are designed to prove a point."
dBendiksen.no
Brukerens avatar
danielbendiksen
Medlem
 
Innlegg: 100
Registrert: 17.09.2008 10:48


Gå til Avansert PHP

Hvem er i forumet

Brukere som leser i dette forumet: Ingen registrerte brukere og 4 gjester