Как остановить отправку пустых сообщений в базу данных?

Я новичок в PHP. Я добавил команду isset, и форма работает с базой данных, но каждый раз, когда я поднимаю эту страницу, она автоматически отправляет пустую запись в мою базу данных. Как я могу сделать так, чтобы он выполнялся только через команды PHP, если ввод введен, а пользователь нажимает «Отправить»?

<?php
$handle = isset($_POST['handle']);
$address = isset($_POST['address']);
$code = isset($_POST['code']);

$rrr=mysqli_connect("localhost","knock_knock","whosthere","1");
if (mysqli_connect_errno()) {
echo "Connection to DB failed" . mysqli_connect_error();
}

$handle2 = mysqli_real_escape_string($rrr, $handle);
$address2 = mysqli_real_escape_string($rrr, $address);
$code2 = mysqli_real_escape_string($rrr, $code);

if(empty($handle)){
echo "Handle can not be empty";
}

$sql="INSERT INTO players (Handle, Address, Code)
VALUES ('$handle2', '$address2', '$code2')";

if (!mysqli_query($rrr,$sql)) {
die ('Error: ' . mysqli_error($rrr));
}
echo "Record added";

mysqli_close($rrr);
?>

0

Решение

$handle = isset($_POST['handle']);
$address = isset($_POST['address']);
$code = isset($_POST['code']);

приведенный выше код будет хранить true во всех переменных, если set.it должен быть —

$handle = isset($_POST['handle']) ? $_POST['handle'] : false;
$address = isset($_POST['address']) ? $_POST['address'] : false;
$code = isset($_POST['code']) ? $_POST['code'] : false;

и весь код, который должен быть выполнен после отправки формы, должен быть помещен в —

if (isset($_POST['submit'])) {
//code to be executed
}

submit или какое-либо поле для кнопки отправки. а затем чеки должны быть добавлены для empty ценности.

Вы должны остановить выполнение или перенаправить.

if(empty($handle)){
header('location:page.php?msg=yourmessage');
exit;
}

или же

if(empty($handle)){
echo "Handle can not be empty";
exit;
}
4

Другие решения

Поместите простое условие if наверх

$handle =$_POST['handle'];
if(empty(isset($handle)) || $handle=='')
{
echo "Handle can not be empty";
}
else
{
//Your stuff
}
0

По вопросам рекламы [email protected]