/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvilken side?
Fra : Henrik Koksby Hansen


Dato : 04-06-04 15:28

Hej,

2 spørgsmål fra en, der stort set kun kan php på copy-paste-niveau...
:)

Jeg har en index.php hvori jeg inkluderer alle undersites vha. et id.
eks. index.php?id=links sørger for at index'et inkluderer links-siden.

1) Jeg har så en .htaccess hvori jeg fortæller at ved 404-fejl skal
index.php?id=404 åbnes....Nu ville jeg gerne vide hvilken side der gav
404-fejlen. Men hvordan gøres det?

2) Jeg har også en addlink.php som jeg kalder vha.
index.php?id=addlink ... Her er en formular, som kalder sig selv
(addlink.php). Men, når den gør det, så er det pludselig ikke længere
index.php?addlink man får frem - men kun addlink.php. :( Nogle gode
ideer til en løsning?

Jeg håber jeg har forklaret mig ordentligt. Hvis i mangler info, så
råb endelig højt.


/Henrik

 
 
Henrik Koksby Hansen (04-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 04-06-04 15:42

On Fri, 04 Jun 2004 16:28:06 +0200, Henrik Koksby Hansen
<news@k0ksby.dk> wrote:

>Hej,
>
>2 spørgsmål fra en, der stort set kun kan php på copy-paste-niveau...
>:)
>
>Jeg har en index.php hvori jeg inkluderer alle undersites vha. et id.
>eks. index.php?id=links sørger for at index'et inkluderer links-siden.
>
>1) Jeg har så en .htaccess hvori jeg fortæller at ved 404-fejl skal
>index.php?id=404 åbnes....Nu ville jeg gerne vide hvilken side der gav
>404-fejlen. Men hvordan gøres det?
[...]

Jeg har forsøgt mig med $REQUEST_URI, men der får jeg bare returneret
/index.php?id=404 som er den side .htaccess henviser til... :(


/Henrik

Troels Arvin (04-06-2004)
Kommentar
Fra : Troels Arvin


Dato : 04-06-04 18:16

On Fri, 04 Jun 2004 16:28:06 +0200, Henrik Koksby Hansen wrote:

> Jeg har en index.php hvori jeg inkluderer alle undersites vha. et id. eks.
> index.php?id=links sørger for at index'et inkluderer links-siden.

Pas på, at du ikke åbner for, at folk kan få dit script til at
inkludere hvad som helst fra filsystemet og på den måde evt. misbruge
nogle informationer.


> 1) Jeg har så en .htaccess hvori jeg fortæller at ved 404-fejl skal
> index.php?id=404 åbnes....Nu ville jeg gerne vide hvilken side der gav
> 404-fejlen. Men hvordan gøres det?

Prøv at kalde phpinfo() funktionen i index.php-siden og se i output
derfra, om der ikke er en af de mange $_SERVER-variable, der indeholder
det, du er ude efter.


