У меня есть два PHP-скрипта, у каждого из которых есть "include_once ('authentication.inc');"Сценарий в верхней части.Оба сценария ссылаются на один и тот же файл аутентификации.Этот файл аутентификации в настоящее время выполняет перенаправление заголовка (например, "header ('Location: index.php');"), если пользователь не вошел в систему.
В одном файле (A.php) непосредственно следующая строкакода после включения файла аутентификации:
if(isset($_GET['delete']))
mysql_query("DELETE FROM table WHERE index=".$_GET['delete']);
В другом файле (B.php) есть несколько других включений, которые происходят до того же "удаления кода", указанного выше.
Итак, файл authenticate.inc выглядит так:
if(!valid_credentials($username,$password))
header('Location: index.php');
А файл A.php выглядит так:
include_once('authenticate.inc');
if(isset($_GET['delete']))
mysql_query("DELETE FROM table WHERE index=".$_GET['delete']);
А файл B.php выглядит так:
include_once('authenticate.inc');
include_once('other.php');
include_once('file2.php');
include_once('onemore.php');
if(isset($_GET['delete']))
mysql_query("DELETE FROM table WHERE index=".$_GET['delete']);
Тем не менее, когда я вызываю A.php? Delete = 5, эта запись удаляется из базы данных, а когда я вызываю B.php? Delete = 8, эта запись не выполняется.
Я проверил 3посредник включает и не видит ни операторов die (), ни каких-либо других перенаправлений заголовков.
Поэтому, хотя ясно, что A.php продолжает выполняться после отправки заголовка, почему B.php не выполняеттоже самое?Отправляется ли заголовок до следующего набора импортов?
**
Также: я знаю, что добавить команду die () или exit после отправки заголовков.Я работаю над чужим кодом и пытаюсь объяснить поведение, а не пишу это сам.
**