我在这个网站上看到了很多类似的问题,但我还没有找到适合我的代码的解决方案。我确实使用了 if(isset($_POST['submit'])) {} 和 if 语句来尝试阻止我的脚本插入空表单字段数据,但它还没有起作用。只是一个注释;我知道我的代码中存在安全缺陷。我只是想保持简单,这样每个人都可以更轻松地帮助我:)这就是我所拥有的:
<body>
<?php
if (isset($_POST['submit'])) {
$dbc = mysqli_connect('localhost', 'username', 'password', 'bcd_email_app')
or die('Error connecting to MySQL server');
$query = "INSERT INTO email_subscribers (name, username, email)" .
"VALUES ('$name', '$username', '$email')";
mysqli_query($dbc, $query)
or die('Error querying database');
echo 'Thanks for subscribing '. $username .'!!<br />';
echo '<a href="index.php">Go Back</a>';
mysqli_close($dbc);
$name = $_POST['name'];
$username = $_POST['username'];
$email = $_POST['email'];
$output_form = false;
//checking that all form fields have been filled out and if not displaying the form with sticky data
if (empty($name) && (empty($username) && (empty($email)))) {
echo 'Please enter your information for all fields. <br />';
$output_form = true;
}
if (empty($name) && (!empty($username) && (!empty($email)))) {
echo 'Please enter your name. <br />';
$output_form = true;
}
if (!empty($name) && (empty($username) && (!empty($email)))) {
echo 'Please enter your username. <br />';
$output_form = true;
}
if (!empty($name) && (!empty($username) && (empty($email)))) {
echo 'Please enter your email address. <br />';
$output_form = true;
}
if (empty($name) && (empty($username) && (!empty($email)))) {
echo 'Please enter your name and username. <br />';
$output_form = true;
}
if (empty($name) && (!empty($username) && (empty($email)))) {
echo 'Please enter your name and email address. <br />';
$output_form = true;
}
if (!empty($name) && (empty($username) && (empty($email)))) {
echo 'Please enter your username and email. <br />';
$output_form = true;
}
} else {
$output_form = true;
}
if ($output_form) {
?>
在此处形成标记
</body>
我还尝试说 name && username && email 是否不为空,如下所示:
if (isset($_POST['submit'])) && (!empty($_POST['name'])) && (!empty($_POST['username'])) && (!empty($_POST['email']))) {...}
随着帖子提交,这没有做任何事情。有解决办法吗?我这样做完全错了吗?哈哈
预先感谢您的帮助!
最佳答案
如果将数据插入数据库后进行验证,如何期望不插入空数据?
首先验证数据,如果数据为空则显示错误,只有验证成功后才将其插入数据库。
关于php - MySQL 和 PHP 代码允许空表单字段数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40735787/