Директива include
вводит код в указанном файле в область видимости. Мысленно вы можете просто заменить директиву include на блок кода внутри этого файла, особой разницы нет. Зная это, ваш код будет выглядеть так:
<?php
//include_once("other_one.php");
$name = $_POST['name'];
$pass = $_POST['password'];
echo "From other_one.php".$name." ".$pass."<br>";
$n1 = $_POST['name'];
$n2 = $_POST['password'];
echo "From this_one.php ".$n1." ".$n2."<br>";
?>
<form action="" method="POST">
<input type="text" name="name">
<input type="password" name="password">
<button type="submit" name="Submit">Login</button>
</form>
edit
Есть четыре директивы для включения кода в область текущего процесса / запроса. Прежде чем я их назову, обратите внимание, что я сказал текущий процесс / запрос. Если 10 человек попадут на вашу страницу входа, у вас будет 10 процессов / запросов. Точно так же, если 1 человек попадет на вашу страницу входа 10 раз, у вас также будет 10 процессов / запросов. Такова сама природа PHP, и я бы не стал беспокоиться об этом, если вы на самом деле не заметите проблемы с производительностью.
Четыре директивы: include
, include_once
, require
и require_once
. Директивы, заканчивающиеся на _once
, гарантируют, что предоставленный файл будет задействован в процессе только один раз. Две другие директивы позволяют включать файл несколько раз в процесс. Разница между include
и require
невелика, но в основном include
будет генерировать игнорируемое предупреждение, если не может найти файл, тогда как require
вызовет фатальную ошибку.
Обычно я лично всегда рекомендую использовать require_once
для всех включений , если только не имеет явной причины вводить код несколько раз. Например, если у вас есть виджет пейджера, который должен располагаться вверху и внизу таблицы, это хорошее применение для включения одного и того же файла несколько раз. Я никогда, никогда не использую include
или include_once
, потому что не могу представить себе сценарий, в котором проблема с включением была бы приемлемой для меня.
Также, в качестве примечания, PHP разрешает путь к файлу потенциально неожиданным способом . Например, если вы используете include 'file.php';
, то на самом деле не означает включить файл в текущий каталог. Вместо этого есть необязательный «включаемый путь», который администратор может установить (возможно, по причинам устаревшего, насколько я понимаю), и, используя этот синтаксис, сначала ищите включаемый путь. Если у вас нет пути включения или этот файл не может быть найден по этому пути, , тогда используется локальная папка. По этой причине я рекомендую всегда включать файлы, использующие «семантику пути», которая в значительной степени сводится к началу с точкой или прямым sla sh или константой, например __DIR__
.