Как проверить наличие переменной в 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 "Заполните все поля";
}
?>


Изначально я делал так что переменные объявлялись только после проверки.
В чем проблема и почему так происходит?
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro Куратор тега PHP
опечатка в имени переменной. Потеряна одна буква "r"
$fistname = $_POST['firstname']; 
!empty($firstname)


$fistname
$firstname

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

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

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

Войти через центр авторизации
Похожие вопросы