> 2) Jeg har også en addlink.php som jeg kalder vha. index.php?id=addlink
> ... Her er en formular, som kalder sig selv (addlink.php). Men, når den
> gør det, så er det pludselig ikke længere index.php?addlink man får
> frem - men kun addlink.php. :( Nogle gode ideer til en løsning?

Det er svært at vide uden at have indblik i din kode.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Kim Emax (04-06-2004)
Kommentar
Fra : Kim Emax


Dato : 04-06-04 18:50

Troels Arvin wrote:

>> Jeg har en index.php hvori jeg inkluderer alle undersites vha. et
>> id. eks. index.php?id=links sørger for at index'et inkluderer
>> links-siden.
>
> Pas på, at du ikke åbner for, at folk kan få dit script til at
> inkludere hvad som helst fra filsystemet og på den måde evt. misbruge
> nogle informationer.

Jeg bruger altid en switch til at inkludere filer med, så fanges
"uautoriseret" inklude-forsøg af default.

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk



Henrik Koksby Hansen (04-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 04-06-04 19:19

On Fri, 4 Jun 2004 19:49:33 +0200, "Kim Emax"
<newsgroup@remove-emax.dk> wrote:

>Troels Arvin wrote:
>
>>> Jeg har en index.php hvori jeg inkluderer alle undersites vha. et
>>> id. eks. index.php?id=links sørger for at index'et inkluderer
>>> links-siden.
>>
>> Pas på, at du ikke åbner for, at folk kan få dit script til at
>> inkludere hvad som helst fra filsystemet og på den måde evt. misbruge
>> nogle informationer.
>
>Jeg bruger altid en switch til at inkludere filer med, så fanges
>"uautoriseret" inklude-forsøg af default.
[...]

Samme her ... og default er en side, der, med røde bogstaver, skriver,
at sessionen logges af sikkerhedshensyn ...

Jeg skulle mene, at det er godt nok? :)


/Henrik

Henrik Koksby Hansen (04-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 04-06-04 19:27

>> 1) Jeg har så en .htaccess hvori jeg fortæller at ved 404-fejl skal
>> index.php?id=404 åbnes....Nu ville jeg gerne vide hvilken side der gav
>> 404-fejlen. Men hvordan gøres det?
>
>Prøv at kalde phpinfo() funktionen i index.php-siden og se i output
>derfra, om der ikke er en af de mange $_SERVER-variable, der indeholder
>det, du er ude efter.

Glimrende ide.

Desværre fangede phpinfo() ingen ting... udover index.php?id=404 ...
så bliver det nok svært, kan jeg næsten regne ud... :(

Ellers kommer jeg bare til at prøve med en 404-side uden brug af
includes ... Måske...

>> 2) Jeg har også en addlink.php som jeg kalder vha. index.php?id=addlink
>> ... Her er en formular, som kalder sig selv (addlink.php). Men, når den
>> gør det, så er det pludselig ikke længere index.php?addlink man får
>> frem - men kun addlink.php. :( Nogle gode ideer til en løsning?
>
>Det er svært at vide uden at have indblik i din kode.
[...]

Ja, men jeg fik også fikset det tilfredsstillende med noget
javascript... :)


/Henrik

Peter Anskjær (05-06-2004)
Kommentar
Fra : Peter Anskjær


Dato : 05-06-04 18:00

"Henrik Koksby Hansen" <news@k0ksby.dk> skrev i en meddelelse
news:2a11c0pij218c9daudjosmftmbf258danh@4ax.com...
>
> Jeg har en index.php hvori jeg inkluderer alle undersites vha. et id.
> eks. index.php?id=links sørger for at index'et inkluderer links-siden.
>
Min side er opbygget på samme måde.

> 1) Jeg har så en .htaccess hvori jeg fortæller at ved 404-fejl skal
> index.php?id=404 åbnes....Nu ville jeg gerne vide hvilken side der gav
> 404-fejlen. Men hvordan gøres det?
>
Nu har jeg også leget lidt med det, jeg kan heller ikke få det til at virke
når jeg siger min 404-side er index.php?page=404, så får jeg også samme fejl
som dig, nemlig at request uri er siden selv. Jeg har løst det ved at lave
en 404.php hvori jeg logger hvilken side der ikke kunne vises og derefter
redirecter til index.php?page=404, pt uden fejladresse som i sidens skabelon
gør opmærksom på at det er forsøgt at tilgå en side der ikke eksisterer.
Alternativt kunne man give fejladressen med via url, men brugeren selv ved
nok godt hvilken adresse han forsøgte at tilgå. Løsningen er ikke den mest
elegante, men lige umiddelbart løser den opgaven.
Jeg tror måske fejlen skyldes at der bedes om request uri i en fil der er
inkluderet, men det er ikke noget jeg har prøvet at kigge nærmere på.

> 2) Jeg har også en addlink.php som jeg kalder vha.
> index.php?id=addlink ... Her er en formular, som kalder sig selv
> (addlink.php). Men, når den gør det, så er det pludselig ikke længere
> index.php?addlink man får frem - men kun addlink.php. :( Nogle gode
> ideer til en løsning?
>
Kunne den ikke kalde index.php?id=addlink i stedet, det er vel blot at ændre
et par steder i koden.

Mvh
Peter



Peter Anskjær (05-06-2004)
Kommentar
Fra : Peter Anskjær


Dato : 05-06-04 18:08

"Peter Anskjær" <peter@_fjern_dette_nskjaer.dk> skrev i en meddelelse
news:40c1fc0f$0$196$edfadb0f@dread12.news.tele.dk...
> "Henrik Koksby Hansen" <news@k0ksby.dk> skrev i en meddelelse
> news:2a11c0pij218c9daudjosmftmbf258danh@4ax.com...
> >
>
> > 1) Jeg har så en .htaccess hvori jeg fortæller at ved 404-fejl skal
> > index.php?id=404 åbnes....Nu ville jeg gerne vide hvilken side der gav
> > 404-fejlen. Men hvordan gøres det?
> >
Et andet problem ved at inkludere siden i en nuværende skabelon er at alle
billeder som der ikke er givet absolutte stier til ikke vises hvis der
bliver forsøgt at vise en fil der ikke ligger i roden og ikke eksisterer.
Derfor vil jeg mene at det giver meget besvær at lade sin 404.php blive
inkluderet i en nuværende skabelon. Ved ikke hvorfor billederne ikke findes
når index.php fint findes.
Her var lige en jeg fandt:
http://www.acmeinternet.com/errors/404b.htm/hej
http://www.acmeinternet.com/errors/sidederikkefindes.html
Så medmindre man allerede har givet alle sine billeder absolutte stier, så
er det en downside mere.

