gpt4 book ai didi

php - mysql_query 不返回密码

转载 作者:行者123 更新时间:2023-11-29 05:08:26 25 4
gpt4 key购买 nike

为什么我没有使用此代码在页面上显示我的密码?

我正在尝试制作一个设置页面,以便我可以更改我的密码。

我没有收到任何错误;它什么都不做。

<html>
<head>
<title>Settings</title>
<link rel="stylesheet" href="/static/bootstrap.css">
<link rel="stylesheet" href="/static/firstindex.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="favicon.png" rel="icon"/>
</head>
<?php
session_start(); //starts the session
$user = $_SESSION['user'];
$result = mysql_query("SELECT password FROM users WHERE user_id='$user'");
if(isset($_SESSION['user']) && $_SESSION['user']){
echo"
<body>
<h1>Edit Profile</h1>
<p>Hello $user</p>
<p>Password $result</p>
<form action='settings.php' method='post' class='form1'>
<input class='form-control' placeholder='Old Password' type='password' name='password' required='required' /> <br/>
<input class='form-control' placeholder='New Password' type='password' name='newpassword' /> <br/>
<input class='form-control' placeholder='New Password' type='password' name='confirmnewpassword' /> <br/>
<input type='hidden' name='night' value='0'/>
<p><input type='checkbox' name='night' value='1'/> Turn on night theme for account</p>
<input type='submit' class='btn btn-info' value='Change Settings'/>
</form>
";
}
else {
Print '<script>window.location.assign("login.php");</script>';
}
?>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
$password = mysql_real_escape_string($_POST['password']);
$newPassword = mysql_real_escape_string($_POST['newpassword']);
$confirmNewPassword = mysql_real_escape_string($_POST['confirmnewpassword']);
$nightTheme =(int)mysql_real_escape_string($_POST['night']);
mysql_connect("localhost", "root","") or die(mysql_error()); //Connect to server
mysql_select_db("mvstudio") or die("Cannot connect to database"); //Connect to database
$result = mysql_query("SELECT password FROM users WHERE user_id='$user'");
$bool = true;
echo "$result";
}
?>
</body>
</html>

最佳答案

首先,mysql_* 已弃用,改用 mysqli_* 或 PDO。

其次,你永远不应该以明文形式存储密码,这是一个主要的安全问题,它们需要安全地散列,即使你需要在某些时候(例如在密码管理系统中)访问它们,它们也应该在至少要加密。

第三,$result 包含一个 mysql 响应资源,而不是一个字符串。您需要这样做才能将其转换为关联数组:

$result = mysql_query("SELECT password FROM users WHERE user_id='$user'");
$password = mysql_fetch_assoc($result);
$password = $password['password'];

$password 现在包含密码。

最后,除非您在执行查询之前建立 MySQL 连接,否则之前的方法将不起作用,目前您的连接是在执行查询之后建立的。

关于php - mysql_query 不返回密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43926985/

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