#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, она может завершиться ошибкой, если вы включаете ее в какой-либо другой файл.