Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как запретить отправлять пустой POST запрос?

Как запретить отправлять пустой POST запрос?


     20.06.2014    Все вопросы » Общие вопросы по PHP    4965

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

Вот код:

Ответил: golden_eagle_god


Как я думаю, лучше шаблон подключать через TPL, но всё-же...

У вас отправка происходит потому, что действие выполняется при загрузке страницы, а не при посте.
Запрос лучше выполнить после проверки пост-данных

if($login AND $pass){ //Проверяю наличие Логина и Пароля
$query  = "INSERT INTO $table SET login='$login', password='$pass'";

mysql_query($query) or die(mysql_error()); //Отправляю данные
    
mysql_close();

}


И подключение к базе данных меня как то смущает, не легче использовать запись типа:

$db->super_query("INSERT INTO $table SET login='{$login}', password='{$pass}'");

3 комментария

vitnet
PHP-developer

narkom6n
Юзер

narkom6n - 20 июня 2014 15:34 -

А как сделать проверку, допустим если в базе данных уже существует такой логин, то запрещать отправку запроса?

golden_eagle_god
Юзер

golden_eagle_god - 21 июня 2014 12:39 -

Примерно так, я не тестировал, но должно работать:


if($login AND $pass){ //Проверяю наличие переданного Логина и Пароля

$request = $db->super_query("SELECT * FROM {$table} WHERE login='{$login}'"); //Проверяю наличие юзера

if($request == TRUE){ //Если запрос вернул не пустой результат, то выдаём ошибку
msgbox('Ошибка','Юзер с логином <b>{$login}</b> уже существует.');
}else{
$db->super_query("INSERT INTO $table SET login='{$login}', password='{$pass}'"); // Добавляю юзера в БД
}



А вы DLE используете или другую CMS?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх