Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP插入和表单验证问题_Php_Mysql - Fatal编程技术网

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确保已连接数据库,并且查询中提供的字段名与数据库列匹配。。