【问题标题】:PHP Form Handling fetching data from input values but not showing up on mysql databasePHP表单处理从输入值中获取数据但未显示在mysql数据库中
【发布时间】:2019-05-18 09:10:25
【问题描述】:

我对 PHP 和 SQL 比较陌生,所以您可以想象,在创建数据库和使用 SQL 和 PHP 添加到数据库时,我感到非常困惑。基本上,我现在只是在运行一个测试,看看我是否可以使用来自我的 html 的输入将值添加到我的数据库中的表中。我已经成功地将 PHP 文件连接到我的数据库和表,但是,当我检查我的表时,行是空白的。如果您可以查看我的代码以了解我做错了什么,我将不胜感激!

这是我的 HTML 表单

<form action='test.php' method='get'>    

  <input type='name' id='name' requiredtype='text'  name='name' 
  style='position: fixed; left: 200px; top:400px;'>

  <input type='email' id='email' requiredtype='text' name='email' 
  style='position: fixed; left: 200px; top:420px;'>

  <input type='submit' style='position: fixed; left: 200px; 
  top:440px;'>

</form>

这是我的 test.php 代码

<?php 
  $name = ($_POST['name']);
  $email = ($_POST['email']);


  $servername = "localhost";
  $username = "...";
  $password = "...";
  $dbname = "...";

  // Create connection
  $conn = new mysqli($servername, $username, $password, $dbname);
  // Check connection
  if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
  } else if($conn) {
      echo 'Good Work Your Connected!';
  }

  $sql = "INSERT INTO nameEmailTable (Name, Email)
  VALUES ('$name', '$email')";

  if ($conn->query($sql) === TRUE) {
     echo "New record created successfully";
  } else {
     echo "Error: " . $sql . "<br>" . $conn->error;
  } 

  $conn->close();
?>

连接工作正常,只是数据输入不起作用。

【问题讨论】:

  • 你永远不会定义$name$email。而且,即使你这样做了,你也会对 SQL 注入持开放态度。
  • @JohnConde 再次这只是一个测试,我知道这是不安全的事实。我在写 $_POST('name'); 时定义了 $name 和 $email;
  • 我可能是错的我不确定
  • @JohnConde 对不起,我才意识到。我已经修改过了,还是不行。
  • “只是一个测试”不是不安全代码的借口。作为测试“开始”的代码通常最终在现实世界中使用。无论您打算如何使用您的代码,始终从安全开始。

标签: php html mysql database forms


【解决方案1】:

更改表单中的第一行。

你有

method='get'

应该是

method='post'

然后你会将数据接收到 $_POST 数组中。

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    相关资源
    最近更新 更多