【发布时间】:2013-11-29 13:10:50
【问题描述】:
我正在制作社区网站。
我目前正在选择更改您的密码。
但是,当我尝试使用它时,它不起作用..
这是为什么?我该如何解决?
我的代码:
Settings.php(我更改通行证的地方)
PHP:
<?php
error_reporting(E_ALL);
include_once('includes/connection.php');
include_once('includes/user.php');
if(isset($_SESSION['logged_in'])){
if(isset($_POST['oldpass']) and isset($_POST['newpass'])){
$name = $_COOKIE['name'];
$oldpass = md5($_POST['oldpass']);
$newpass = md5($_POST['newpass']);
$query = $pdo->prepare("SELECT * FROM users WHERE username=? AND password=?");
$query->bindValue(1, $name);
$query->bindValue(2, $oldpass);
$query->execute();
$num = $query->rowCount();
if($num==1){
$query = $pdo->prepare("UPDATE users SET password=? WHERE username=?");
$query->bindValue(1, $newpass);
$query->bindValue(2, $name);
$result = $query->execute();
if($result==1){
header('Location: logout.php');
}else{
echo "Something went wrong.";
}
}
}
}
?>
HTML:
<html>
<head>
<title>MackNet</title>
<link rel="stylesheet" type="text/css" href="assets/style.css">
</head>
<body>
<div id="main">
<?php
$name = $_COOKIE['name'];
$pass = $_COOKIE['pass'];
$user = new User();
$row = $user->fetch_all($name, $pass);
?>
<div id="toolbar">
<?php
echo " <a href='main.php'>Home</a> ";
echo " <a href='logout.php'>Logout</a> ";
echo " <a href='settings.php'>Settings</a> ";
if($row['group'] == 2){
echo " <a href='users.php'>Manage Users</a> ";
}
?>
<hr>
</div>
<form action="settings.php" method="POST">
<input type="password" name="oldpass" placeholder="Old Password">
<input type="password" name="newpass" placeholder="New Password">
<input type="submit" value="Change password">
</form>
</div>
</body>
</html>
如果您需要更多代码,请告诉我。
谢谢 // Mackan90095
【问题讨论】:
-
如果您实际上依赖于您网站上的
_COOKIE['name'],请注意,任何人都可以随时更改其 cookie。 -
是的,但我在设置页面上有密码验证。而且,cookie 有什么危害?
-
但是您也将密码保存在 cookie 中?那么每个有数据包检查器的人都可以看到明文密码?
-
不,密码是 md5'd
-
你有include_once('includes/connection.php'); include_once('includes/user.php');在 HTML 主文件中?