Mvh
Peter



Henrik Koksby Hansen (06-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 06-06-04 12:31

>> 2) Jeg har også en addlink.php som jeg kalder vha.
>> index.php?id=addlink ... Her er en formular, som kalder sig selv
>> (addlink.php). Men, når den gør det, så er det pludselig ikke længere
>> index.php?addlink man får frem - men kun addlink.php. :( Nogle gode
>> ideer til en løsning?
>>
>Kunne den ikke kalde index.php?id=addlink i stedet, det er vel blot at ændre
>et par steder i koden.
[...]


Det har jeg prøvet - kunne ikke få det til at fungere. :(
Nu kalder addlink.php en ny fil; addit.php i et nyt vindue, som jeg
bestemmer størrelsen på vha. javascript. Det fungere vidst meget godt
.... :)



/Henrik

Peter Brodersen (05-06-2004)
Kommentar
Fra : Peter Brodersen


Dato : 05-06-04 18:31

On Fri, 04 Jun 2004 16:28:06 +0200, Henrik Koksby Hansen
<news@k0ksby.dk> wrote:

>1) Jeg har så en .htaccess hvori jeg fortæller at ved 404-fejl skal
>index.php?id=404 åbnes....Nu ville jeg gerne vide hvilken side der gav
>404-fejlen. Men hvordan gøres det?

Hvordan ser din .htaccess præcis ud?

Hvis den fx indeholder:
   ErrorDocument 404 http://www.eksempel.dk/index.php?id=404
... så bliver brugeren viderestillet til den side (til stor irritation,
i øvrigt).

Hvis den derimod indeholder:
   ErrorDocument 404 /index.php?id=404

... så burde der ikke være nogen problemer i at tilgå
$_SERVER['REQUEST_URI']

--
- Peter Brodersen

Ugens sprogtip: at tjekke (og ikke at checke)

Peter Anskjær (05-06-2004)
Kommentar
Fra : Peter Anskjær


Dato : 05-06-04 19:28

"Peter Brodersen" <usenet@ter.dk> skrev i en meddelelse
news:c9t00n$erm$1@katie.ellegaard.dk...
>
> Hvis den fx indeholder:
> ErrorDocument 404 http://www.eksempel.dk/index.php?id=404
> .. så bliver brugeren viderestillet til den side (til stor irritation,
> i øvrigt).
>
> Hvis den derimod indeholder:
> ErrorDocument 404 /index.php?id=404
>
Jeg er ikke lige med på hvad forskellen er på de to, og hvorfor er den
første til stor irritation?
Jeg har (som skrevet andet sted i tråden) lavet det med ErrorDocument 404
/404.php som så viderestiller til /index.php?page=404 som jo ligger i roden
og inkluderer filen 404.inc. Er der noget galt med den fremgangsmåde? Du må
meget gerne forklare hvorfor den første metode er irreterende.

> .. så burde der ikke være nogen problemer i at tilgå
> $_SERVER['REQUEST_URI']

Jeg kunne ikke få din sidste metode (heller ikke den første) til at give den
rigtige forkerte uri, den gav index.php?page=404.
Jeg includer 404.inc som er et php script der bl.a finder
$_SERVER['REQUEST_URI'], dette gav blot index.php?page=404, men hvis jeg
udskrev $_SER... fra index.php fik jeg den rigtige uri, altså den forkerte.
Men det er vel også kun index.php og ikke 404.inc der har "kontakt" til den
forkerte uri.

Mvh
Peter



Peter Brodersen (06-06-2004)
Kommentar
Fra : Peter Brodersen


Dato : 06-06-04 13:17

