Вызов страницы php - PullRequest
       1

Вызов страницы php

2 голосов
/ 20 сентября 2011

Какой самый лучший способ, если я хочу сделать что-то вроде этого;

Я называю это вызовом страницы.

У меня есть index.php, который запустит config.php

И я хочу иметь index.php в качестве ядра, а затем сделать что-то вроде

index.php?customer=home  or index.php?customer=viewaccount

index.php?admin=home  or index.php?admin=updateproduct

затем вызовите конкретный php-файл, например. home.php, viewaccount.php

С наилучшими пожеланиями Я очень ценю вашу помощь. =)

Ответы [ 5 ]

2 голосов
/ 20 сентября 2011

Похоже, вы говорите о шаблоне проектирования, известном как Шаблон фронт-контроллера .

Конечно, возможно реализовать свой собственный фронт-контроллер, но почти у каждого PHP-фреймворка уже будет эта возможность. Я рекомендую вам попробовать Zend Framework.

1 голос
/ 20 сентября 2011

Я бы не совмещал области администратора и puclic в одном и том же сценарии.
Итак, для публичного пространства вы можете сделать что-то вроде

<? 
if (empty($_SERVER['QUERY_STRING'])) { 
  $name="index"; 
} else { 
  $name=basename($_SERVER['QUERY_STRING']); 
} 
$file="pages/$name.htm"; 
if (is_readable($file)) { 
  include($file); 
} else { 
  header("HTTP/1.0 404 Not Found");
  readfile("404.html");
} 
?> 

, а затем обращаться к страницам клиентов, например: index.php?home, index.php?viewaccount

0 голосов
/ 20 сентября 2011

Название для этого шаблона - фронт-контроллер.

Вы можете реализовать мультиплексирование на веб-сервере (например, используя mod_rewrite) или в своем коде PHP.

Вот как НЕ сделать это:

 <?php

 require_once($_REQUEST['customer']);
 require_once($_REQUEST['admin']);

С * * +1010

0 голосов
/ 20 сентября 2011

Хорошо, я не мог бы побеспокоиться, чтобы прокомментировать все ответы здесь, поэтому я скажу это вам, даже если этот пост, вероятно, будет отклонен, поскольку это не прямая помощь.

Вам нужнобыть очень осторожным при включении файлов из запроса POST или GET.Просто помните об уязвимостях удаленного / локального включения файлов при написании такого кода.index.php? page = / etc / passwd или index.php? page = www.myEvilScript.com / evil.php

Многие люди могут быть взломаны таким образом, и вы не хотите, чтобы это случилось с вами,

Всегда очищайте ваши данные, поэтому удаляйте лишние ($ _ GET ['admin']);или любой другой метод, который вы хотите использовать.

0 голосов
/ 20 сентября 2011

Лучше всего сравнить параметр $_GET с массивом разрешенных имен скриптов «белый список».После этого вы можете просто включить файл.

if ( in_array( $_GET['admin'], array( 'home', 'updateproduct' ) ) ) {
    include( $_GET['admin'] . '.php');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...