if(isset($_POST['Submit'])){ 不工作

if(isset($_POST['Submit'])){ Not working

我正在尝试 POST 将用户输入的数据输入到我的数据库中,但是我的 if 语句无法确保只有在按下提交按钮后才会发生这种情况。请帮忙!

下面的代码..

<form>
    <form method="post" action="register.php" >
  <table align="center">
    <tr>
      <td align="right">First Name:</td>
      <td align="left"><input type="text" name="FirstName"></td>
    </tr>
    <tr>
      <td align="right">Last Name:</td>
      <td align="left"><input type="text" name="LastName"></td>
    </tr>
    <tr>
      <td align="right">Email:</td>
      <td align="left"><input type="text" name="Email" /></td>
    </tr>
    <tr>
      <td align="right">Password:</td>
      <td align="left"><input type="password" name="Password"></td>
    </tr>
    <tr>
      <td align="right">Gender:</td>
      <td align="left"><input type="text" name="Gender"></td>
    </tr>
    <tr>
      <td align="right">Age:</td>
      <td align="left"><input type="text" name="Age"></td>
    </tr>
  </table>
<input type="submit" value="Submit" name="Submit">
</form>

<?php include ("registersql.php"); ?>

我的regstersql.php

<?php
//include connection
 include ("connection.php");
//has form been submitted?
if(isset($_POST['Submit'])){
    $FirstName=$_POST['FirstName'];
    $LastName=$_POST['LastName'];
    $Email=$_POST['Email'];
    $Password=$_POST['Password'];
    $Gender=$_POST['Gender'];
    $Age=$_POST['Age'];
//Insert data
$query = "INSERT INTO Customers
(CustomerID, FirstName, LastName, Email, Password, Gender,Age)
VALUES
('$FirstName','$LastName','$Email','$Password','$Gender','$Age')";
mysqli_query($connection,$query);
} else
{
    echo "Error";
}

?>

isset() 告诉您变量是否已定义,而不是是否已填充。

尝试这样的事情:

if(isset($_POST['submit']) && !empty($_POST['submit'])) {
    // there is something in the field, do stuff
} else {
    // trigger error
}

您需要从

更改
<form method="post" action="register.php" >

<form method="post" action="" >  //Sends data on same page. There is no register.php exist.

customerid 值传递问题。

/Insert data
$query = "INSERT INTO Customers
(CustomerID, FirstName, LastName, Email, Password, Gender,Age)
VALUES
('$FirstName','$LastName','$Email','$Password','$Gender','$Age')";
mysqli_query($connection,$query);
} else
{
    echo "Error";
}

?>

如果 customerid 自动提及空 ' ',请参阅上面的代码,但您没有提及任何内容,因此它不会插入,如果您提及用户端成功消息将显示但不会插入数据。

像这样使用:

values('','$FirstName','$LastName','$Email','$Password','$Gender','$Age')";

你做错了两件事:

1) 您使用了两次标签:

<form method="post" action="register.php" >

有一个结束标签

2) 不要指定您可以使用 require 或 require_once ('yourfile.php') 的文件位置,在这个文件中您可以使用 [=11= 处理您的 POST 提交] 然后有你想要的。

您使用了两次表单标签

删除最上面的一个,表格将起作用。

我知道这是一个非常古老的 post 但我想它可能会有所帮助。