You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为这段PHP页面密码保护代码添加多个可用密码?

修改步骤

你需要修改代码中的两处判断逻辑,把单一密码验证改成多密码验证:

  1. 修改登录提交时的密码验证
    找到这段代码:
if($pass=="1234")
{
 $_SESSION['password']=$pass;
}

改成用数组存储允许的密码,再检查提交的密码是否在数组内:

// 定义允许的密码列表,把你要加的3个密码填在这里
$allowed_passwords = ["1234", "5678", "abcd", "wxyz"];
if(in_array($pass, $allowed_passwords))
{
 $_SESSION['password']=$pass;
}
  1. 修改页面加载时的会话验证
    找到这段代码:
if($_SESSION['password']=="1234")
{

同样改成检查会话中的密码是否在允许的数组里(额外加isset是避免未登录时变量不存在报错):

$allowed_passwords = ["1234", "5678", "abcd", "wxyz"];
if(isset($_SESSION['password']) && in_array($_SESSION['password'], $allowed_passwords))
{
修改后的完整代码
<?php
session_start();

// 定义所有允许的密码
$allowed_passwords = ["1234", "5678", "abcd", "wxyz"];

if(isset($_POST['submit_pass']) && $_POST['pass'])
{
 $pass=$_POST['pass'];
 if(in_array($pass, $allowed_passwords))
 {
  $_SESSION['password']=$pass;
 }
 else
 {
  $error="Incorrect Password";
 }
}

if(isset($_POST['page_logout']))
{
 unset($_SESSION['password']);
}
?>

<?php
// 验证会话中的密码是否有效
if(isset($_SESSION['password']) && in_array($_SESSION['password'], $allowed_passwords))
{

?>
    
<form method="post" action="" id="logout_form">
    <input type="submit" name="page_logout" value="Logout">
</form>

    
   <?php
}
else
{
 ?>     
         <form method="post" action="">
             <div>Protected Content</div>
             <br />
             <input type="password" name="pass" placeholder="Type your password">
            <input type="submit" name="submit_pass" value="Login">
            <br /><br />
            <div><?php echo isset($error) ? $error : '';?></div>
        </form>

   <?php
}
?>

(注:优化了错误信息输出,避免未提交时$error未定义的警告)

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:55:18