On Sat, 5 Jun 2004 20:27:49 +0200, "Peter Anskjær"
<peter@_fjern_dette_nskjaer.dk> wrote:

>> ErrorDocument 404 http://www.eksempel.dk/index.php?id=404
>> .. så bliver brugeren viderestillet til den side (til stor irritation,
>> i øvrigt).

>> Hvis den derimod indeholder:
>> ErrorDocument 404 /index.php?id=404
>>
>Jeg er ikke lige med på hvad forskellen er på de to, og hvorfor er den
>første til stor irritation?

I det første tilfælde bliver brugeren viderestillet til en anden side.
Brugeren får ikke en "404 Not Found"-fejlkode med en webside, men får
en "302 Found" og bliver viderestillet til fejlsiden (som giver "200
OK"). Så der er ingen indikation for browseren eller for søgemaskiner
om at der er tale om en 404'er.

I det andet tilfælde får brugeren en "404 Not Found" som direkte svar
på den side, han har forespurgt. Det er, som det skal være.

REQUEST_URI - altså den side, brugeren har requestet - vil også være
"/index.php?id=404" i førstnævnte tilfælde (hvilket ikke er ønsket),
hvorimod i det sidstnævnte tilfælde er det stadigvæk "/findesikke.txt"
eller lignende. Netop fordi det er brugerens browser, der bliver bedt
om at hente "/index.php?id=404", uden at oplyse noget nærmere om hvor,
brugeren kom fra.

Derudover^2 er det også irriterende, hvis man taster en lang URL en
lille smule forkert (fx glemmer et bogstav), og man så bliver
viderestillet til en fejlside og URL'en ændrer sig, så man ikke bare
kan gå op i adresselinjen og rette URL'en.


Og bare for en god ordens skyld: Jeg gør selv på flere sider brug af
fx:
   ErrorDocument 404 /error/404.php
... og i den fil har jeg den oprindelige request tilgængelig i
$_SERVER['REQUEST_URI']
(Apache, Linux, PHP som apache-modul)

Jeg ved ikke, om det er anderledes, hvis man bruger CGI-udgaven af
PHP.

--
- Peter Brodersen

Ugens sprogtip: at tjekke (og ikke at checke)

Henrik Koksby Hansen (06-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 06-06-04 12:27

>>1) Jeg har så en .htaccess hvori jeg fortæller at ved 404-fejl skal
>>index.php?id=404 åbnes....Nu ville jeg gerne vide hvilken side der gav
>>404-fejlen. Men hvordan gøres det?
>
>Hvordan ser din .htaccess præcis ud?
>
>Hvis den fx indeholder:
>   ErrorDocument 404 http://www.eksempel.dk/index.php?id=404
>.. så bliver brugeren viderestillet til den side (til stor irritation,
>i øvrigt).
>
>Hvis den derimod indeholder:
>   ErrorDocument 404 /index.php?id=404
>
>.. så burde der ikke være nogen problemer i at tilgå
>$_SERVER['REQUEST_URI']
[...]

--- klip .htaccess start ---
ErrorDocument 404 /index.php?id=404
--- klip .htaccess slut ---

Jeg havde absolut sti før - jeg kan godt se at det var lidt
irriterende, da stien i adressefeltet også ændredes ... Tak for den
oplysning. :)


Jeg tilgår så $_SERVER['REQUEST_URI'] i index.php på flg. måde:


--- klip index.php start ---
<?
switch ($id) {

....

   case "404":
      $errpage = $_SERVER['REDIRECT_URL'];
      include "$id.php";
      break;

....

}
?>
--- klip index.php slut ---


Hvor jeg så i 404.php udskriver fejl-siden vha.:

--- klip 404.php start ---
<? echo $errpage; ?>
--- klip 404.php slut ---



Prøv f.eks. at gå ind på url:http://koksby.dk/testaffejlside.html ...
Den udskriver kun "/index.php" ...


Iøvrigt så undrer det mig, at det tilsyneladende ikke fungerer, hvis
man f.eks. prøver at åbne url:http://koksby.dk/testaffejlside.php og
url:http://koksby.dk/testaffejlside/ ... ?



/Henrik

Peter Anskjær (06-06-2004)
Kommentar
Fra : Peter Anskjær


Dato : 06-06-04 12:36

