Переключение форм со значением $ _GET или Создание отдельной страницы для каждой формы в PHP - PullRequest
0 голосов
/ 17 декабря 2011

Если я переключаю формы, я буду использовать это в index.php

switch($_GET["action"]) {
case "login": include "login.php";break; //loads login form 
case "register": include "register.php";break; //loads register form 
}

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

для входа в систему пользователь должен ввести:

index.php?action="login"

или

login.php

Какой из них более распространен и практичен?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2011

Вероятно, наиболее распространенной практикой является использование отдельной функции для обработки каждого типа сообщения формы.Их вы можете хранить в одном файле PHP или нескольких файлах и включать в свои страницы.Это нормально, но не так часто, чтобы выборочно включать различные сценарии php.

Для вашего макета возможны различные решения, каждое из которых имеет свои преимущества и недостатки, в зависимости от вашего веб-сайта или приложения, но трудно сказать, что лучше, чем никогда не иметь дублирующий код.

0 голосов
/ 17 декабря 2011

Если вы выберете первый вариант, вам нужно будет подумать, что произойдет, если пользователь посетит эти страницы напрямую (например, login.php): доступны ли эти включенные файлы через браузер? Если это так, вы можете разместить их вне веб-каталога и в их собственной папке. Если это невозможно, вы можете выполнить некоторые проверки в сценариях login.php / register.php:

if (__FILE__ === $_SERVER['SCRIPT_FILENAME']) {
     // user visited script directly, rather than included
}

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

Резюме: Я бы посоветовал добавлять простые include вызовы для сценариев верхнего и нижнего колонтитула на каждой странице, если только вы не можете поместить включенные файлы где-нибудь за пределами корневого веб-узла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...