Avatar billede remis Nybegynder
13. august 2008 - 02:30 Der er 11 kommentarer og
1 løsning

referer - undersøg om bruger kommer fra bestemt mappe

Hej hej!

Hvad skal jeg skrive hvis jeg i en error404.php-fil vil undersøge om referer kommer fra et bestemt bibliotek. Og så sende ham videre hvis det er tilfældet.

f.eks.:
www.domæne.dk/bibliotek/felj.htm
www.domæne.dk/bibliotek/fjel.htm
www.domæne.dk/bibliotek/farjl.htm
-Skal alle sendes til alternativ error404.php

F.eks.:
www.domæne.dk/tiktak/fjel.htm
www.domæne.dk/kukur/felj.htm
www.domæne.dk/felj.htm
-Skal behandles som normalt.

Håber I kan hjælpe.
G'nat :)
Avatar billede showsource Seniormester
13. august 2008 - 07:04 #1
En mulighed
$dirnavn = dirname($_SERVER["REQUEST_URI"]);
http://dk.php.net/manual/en/function.dirname.php

Og du skal så nok efterflg. bruge strpos()
http://dk.php.net/manual/en/function.strpos.php
Avatar billede tmi Nybegynder
13. august 2008 - 10:25 #2
if (strpos($_SERVER['HTTP_REFERER'], "http://www.domæne.dk/bibliotek/") === 0) {
// henvisningsURL starter med sstien til mappen
} else {
// normalt
}
Avatar billede remis Nybegynder
13. august 2008 - 12:41 #3
det funker ikke rigtig.
jeg har et javascript som sender brugeren videre ved onclick. er måske derfor!?

...
document.location=document.form.textinput.value + ".php";
...
Avatar billede tmi Nybegynder
13. august 2008 - 12:54 #4
Burde ikke ændre det, prøv at skrive:
die($_SERVER['HTTP_REFERER']);

Så kan du se hvad der står i den ;-)
Avatar billede remis Nybegynder
13. august 2008 - 13:11 #5
hmm der står intet i den.

har også prøvet:
...
document.location=document.form.textinput.value + ".php?test=kukur";
...
der bliver $test ikke modtaget ?-|
Avatar billede remis Nybegynder
13. august 2008 - 14:34 #6
Jeg kunne ik få det til at funke, så har fundet en anden løsning.
Har droppet javascriptet og kører det ren php. En form sender filnavnet med, så evt 404dok kan se om det skal det ene eller andet.

Ellers tak for hjælpen
Smid et svar hvis I vil ha point for jeres tid :)
Avatar billede showsource Seniormester
13. august 2008 - 14:51 #7
$_SERVER['HTTP_REFERER'] er siden du er kommet fra. Ikke siden du forespørger.
Og  $_SERVER['HTTP_REFERER'] er langt fra "gangbar", altså, du kan ikke regne med den.

Hvis du f.eks. prøver at gå på
http://www.phpbegynder.dk/nowwhat/juhu.php
vil du se at url stadig står i adresselinien.
Og det er vel ud fra hvad som står her du vil bruge et anden 4040 doc ?

Men hvis det rent fysisk er et dir, hvorfor så ikke smide en .htaccess ind i det dir, som definerer hvad som er 404 doc ?
Avatar billede showsource Seniormester
13. august 2008 - 14:55 #8
Og b.t.w.

$dirnavn = dirname($_SERVER["REQUEST_URI"]);

$baddir = strpos($dirnavn, "/bibliotek/");

    if($baddir === false) {
    continue;
    }else{
    include("alternativ_error404.php");
    }

Utestet ! :O)
Avatar billede showsource Seniormester
13. august 2008 - 15:02 #9
Evt.

    if(false !== ($baddir = strpos($_SERVER["REQUEST_URI"], "bibliotek/"))) {
    include($_SERVER["DOCUMENT_ROOT"]."/alternativ_error404.php");
    exit;
    }
Avatar billede remis Nybegynder
17. august 2008 - 11:20 #10
showsource: 13/08-2008 14:51:26: "...hvorfor så ikke smide en .htaccess ind i det dir, som..."
Fordi jeg ikke vidste man kunne det. Troede kun den fungerede i roden. Så lærte jeg også noget nyt idag :)

showsource: Hvis du laver et svar, så holder jeg en takketale til dit sølvbryllup, og sender 37 point med express kurér.
Avatar billede showsource Seniormester
17. august 2008 - 22:25 #11
Jeg er ikke gift, og skal heller aldrig giftes!
Men derfor kan du jo godt få et svar! :O)
Avatar billede remis Nybegynder
18. august 2008 - 22:09 #12
well så nøjes jeg bare med at takke :)
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