Permalänk
Medlem

Include och require i php

Tjena, det är så att jag använder include och require på min hemsida men kan jag göra så att ingen kan gå in på sidorna som är ikluderade genom att skriva adressen adressfältet.

Jag vill alltså att innehållet i include BARA ska kunna visas på rätt sida när man använder en include eller require.

Permalänk
Medlem

Eftersom den inkluderade sidan ärver variablerna kan du sätta en variabel i den inkluderande filen, exempelvis "$is_included = true" för att sedan försöka läsa variabeln in den inkluderade filen:

<?php if(!$is_included) { die('Du försökte komma åt skriptet på ett felaktigt sätt.'); } ?>

Du kan modifiera det för att bara kunna inkludera via rätt sida genom att ändra variabeln till "$included_by = 'sidnamn'" och sedan kontrollera om det är rätt som sida har inkluderat.

Permalänk
Medlem

Det finns några olika metoder:

  • Döp om filerna du ska inkludera till *.inc (Apache bör ha regler om att sådana inte visas för besökare)

  • Använd .htaccess för att neka tillträde till filerna du inkluderar (lägg gärna dessa samlade i en mapp)

  • Definiera en variabel med define() i filen du inkluderar från, testa om den existerar i den inkluderade filen

  • Diverse tester på $_SERVER['PHP_SELF']

Jag föredrar .htaccess-metoden, vilket även rekommenderas av det accepterade svaret till den här frågan på Stack Overflow.

Permalänk
Medlem

Tack båda två, ska nog använda .htaccess men fattar inte riktigt hur man backar upp ur en folder.

Filen session.php ska blockas men .htaccess ligger i mappen cgi-bin.

Någonting såhär?

<files ^/cgi-bin/ menybar.php> order allow,deny deny from all </files>

Permalänk
Medlem
Skrivet av kobb3:

Tack båda två, ska nog använda .htaccess men fattar inte riktigt hur man backar upp ur en folder.

Filen session.php ska blockas men .htaccess ligger i mappen cgi-bin.

Någonting såhär?

<files ^/cgi-bin/ menybar.php> order allow,deny deny from all </files>

Skapa en ny .htaccess i samma mapp som session.php

Permalänk
Medlem
Skrivet av You:

Skapa en ny .htaccess i samma mapp som session.php

Kan man ha flera .htaccess?

Flyttade den och nu kan man inte komma åt dessa filer!

Permalänk
Medlem
Skrivet av kobb3:

Kan man ha flera .htaccess?

Ja, en per mapp typ.