"Henrik Koksby Hansen" <news@k0ksby.dk> skrev i en meddelelse
news:f8v5c0hhrk4sp900deb948htmvdujfugms@4ax.com...
>
> Jeg tilgår så $_SERVER['REQUEST_URI'] i index.php på flg. måde:
>
>
> --- klip index.php start ---
> <?
> switch ($id) {
>
> ...
>
> case "404":
> $errpage = $_SERVER['REDIRECT_URL'];

Prøv med
$errpage = $_SERVER['REDIRECT_URI'];
det burde virke.
>
> Iøvrigt så undrer det mig, at det tilsyneladende ikke fungerer, hvis
> man f.eks. prøver at åbne url:http://koksby.dk/testaffejlside.php og
> url:http://koksby.dk/testaffejlside/ ... ?
>
Jeg tror nok problemet ligger i at b-one har php bygget på cgi og ikke
integreret med apache, det er hvad jeg har hørt.
Men se denne her side:
http://koksby.dk/testaffe/jlside.php
Det er jo ikke så fedt, hvorfor det er sådan kan jeg ikke helt forstå.
Jeg kan ikke lige svare dig på hvorfor du ikke kan finde fejl når du
forsøger at få vist en mappe.

Mvh
Peter



Henrik Koksby Hansen (06-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 06-06-04 12:43

>> $errpage = $_SERVER['REDIRECT_URL'];
>
>Prøv med
>$errpage = $_SERVER['REDIRECT_URI'];
>det burde virke.
[...]

Jesus. :)

Det er ændret. Men det lader til at $_SERVER['REDIRECT_URI']
returnerer en tom streng.

Jeg satte for sjov skyld lige

$errpage = "test";

ind i index.php og det der printede den fint "siden 'test' findes
ikke" ud ... Men ovenstående giver kun en tom streng?



/Henrik

Peter Anskjær (06-06-2004)
Kommentar
Fra : Peter Anskjær


Dato : 06-06-04 12:56

"Henrik Koksby Hansen" <news@k0ksby.dk> skrev i en meddelelse
news:kl06c01n1vf2ukcam0ddo05i6en7ep76em@4ax.com...
> >> $errpage = $_SERVER['REDIRECT_URL'];
> >
> >Prøv med
> >$errpage = $_SERVER['REDIRECT_URI'];
> >det burde virke.
> [...]
>
> Jesus. :)
>
> Det er ændret. Men det lader til at $_SERVER['REDIRECT_URI']
> returnerer en tom streng.
>
> Jeg satte for sjov skyld lige
>
> $errpage = "test";
>
> ind i index.php og det der printede den fint "siden 'test' findes
> ikke" ud ... Men ovenstående giver kun en tom streng?
>
Har du prøvet at printe $errpage ud lige inden du inkluderer 404.php, altså
printe den ud fra index.php og se om det gør en forskel, det gjorde det for
mig.
Hvad siger du til fejlsiden når det er en fil i en undermappe, den bryder
jeg mig ikke om.

Mvh
Peter



Henrik Koksby Hansen (06-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 06-06-04 13:06

>> >> $errpage = $_SERVER['REDIRECT_URL'];
>> >
>> >Prøv med
>> >$errpage = $_SERVER['REDIRECT_URI'];
>> >det burde virke.
>> [...]
>>
>> Jesus. :)
>>
>> Det er ændret. Men det lader til at $_SERVER['REDIRECT_URI']
>> returnerer en tom streng.
>>
>> Jeg satte for sjov skyld lige
>>
>> $errpage = "test";
>>
>> ind i index.php og det der printede den fint "siden 'test' findes
>> ikke" ud ... Men ovenstående giver kun en tom streng?
>>
>Har du prøvet at printe $errpage ud lige inden du inkluderer 404.php, altså
>printe den ud fra index.php og se om det gør en forskel, det gjorde det for
>mig.
[...]

Jeg har lavet en errorpage.php istedet, som .htaccess viderestiller
til. Den kan tilsyneladende opsnappe det hele. Ideen er også bare at
jeg vil have en mail når det sker, at nogen forsøger at åbne en side,
som ikke findes.
Jeg må jo så evt. viderestille til index.php?id=404 fra den nye side
eller simpelthen overføre hele index-siden med indhold dertil. :(

Hvis det virkede at udskrive den i index.php inden include, ville der
da være en anden mulig løsning?


>Hvad siger du til fejlsiden når det er en fil i en undermappe, den bryder
>jeg mig ikke om.
[...]

Heller ikke mig. Men jeg ved ikke om der er noget jeg kan gøre ved det
(?) ... Nogle ideer?



/Henrik

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste