2016-03-29 4 views
1

Ich habe eine Website erstellt und ich habe eine Menge Include-Anweisungen in meinem PHP-Skript verwendet, um alles einfacher zu machen.Website php Wie man den Zugriff auf Dateien beschränkt

So zum Beispiel habe ich eine Datei index.php, die so geht:

<?php include 'script/uppage.php';?> 
<div id='ContentArea' class="container"> 
    <div class="row"> 
     <div class="col-sm-8"> 
      <?php 
      switch($page){ 
       case 'register': 
        include 'pages/register.php'; 
        break; 
       case 'fp': 
        include 'pages/forgotpassword.php'; 
        break; 
       default: 
        include 'pages/main.php'; 
        break; 
      }?>   
     </div> 
     <div class="col-sm-4"> 
      <?php include 'script/side_menu.php' ?> 
     </div> 
    </div> 
</div> 
<?php include 'script/downpage.php';?> 

Ich möchte den Zugang zu verweigern, wenn die Menschen zum Beispiel zu geben versuchen register.php direkt von ihrem Browser. Wenn sie www.mywebsite.com/pages/register.php eingeben würden, würde dies einen Fehler anzeigen.

Gibt es allgemeine Richtlinien, wie man dies für große Websites und einige grundlegende Prinzipien macht. Jede Hilfe sehr geschätzt!

+3

Der einfachste Weg ist, es aus dem Verzeichnis public_html oder web root herauszuhalten. – Devon

+0

Wie kann ich auf sie zugreifen? – Marcipanas

+1

Sie müssen nicht im Web-Verzeichnis enthalten sein. Geben Sie ihnen einen absoluten oder relativen Pfad basierend auf dem Ort an, an dem sie sich befinden, zum Beispiel '../ pages/register.php'. – Devon

Antwort

0

Wie bereits in den Kommentaren erwähnt - können Sie diese Dateien außerhalb Sie Website speichern Ordner, das heißt DOCUMENT_ROOT und include'em mag:

include $_SERVER['DOCUMENT_ROOT'] . '/../pages/main.php'; 

Eine weitere Option in einem Top-Datei eine spezielle Konstante ist definiert, z.B.

<?php 
define('SOME_CONSTANT', true); // here, we define a constant 
include 'script/uppage.php';?> 

Dann, wenn Sie Ihre Datei enthalten nur für sie überprüfen, zum Beispiel in pages/main.php:

<?php 
if (!defined('SOME_CONSTANT') || SOME_CONSTANT !== true) { 
    die(); 
} 
// other code 
-3

So verwende ich die .htaccess-Datei, dies zu tun.

Fügen Sie einfach die Zeile Options All -Indexes in .htaccess-Datei hinzu.

+0

Der Zugriff auf die Datei wird nicht gesperrt. Es wird nur den Verzeichnisindex los. – Devon

Verwandte Themen