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

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

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

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

<html>
<head>
<title> Registeration Form</title>
<link rel="stylesheet" type="text/css" href="design.css">
</head>
<body>
<div class = "title"><h1>Register form </h1></div>
<div class = "container">
    <div class="left"></div>
    <div class="right">
        <div class="formBox">
            <form action="" method="POST">
                <input type="text" id="fname" name="firstname" placeholder="First Name"/>
                <input type="text" id="lname" name="lastname" placeholder="Last Name"/>
                <input type="text" id="email" name="email" placeholder="Email"/>
                <input type="password" name="password1" placeholder="Password" />
                <input type="password" name="password2" placeholder="Confirm Password" />
                <input type="submit" name="submit">

            </form>
        </div>
    </div>
</div>

<?php

if (isset($_POST["submit"]))
{
    require'dbconnect.php';

    $firstname          = $_POST["firstname"];
    $lastname           = $_POST["lastname"];
    $email              = $_POST["email"];
    $password           = $_POST["password1"];
    $confirmPass        = $_POST["password2"];
    $encryptedPassword  = md5($password);

    mysqli_query($link,"insert into users(FirstName, LastName, Email, Password)
                values ($firstname, $lastname, $email,'$encryptedPassword')");
    echo "<br>";
}

?>

</body>
</html>

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

<?php

//Hostname on which MYSQL is stored
$hostname = "localhost";  
//MySQL server Username ... which is root
$username = "root";
// MySQL password which by default is empty 
$password = "";
//Database name to which we connect... 
$dbname = "signup";

// Connection to database;

$link = mysqli_connect ($hostname,$username,$password);

if (!$link){

    die ("Could not connect: ".mysql_error());

}

mysqli_select_db($link, $dbname);

?>
vuv7lop3

vuv7lop31#

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

<?php
if (isset($_POST["submit"]))
{
    require('dbconnect.php');

    $firstname          = $_POST["firstname"];
    $lastname           = $_POST["lastname"];
    $email              = $_POST["email"];
    $password           = $_POST["password1"];
    $confirmPass        = $_POST["password2"];
    $encryptedPassword  = md5($password);

    $sql = "INSERT INTO users(FirstName, LastName, Email, Password)
                VALUES ('$firstname', '$lastname', '$email', '$encryptedPassword')";

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

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

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "signup";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

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

相关问题