gpt4 book ai didi

PHP 表单不将值插入数据库

转载 作者:行者123 更新时间:2023-11-29 03:50:34 26 4
gpt4 key购买 nike

我创建的表单有问题(仅用于测试,我知道它容易受到 SQL 注入(inject)攻击)

基本上,表单不会插入到数据库中,但它似乎在脚本中返回 true。

代码如下:

表单.php

   <form action="create.php" method="post">
<p>Username: <input type="text" name="username" />
</p>
<p>Password: <input type="password" name="password" />
</p>
<p><input type="submit" value="Create" name= "cre" />
</p>
</form>

创建.php

<?php
session_start();
$dbname = "obsidian";

if(isset($_POST['cre'])){


$username = $_POST['username'];
$password = $_POST['password'];

$mysqli = new mysqli('localhost','admin1', 'password1','obsidian' ) or die('Failed to connect to DB' . $mysqli->error );

$hashed_password = password_hash($password,PASSWORD_DEFAULT);

$registerquery = "INSERT INTO users (username, hash) VALUES('$username', '$hashed_password')";
if($registerquery = true)
{
echo "<h1>Success</h1>";
echo "<p>Your account was successfully created. Please <a href=\"index.php\">click here to login</a>.</p>";
}
else
{
echo "<h1>Error</h1>";
echo "<p>Sorry, your registration failed. Please go back and try again.</p>";
}
}


?>

我收到了成功消息,但正如我所说,值没有插入到数据库中。

任何帮助都会很好。

最佳答案

这定义了一个查询,但运行它:

 $registerquery = "INSERT INTO users (username, hash) VALUES('$username', '$hashed_password')";

这不是成功的“测试”。它只是将变量设置为 true:

    if($registerquery = true)

= 是赋值,== 是相等性测试。

关于PHP 表单不将值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27279614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com