Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Как запретить отправлять пустой POST запрос?

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


     20.06.2014    Общие вопросы по PHP    2640

вопрос
Пытаюсь изучать 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
218

2172 | 930

narkom6n
2

51 | 4

narkom6n - 20 июня 2014 15:34 - Юзер

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

golden_eagle_god
26

247 | 34

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?

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

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