2016-03-29 2 views
1

Я создал веб-сайт, и я использовал множество операторов include в моем php-скрипте, чтобы сделать все проще.Website php Как ограничить доступ к файлам

Так, например, у меня есть файл index.php, который идет как это:

<?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';?> 

Я хочу, чтобы запретить доступ, если люди пытаются ввести, например register.php непосредственно из браузера. Поэтому, если они войдут в www.mywebsite.com/pages/register.php, это приведет к ошибке.

Есть ли общие рекомендации, как сделать это для больших веб-сайтов и некоторых основных принципов. Любая помощь очень ценится!

+3

Самый простой способ - просто сохранить его в каталоге public_html или web root. – Devon

+0

Как мне получить к ним доступ? – Marcipanas

+1

Они не обязательно должны быть включены в каталог. Укажите абсолютный или относительный путь к ним в зависимости от того, где они находятся, например '../ pages/register.php'. – Devon

ответ

0

Как уже упоминалось в комментариях - вы можете хранить эти файлы вне вас папку сайта, то есть DOCUMENT_ROOT и include'em нравится:

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

Другой вариант заключается в определении какой-то особый константу в верхнем файле, например,

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

Затем, если ваш включаемый файл просто проверить его, например, в pages/main.php:

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

Итак, я использовать файл .htaccess, чтобы сделать это.

Просто добавьте строку Options All -Indexes в файл .htaccess.

+0

Это не запрещает доступ к файлу. Это просто избавляет от индекса каталога. – Devon

Смежные вопросы