Я новичок в 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);
?>
$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;
}
Поместите простое условие if наверх
$handle =$_POST['handle'];
if(empty(isset($handle)) || $handle=='')
{
echo "Handle can not be empty";
}
else
{
//Your stuff
}