更改管理员密码(需要制作表格)

时间:2011-07-19 06:13:03

标签: php admin change-password

我制作管理面板并遇到问题。 需要一些帮助才能在ac-config.php文件中创建更改密码的表单。

需要更改adminpassword的表单     $ adminpass =“adminpassword”;

三江源 等待有用的帮助。

AC-config.php中

<?php
//Admin Username and password
$adminuser = "admin";
$adminpass = "adminpassword";

//Error message variables
$not_logged_in_message_error_message = "Error<br><br>You Are not logged in. Go back and try again!<br><br>";
$incorrect_error_message = "Error<br><br>You have entered the incorrect username and/or password, please go back and try again!<br><br>";
$no_pass_or_user_error_message = "Error<br><br>You have either not entered a password or a username, please go back and try again!<br><br>";

//The first page you want the script to go to after creating those cookies (this page must include the validating code as seen in admin1.php)
$first_page = "ac-admin.php";
?>

这是我的登录验证 AC-的login.php

<?php
$formuser = $_POST["formuser"];
$formpass = $_POST["formpass"];
$formpass = md5($formpass);
if($formuser && $formpass) {
    setcookie ("cookuser");  
    setcookie ("cookpass");

    setcookie ("cookuser", $formuser);
    setcookie ("cookpass", $formpass);
    header("Location: ac-admin.php");
    }
    else {
        include("ac-config.php");
    echo($no_pass_or_user_error_message);
    }
?>

AC-admin.php的

<link href="css.css" rel="stylesheet" type="text/css" />
<?php error_reporting(E_ALL ^ E_NOTICE); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Admin</title>
</head>
<body>
<div id="content">
<div id="logo"></div>
<?php include("nav.php"); ?>
<?php
include("ac-config.php");
$cookuser = $_COOKIE["cookuser"];
$cookpass = $_COOKIE["cookpass"];
$adminpass = md5($adminpass);
$moderatorpass = md5($moderatorpass);
if($cookuser && $cookpass) {
    if(($cookuser == $adminuser || $cookuser == $moderatoruser) && ($cookpass == $adminpass || $cookpass == $moderatorpass)){
    //Any protected stuff you want goes in here!
    echo'<green>Successfully logged in!</green><br /><br />';
    }
    else{
    echo($incorrect_error_message);
    }
}
else{
echo($not_logged_in_message_error_message);
}
?>

This is Admin Page<br />
Anything want can place here<br />
<div id="footer">CopyRight 2011 - All Rights Reserved</div>
</div>
</body>
</html>

3 个答案:

答案 0 :(得分:0)

您在这里所做的就是我们将“硬编码”密码称为代码,尝试阅读有关如何使用databasesfile system的更多信息,然后您可以动态更改密码;

答案 1 :(得分:0)

file _ * _ contents()&amp; heredoc示例......

<?php 
//Replacing the values into the config
$config_file="";
if(isset($_POST['update']) && isset($_POST['user']) && isset($_POST['pass'])){
    $user = $_POST['user'];
    $pass = $_POST['pass'];

    $config_file = <<<CONFIG
<?php
//Admin Username and password
\$adminuser = "$user";
\$adminpass = "$pass";

//Error message variables
\$not_logged_in_message_error_message = "Error<br><br>You Are not logged in. Go back and try again!<br><br>";
\$incorrect_error_message = "Error<br><br>You have entered the incorrect username and/or password, please go back and try again!<br><br>";
\$no_pass_or_user_error_message = "Error<br><br>You have either not entered a password or a username, please go back and try again!<br><br>";

//The first page you want the script to go to after creating those cookies (this page must include the validating code as seen in admin1.php)
\$first_page = "ac-admin.php";
?>
CONFIG;
    file_put_contents('ac-config.php',$config_file);
    //Where to send after update
    header('Location: ./admin.php?page=changepass');
}

//Getting the values for the form
$config_file = file_get_contents('ac-config.php');
$match = preg_match('%adminuser = \"(.*?)\"%',$config_file,$confuser);
$match = preg_match('%adminpass = \"(.*?)\"%',$config_file,$confpass);
//$confuser[0] & $confpass[0] can be used to insert the values into the form
?>

<form method="POST" action="">
<input type="hidden" name="page" value="changepass">
<input type="hidden" name="update" value="go">
  <h1>Change Logins</h1>
  <p>Username:<input type="text" name="user" value="<?php echo $confuser[0];?>" size="20"></p>
  <p>Password:<input type="password" name="pass" value="<?php echo $confpass[0];?>" size="20"></p>
  <p><input type="submit" value="Submit"></p>
</form>

答案 2 :(得分:0)

创建另一个文件,我们将使用该文件包含密码的哈希版本。 (因为这是在另一个文件中,您可以根据需要读/写/编辑它,而不会有可能杀死正在使用它的PHP脚本。)

创建文件“ _something_random.txt

在该文件中粘贴以下内容(仅限以下内容 - 没有新行,空格或任何内容):

11982574c05624fd4946dda5298cf9db6c679ef4

这是“StackOverflow”的SHA1哈希 - 基本上是单词的单向加密。

在现有文件中:

“的 AC-config.php中

<?php
//Admin Username and password
$adminuser = "admin";
$adminhashfile = '_something_random.txt';

$adminhash = file_get_contents( $adminhashfile );
.... (rest of the file as-is) ...

“的 AC-login.php中

<?php
$formuser = $_POST["formuser"];
$formpass = sha1( $_POST["formpass"] );
if( $formuser==$adminuser && $formpass==$adminhash ){
  setcookie ("cookuser", $formuser);
  setcookie ("cookpass", $formpass);
  header( "Location: ac-admin.php" );
} else {
  include("ac-config.php");
  echo($no_pass_or_user_error_message);
}
?>

如果您想随时更改密码,可以手动计算新密码的SHA-1哈希并将其粘贴到“ _something_random.txt ”文件中,也可以创建一个PHP脚本(对您进行身份验证,然后已经登录)然后获取新密码并将其写入该文件中。

<?php

include("ac-config.php");

$newPassword = $_POST['newPassword'];

file_put_contents( $adminhashfile , sha1( $newPassword ) );