PHP включает вопрос

#php

#php

Вопрос:

Возможно ли включить php на веб-сайт, но когда вы ссылаетесь на веб-сайт, который вы включили, вы будете перенаправлены. Например:

В index.php у нас есть:

  <?php include('http://mydomain.com/aboutme.php')   ?>
  

но если вы наберете http://mydomain.com/aboutme.php затем вы будете перенаправлены на index.php .

Возможно ли это?

Спасибо

Комментарии:

1. Это возможно, но обычно вы хотите избежать удаленных включений. Почему вы это делаете в первую очередь? Включено ли оно в вашем собственном домене?

2. Помните, что include это предназначено для загрузки PHP-кода для выполнения. Когда вы включаете файл через подобный URL, вы получаете выходные данные удаленного скрипта, а не его исходный код. Если только aboutme.php при выводе PHP-кода вы, скорее всего, получите синтаксические ошибки.

3. Да, это так. Ну, в aboutme.php это был бы просто ввод, поэтому я бы хотел, чтобы люди не могли просматривать это самостоятельно. Спасибо

4. Если я использую iframe, то люди могут щелкнуть правой кнопкой мыши и увидеть только фрейм, где входные данные будут стоять сами по себе на странице

Ответ №1:

Да, можно проверить запрошенное имя файла, является ли оно aboutme.php перенаправлением с использованием заголовка

 $basename = basename($_SERVER['REQUEST_URI']);
$filename = basename($basename);

if ($filename == "aboutme.php")
{
   header('location:index.php');
}
  

Комментарии:

1. Я не уверен, что это все еще применимо, но не забудьте поместить эту строку кода в самый верх файла, выполняющего перенаправление.

2. но если я использую перенаправление, смогу ли я его включить?

3. @Plan: Да, это правда, вы должны поместить это условие и код в самый верх файла

4. @rallyboy: Да, конечно, ты сможешь. поскольку перенаправление происходит только в том случае, если URL-адрес http://mydomain.com/aboutme.php

Ответ №2:

Можно делать то, что вы хотите, однако, поскольку HTTP не имеет состояния, вам нужно будет использовать какой-либо тип устройства для поддержания состояния, например, файлы cookie или сеансы, или даже переменные (поскольку вы выполняете ‘include’ из вашего индекса..

Например, в верхней части индекса, перед вашим включением, вы можете поместить:

 $fromIndex = true;
  

И затем в верхней части вашего aboutme.php файл, в который вы можете поставить простую проверку:

 if(!isset($fromIndex) || !$fromIndex) {
    header("Location: index.php");
    exit();
}
  

Комментарии:

1. Идеально, похоже, это то, что я искал

Ответ №3:

Возможно, вы захотите рассмотреть возможность использования перенаправления JavaScript.

 <script type="javascript">
    window.location = "index.php";
</script>
  

Поскольку header() функция должна находиться в верхней части файла PHP, она может завершиться ошибкой, если вы включаете ее в какой-либо другой файл.