2013-03-20 4 views
0

Я нахожусь в pageA.php со следующим кодомPHP: как определить «включает в себя» страницы

if (DOWNLOAD_ENABLED == 'true') include 'pageB.php'; 

это можно узнать внутри pageB.php что pageA.php включил его? Мне нужно выполнить определенные действия в pageB.php в соответствии со страницей, которая включает его.

+0

require and require_once. Если файл не загружен, он не сработает – Drewdin

+0

. Мой вопрос заключается в том, как узнать внутри pageB.php, что он был вызван pageA.php, есть ли функция для этого? – Kokas

+1

вы также можете проверить '$ _SERVER ['PHP_SELF'];' –

ответ

0

Любая переменная, объявленная в страницаА будет доступен в страницаБ, это это не очень хорошая практика, вы должны использовать объектно-ориентированные или, по крайней мере, функции для этого , но если вам абсолютно необходимо, вы можете сделать что-то вроде:

// on pageA.php 
if (DOWNLOAD_ENABLED == 'true') { 
    $includedFrom = "pageA"; 
    include 'pageB.php'; 
} 

// on pageB.php 
switch($includedFrom) { 
    case "pageA": 
    // do stuff 
    break; 
} 
+0

Спасибо, теперь исправлено. – cernunnos

0

Самый простой способ - сохранить его в var.

$my_page = 'pageA.php'; 

if (DOWNLOAD_ENABLED == 'true') include 'pageB.php'; 

Вы можете получить доступ к $my_page в pageB.php нормально.

0

Что-то, как это будет работать:

pageA.php

define('AUTHORISED_TO_INCLUDE', 1); 
if (DOWNLOAD_ENABLED == 'true') include 'pageB.php'; 

pageB.php

if(!defined('AUTHORISED_TO_INCLUDE')) // Do something, e.g. die(); 
Смежные вопросы