Что было бы хорошим способом вызвать действие (поиск в базе данных / изменения в базе данных) с помощью HTML-формы?

0

У меня есть два разных типа действий, которые я запускаю по форме html:

  1. db search (например, searchUser)
  2. db (например, createNewUser, updateUserData)

Теперь есть разные способы инициировать действия

2.1 - поместите параметр действия в строку запроса

<form action="index.php?page_id=xx&user_id=yy&action=updateUserData" method="post">
  <input ... />
</form>

2.2 - создать поле ввода с именем action

<form action="index.php?page_id=xx&user_id=yy" method="post">
  <input name="action" value="updateUserData" type="hidden" />
  <input ... />
</form>

(Для формы поиска эти два разных способа не имеют значения, потому что там я использую метод = "получить")

Теперь мой вопрос: что будет лучше - 2.1 или 2.2

Я склонен к 2.2, потому что я не хочу, чтобы действия запускались по URL (например, закладка, ссылка)

Теги:
forms
http-get
http-post

2 ответа

1
Лучший ответ

так как в обоих случаях вы используете метод = post, идите с версией 2.

  1. URL-адреса имеют максимальную длину, с которой вы могли бы столкнуться со многими параметрами (несколько тысяч символов)
  2. Список полей ввода проще манипулировать с помощью javascript (jQuery и так далее)
  3. Обычный пользователь не видит всех этих уродливых URL-адресов

Просто помните: скрытые поля скрыты, но для них требуется несколько секунд. Поэтому никогда не доверяйте данным пользователя и всегда избегайте данных. "потому что я не хочу, чтобы действия вызывались по URL" Всегда предполагайте, что все пользователи злы. Если эта ссылка может нанести урон, так может быть и форма. Используйте некоторую аутентификацию.

0

2.2 было бы лучше, если вы не хотите запускать события по URL-адресу.

    if(isset($_POST['action'])){ //If form has been submitted

        $userid=$_POST['userid'];

        //Rest of code to add user

    }else{

       //Form not submitted

    }
  • 0
    причина, по которой я помещаю page_id и user_id в строку запроса, заключается в том, что именно так я обычно получаю доступ к страницам
  • 1
    Использование index.php?page_id=xx&user_id=yy или index.php полностью зависит от требований OP.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню