我的条件不起作用(准备好的查询和 POST 方法 + isset 函数)
My condition is not working(prepared query and POST method + isset function)
我想验证用户是否在输入标签中输入了某些内容:
这是 index.php 页面:
<form action="email_validation.php" method="post">
<p>
Enter email : <input type="text" name="email" id="email" /><br />
<input type="submit" value="Envoyer" />
</p>
</form>
和 email_validation.php :
if(isset($_POST['email']))
{
$req = $bdd->prepare('INSERT INTO newsletter(email) VALUES(:email)');
$req->execute(array(
'email' => $entree = $_POST['email']
));
echo 'Email added';
}
else
{
echo 'Enter something';
}
我的 isset() 函数条件似乎不起作用...当我测试这个时,显示 "Email added" 即使我没有写任何东西并且添加了一个空白值数据库。当有人什么都不写时,我想显示 "Enter something" 并且不执行查询。我搜索了几个小时,但无法解决这个问题……提前致谢!
那是因为 isset
将检查变量是否已设置并且不是 null
。
如果您不输入电子邮件就发送表单,$_POST['email']
将包含空字符串,因此 isset
将 return true
.
您必须为此使用 empty
(或检查长度),另外检查电子邮件格式是否正确也是个好主意。
您没有验证 输入。您只是在测试该值是否存在。事实上,_POST 将包含 email 字段,值为空。为了验证它,代码应该是:
if(!empty($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$req....
} else {
echo "No valid email provided";
}
希望对您有所帮助。
我想验证用户是否在输入标签中输入了某些内容:
这是 index.php 页面:
<form action="email_validation.php" method="post">
<p>
Enter email : <input type="text" name="email" id="email" /><br />
<input type="submit" value="Envoyer" />
</p>
</form>
和 email_validation.php :
if(isset($_POST['email']))
{
$req = $bdd->prepare('INSERT INTO newsletter(email) VALUES(:email)');
$req->execute(array(
'email' => $entree = $_POST['email']
));
echo 'Email added';
}
else
{
echo 'Enter something';
}
我的 isset() 函数条件似乎不起作用...当我测试这个时,显示 "Email added" 即使我没有写任何东西并且添加了一个空白值数据库。当有人什么都不写时,我想显示 "Enter something" 并且不执行查询。我搜索了几个小时,但无法解决这个问题……提前致谢!
那是因为 isset
将检查变量是否已设置并且不是 null
。
如果您不输入电子邮件就发送表单,$_POST['email']
将包含空字符串,因此 isset
将 return true
.
您必须为此使用 empty
(或检查长度),另外检查电子邮件格式是否正确也是个好主意。
您没有验证 输入。您只是在测试该值是否存在。事实上,_POST 将包含 email 字段,值为空。为了验证它,代码应该是:
if(!empty($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$req....
} else {
echo "No valid email provided";
}
希望对您有所帮助。