html表单不连接,也不显示任何错误

xj3cbfub  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(375)

这个问题在这里已经有答案了

在mysql中何时使用单引号、双引号和反引号(13个答案)
两年前关门了。
我得到了这段代码(html表单)和另外一个文件(php逻辑),但是单击submit按钮什么也没有发生——也没有错误。有什么问题请帮忙。

  1. <html>
  2. <head>
  3. <title> Registeration Form</title>
  4. <link rel="stylesheet" type="text/css" href="design.css">
  5. </head>
  6. <body>
  7. <div class = "title"><h1>Register form </h1></div>
  8. <div class = "container">
  9. <div class="left"></div>
  10. <div class="right">
  11. <div class="formBox">
  12. <form action="" method="POST">
  13. <input type="text" id="fname" name="firstname" placeholder="First Name"/>
  14. <input type="text" id="lname" name="lastname" placeholder="Last Name"/>
  15. <input type="text" id="email" name="email" placeholder="Email"/>
  16. <input type="password" name="password1" placeholder="Password" />
  17. <input type="password" name="password2" placeholder="Confirm Password" />
  18. <input type="submit" name="submit">
  19. </form>
  20. </div>
  21. </div>
  22. </div>
  23. <?php
  24. if (isset($_POST["submit"]))
  25. {
  26. require'dbconnect.php';
  27. $firstname = $_POST["firstname"];
  28. $lastname = $_POST["lastname"];
  29. $email = $_POST["email"];
  30. $password = $_POST["password1"];
  31. $confirmPass = $_POST["password2"];
  32. $encryptedPassword = md5($password);
  33. mysqli_query($link,"insert into users(FirstName, LastName, Email, Password)
  34. values ($firstname, $lastname, $email,'$encryptedPassword')");
  35. echo "<br>";
  36. }
  37. ?>
  38. </body>
  39. </html>

下面是php代码--连接到sql。。。我在Windows10上使用wamp64位,但我有一个类似的设置,没有问题,但这段代码不工作。。。我尽力了。

  1. <?php
  2. //Hostname on which MYSQL is stored
  3. $hostname = "localhost";
  4. //MySQL server Username ... which is root
  5. $username = "root";
  6. // MySQL password which by default is empty
  7. $password = "";
  8. //Database name to which we connect...
  9. $dbname = "signup";
  10. // Connection to database;
  11. $link = mysqli_connect ($hostname,$username,$password);
  12. if (!$link){
  13. die ("Could not connect: ".mysql_error());
  14. }
  15. mysqli_select_db($link, $dbname);
  16. ?>
vuv7lop3

vuv7lop31#

编辑:
请参阅 mysqli_query 对学校的作用。它们概述了实现脚本的正确方法。你的html代码没有问题;那部分很好。这纯粹是与您的php有关。php不会捕捉到您提供的这个示例中的任何错误;但是,您需要使用 mysqli_error 功能。
另一件需要注意的事情是,在代码中不能用单引号封装值 ' . 这也可能导致mysql错误,因为我认为这是语法的一部分(整数除外)。
记住,在编写代码时,google是您与实际php文档最好的朋友。
以下是我将如何构建mysqli:

  1. <?php
  2. if (isset($_POST["submit"]))
  3. {
  4. require('dbconnect.php');
  5. $firstname = $_POST["firstname"];
  6. $lastname = $_POST["lastname"];
  7. $email = $_POST["email"];
  8. $password = $_POST["password1"];
  9. $confirmPass = $_POST["password2"];
  10. $encryptedPassword = md5($password);
  11. $sql = "INSERT INTO users(FirstName, LastName, Email, Password)
  12. VALUES ('$firstname', '$lastname', '$email', '$encryptedPassword')";
  13. if ($conn->query($sql) === TRUE) {
  14. echo "New record created successfully";
  15. } else {
  16. echo "Error: " . $sql . "<br>" . $conn->error;
  17. }
  18. }
  19. ?>

以及 dbconnect.php 文件到以下位置:

  1. <?php
  2. $servername = "localhost";
  3. $username = "root";
  4. $password = "";
  5. $dbname = "signup";
  6. // Create connection
  7. $conn = new mysqli($servername, $username, $password, $dbname);
  8. // Check connection
  9. if ($conn->connect_error) {
  10. die("Connection failed: " . $conn->connect_error);
  11. }
  12. ?>

我所做的是用另一种方式建立mysqli。中的值 INSERT 我用单引号括起来,还添加了一种方法,可以让您捕获mysql产生的任何错误。
如上所述; md5 不是保护密码的安全方法,而且脚本有sql注入的风险
希望这能给你指明正确的方向!

展开查看全部

相关问题