2012-04-11 2 views
2

Итак, у меня есть пользовательский веб-сайт. Пользователи могут публиковать все, что захотят, даже картинку. Теперь я использую PHP для хранения сообщений в моей таблице базы данных, а PHP и MySQL - для отображения сообщений в профиле каждого пользователя. Теперь я хочу дать пользователю возможность удалить сообщение, которое они загружают, и я хочу использовать $ _POST для этого, а не $ _GET. Я уже знаю, как это сделать с помощью $ _GET. Как я могу использовать $ _POST? Могу ли я просто иметь скрытое поле формы рядом с каждым сообщением пользователя и иметь скрытое поле, в котором находится post_id, и когда пользователь нажимает кнопку отправки «удалить сообщение», он вызывает сценарий удаления post.php? Это хороший способ сделать это через скрытое поле формы?

+0

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

+1

Да, это хороший способ. – Jon

+1

Вы пытаетесь создать интерфейс REST? Если да, вы должны использовать DELETE, если нет, почему бы не передать параметр URL и использовать '$ _GET'? Помимо использования скрытого поля формы, вы также можете выполнить запрос POST с использованием JavaScript. –

ответ

2

Вы бы просто установить ваши form «ы method равна post, то есть какой-то input типа hidden с value Ид для удаления.

Затем, в PHP, получите доступ к этому с помощью $_POST, а не $_GET.

Обязательно проверьте идентификатор удаления, чтобы пользователь не просто редактировал HTML с помощью FireBug и так далее.

+2

Валидация важна: нет никакой гарантии, что данные, которые были отправлены, даже поступают из вашей HTML-формы. – horatio

Смежные вопросы