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

如何在HTML/PHP修改密码表单中展示已登录用户的头像

修复方案

核心问题

你当前代码只走else分支的根本原因是页面顶部未启动session:PHP的$_SESSION全局变量需要在所有内容输出前调用session_start()才会生效,未启动时isset($_SESSION['username'])永远返回false,自然只会执行else逻辑。

其他优化点

  • 冗余判断简化:无需为每个用户名写三种大小写的匹配条件,统一转为小写后匹配即可,减少重复代码
  • 安全问题修复:密码输入框应使用type="password"避免明文展示输入内容,同时移除重复的id属性(HTML要求id全局唯一)
  • 逻辑补全:原有代码在用户名匹配不到预设列表时不会输出任何头像,新增默认分支兜底

修正后完整代码

<?php 
// 必须放在页面最顶部,所有HTML输出之前,不能有任何空格、换行在这句前面
session_start(); 
?>
<div class="container">
    <h1>CHANGE YOUR PASSWORD</h1>
    <div class="contact-form">
        <div class="profile-pic">
<?php
if (isset($_SESSION['username']) && !empty($_SESSION['username'])){
    // 统一转小写+去前后空格,避免大小写、空格导致匹配失败
    $username = strtolower(trim($_SESSION['username']));
    switch ($username) {
        case 'admin':
?>
            <img src="profile_pics/4.png" alt="User Icon"/>
<?php
            break;
        case 'muhammad azeem':
?>
            <img src="profile_pics/1.png" alt="User Icon"/>
<?php
            break;
        case 'muhammad adnan':
?>
            <img src="profile_pics/2.png" alt="User Icon"/>
<?php
            break;
        case 'saleem raza':
?>
            <img src="profile_pics/3.png" alt="User Icon"/>
<?php
            break;
        case 'abdul raheem':
?>
            <img src="profile_pics/5.png" alt="User Icon"/>
<?php
            break;
        // 新增默认分支,匹配不到预设用户名时显示默认头像
        default:
?>
            <img src="images/1.png" alt="User Icon"/>
<?php
    }
} else{
?>
            <img src="images/1.png" alt="User Icon"/>
<?php
}
?>
        </div>
        <div class="signin">
            <form action="process_change_password_form.php" method="POST">
                <input type="password" name="current_password" class="user" 
                        value="Current Password" 
                        onfocus="this.value = '';" 
                        onblur="if (this.value == '') {this.value = 'Current Password';}" 
                        id="current_pwd" required>
                <input type="password" name="new_password" class="user" 
                        value="New Password" 
                        onfocus="this.value = '';" 
                        onblur="if (this.value == '') {this.value = 'New Password';}" 
                        id="new_pwd" required>
                <input type="password" name="confirm_new_password" class="user" 
                        value="Confirm New Password" 
                        onfocus="this.value = '';" 
                        onblur="if (this.value == '') {this.value = 'Confirm Password';}" 
                        id="confirm_pwd" required>
                <input type="submit" value="Change Password" name="submit" />
            </form>
        </div>
    </div>
</div>
</body>
</html>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:06:06