PHP插入和表单验证问题
我有一个简单的表单,它在不同的页面上提交,但它不在这里,一直说你需要输入姓名和电子邮件 我重复了姓名和电子邮件变量,但仍然是一样的PHP插入和表单验证问题,php,mysql,Php,Mysql,我有一个简单的表单,它在不同的页面上提交,但它不在这里,一直说你需要输入姓名和电子邮件 我重复了姓名和电子邮件变量,但仍然是一样的 <?php if (isset($_POST['subs'])) { $name=mysql_real_escape_string($_POST['name']); $email=mysql_real_escape_string($_POST['email']); if (empty($name) |
<?php
if (isset($_POST['subs'])) {
$name=mysql_real_escape_string($_POST['name']);
$email=mysql_real_escape_string($_POST['email']);
if (empty($name) || empty($email)) {
echo"<div class='alert alert-danger'>Please enter both name and email address</div>";}
else {
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo"<div class='alert alert-danger'>Invalid email address, please enter a correct email address!</div>";
}
else {
$insert=mysql_query("INSERT INTO subs (first_name, email) VALUES ('$name','$email')");
if ($insert) {
echo"<div class='alert alert-success'>Thank you for subscribing wit us</div>";}
}
}
}
?>
<div class="subs-mobile">
<form class="form-inline" role="form" method="post" action="<?php $_PHP_SELF ?>">
<div class="form-group">
<input type="text" class="form-control border-radius-zero" id="exampleInputPassword2" placeholder="First Name" name="name">
</div>
<div class="form-group">
<input type="email" class="form-control border-radius-zero" id="exampleInputEmail2" placeholder="Email" name="email">
</div>
<button type="submit" class="btn btn-primary border-radius-zero" name="subs">Subscribe</button>
</form>
首先,您是说您的页面在不同的页面提交..但在表单操作字段中,您使用的是$\u SERVER['PHP\u SELF']
这意味着您提交的数据将在同一页面上发送。您可以将操作字段更改为所需页面,也可以将脚本从其他文件粘贴到制作表单的脚本中。。
第二件事,在isset函数的脚本开头,检查是否设置了$\u POST['name']
和$\u POST['email']
<?php
if(isset($_POST['name'], $_POST['email']))
{
$name=mysql_real_escape_string($_POST['name']);
$email=mysql_real_escape_string($_POST['email']);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo"<div class='alert alert-danger'>Invalid email address, please enter a correct email address!</div>";
else {
$insert=mysql_query("INSERT INTO subs (first_name, email) VALUES ('$name','$email')");
if ($insert) {echo"<div class='alert alert-success'>Thank you for subscribing wit us</div>";}
}
}
?>
<body>
<div class="subs-mobile">
<form class="form-inline" role="form" method="post" action="<?php $_PHP_SELF ?>">
<div class="form-group">
<input type="text" class="form-control border-radius-zero" id="exampleInputPassword2" placeholder="First Name" name="name">
</div>
<div class="form-group">
<input type="email" class="form-control border-radius-zero" id="exampleInputEmail2" placeholder="Email" name="email">
</div>
<button type="submit" class="btn btn-primary border-radius-zero" name="subs">Subscribe</button>
</form>
</body>
您收到了吗请同时输入姓名和电子邮件地址
?收到了,总是出现var\u dump($name,$email)
-false,false
?两个bool(false)bool(false)isuue都是mysql\u real\u escape\u字符串,但为什么?现在我可以获得名称和电子邮件,但它不插入$insert=mysql\u查询(“插入到subs(first\u name,email)值('$name','$email')@user3482036确保已连接数据库,并且查询中提供的字段名与数据库列匹配。。