Задать вопрос

Как проверить наличие переменной в POST?

У меня есть форма и ajax код которая все это отправляет, но при отправке должна быть проверка на наличие данных в полях.
Проблема в том, что проверка isset(), empty() не работает!(
<?php 

$host = "localhost";
$login = "root";
$password = "";
$database = "goods_db";

$link = mysqli_connect($host, $login, $password, $database)
		or die ("Ошибка " . mysqli_error($link));

$fistname = $_POST['firstname'];
$secondname = $_POST['secondname'];
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];

if (!empty($firstname)) {
	$sql = "INSERT INTO `users` (`id`, `firstname`, `secondname`, `login`, `email`, `password`) VALUES (NULL, '$firstname', '$secondname', '$username', '$email', '$password');";

	mysqli_query($link, $sql);
	echo "Данные отправлены";
}
else {
	echo "Заполните все поля";
}
?>


Изначально я делал так что переменные объявлялись только после проверки.
В чем проблема и почему так происходит?
  • Вопрос задан
  • 2927 просмотров
Подписаться 1 Простой 15 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
опечатка в имени переменной. Потеряна одна буква "r"
$fistname = $_POST['firstname']; 
!empty($firstname)


$fistname
$firstname

А проверка через isset() + empty()
$firstname = isset($_POST['firstname']) ? $_POST['firstname'] : '';
if(!empty($firstname))
{ 
 ///
}
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Возможно, тебе будет интересно узнать, что опечатка в переменнй $fistname - это наименьшая проблема в твоем коде. В нем кривая каждая строчка, за исключением, пожалуй, первых четырех. Хотя нет, они тоже неправилные. Вместо них должен быть инклюд.

А проверять наличие переменной не нужно. Переменная в посте всегда есть. Если надо проверить на пустоту, то это делается совсем другими функциями.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