несколько форм, обращающихся к одной странице PHP и проверке формы - PullRequest
1 голос
/ 15 января 2012

Прежде всего, со мной нет кода ... Я собираю необходимые данные, чтобы начать проект.

У меня будет несколько <form> с на сайте, которые все связаны ста же страница PHP, скажем, например, для отправки электронной почты или добавления данных в БД.

Теперь я могу создавать формы и страницу PHP для отправки почты или добавления данных в БД.НО здесь есть вопрос, о котором мне нужно знать ... Если какая-либо из форм вызывает страницу PHP, как я могу узнать, какая из них действовала соответствующим образом?

Кроме того, лучше ли выполнять двойную проверкук форме?Я имею в виду, на стороне клиента, а затем на стороне сервера?

Поскольку речь идет о проверке, лучше ли быть на стороне клиента JS или JQuery (я могу написать оба)?А что касается БД, как я могу ее защитить? !!Я имею в виду, как я могу гарантировать, что пользователь не введет код PHP, чтобы все испортить, и как я могу его обнаружить.

Я знаю, что это похоже на общий вопрос или обсуждение, но вы будетепомогать мне многоИ, честно говоря, я использую этот веб-сайт уже около 3 лет, и вы, ребята, помогли мне сдать мой дипломный проект с отличной оценкой :) Так что я готов найти ответы здесь:)

Спасибо всем.

Ответы [ 3 ]

1 голос
/ 15 января 2012

Если у вас есть несколько форм, отправляющих на одну и ту же страницу, вы можете идентифицировать формы, отправив по скрытому полю данных, например:

<input type="hidden" name="form_name" value="001" />

Проверка ввода должна ВСЕГДА происходить на сервере. Проверка на стороне клиента хороша для ваших пользователей, но на стороне сервера это необходимо.

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

1 голос
/ 15 января 2012

Вы можете использовать скрытые поля в вашей форме, чтобы указать, какое действие должно иметь место. Вы также можете просто включить параметр в атрибут ACTION формы. Тот же результат в любом случае.

<form>
  <input type='hidden' name='mode' value='save'>
  <!-- More HTML --> 
</form>

<form>
  <input type='hidden' name='mode' value='delete'>
  <!-- More HTML --> 
</form>

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

В целях безопасности убедитесь, что вы используете PDO или расширение Mysqli для создания своих запросов. Золотое правило - избегать ввода и кодировать вывод. Вы можете использовать такие методы, как htmlspecialchars () для кодирования вашего вывода. И использовать методы фильтра PHP. Это вам очень поможет - http://php.net/manual/en/book.filter.php. Кроме того, при работе с проверкой обычно лучше использовать белый, а не черный список.

1 голос
/ 15 января 2012

В каждом есть скрытое поле, чтобы определить, что это за действие ...

<input type="hidden" name="action" value="cart" />

ИЛИ

<input type="hidden" name="action" value="purchase" />
...