Таким образом, вы можете включить, например, functions.php
в свой файл, а затем вы можете использовать разные функции на этой странице для проверки ввода пользователя.
Но как я могу обрабатывать несколько форм с использованием одного и того же файла?
Пример:
include formprocessor.php
formprocessor будет содержать все функции, связанные с каждой формой:
Form A action=formAfunction()
Form B action=formBfunction()
Form C action=formCfunction()
Может ли formprocessor.php содержать функцию, специально предназначенную для обработки каждой формы? Каждая форма будет иметь свою собственную функцию для обработки своих данных.
Если это возможно, это более удобно, чем наличие файла процессора для каждой формы на сайте. 10 форм 10 файлов обработки?
Или 10 форм 1 файл обработки.
Имейте скрытый процесс внутри вашей формы. IE
<form id = "login" action = "calls.php" method = "POST">
<input id="process" name="process" type="hidden" value="loginpr">
<input type="submit">
</form>
<form id = "logout" action = "calls.php" method= "POST">
<input id="process" name="process" type="hidden" value="logoutpr">
<input type="submit>
</form>
Тогда у вас есть ваш файл call.php, который переключается на основе вызванного процесса.
if(isset($_POST['process'])){
switch($_POST['process']) {
case 'loginpr':
loginfunction();
break;
case 'logoutpr':
logoutfunction();
break;
}
}
else { echo "The process is not linked within this form"; }
calls.php будет вашим файлом formproccessor.php
Вы можете добавить имя к кнопке отправки для каждой формы в html
<form method='post' ... >
....
<input type='submit' name='formA' ...>
</form>
<form method='post' ... >
....
<input type='submit' name='formB' ...>
</form>
Затем используйте что-то вроде этого в вашем PHP-коде для его обработки:
if(isset($_POST['formA'])){
formAfunction(); //handle formA
}elseif(isset($_POST['formB'])){
formBfunction(); //handle formB
} //.... etc
Вы можете увидеть тип ввода = скрытый, который содержит имя для каждой формы, затем в вашем процессоре формы, прочитайте имя, которое было отправлено, и перейдите к определенной части кода соответственно.