cyyself / vie-to-answer

用于小型多人的线下知识竞赛活动的在线抢答器
28 stars 14 forks source link

Windows 11 部署时遇到的一些坑 #4

Open ayumuate opened 1 year ago

ayumuate commented 1 year ago

使用环境

部署方式

  1. 克隆、解压仓库
  2. src的文件拖到父目录去
  3. 在 phpStudy 的“网站”选项卡里修改网站根目录

坑与解决的尝试

用户密码无法传入后台

访问admin.php时,在浏览器弹出的对话框里输入了用户密码,但是$_SERVER['PHP_AUTH_USER']$_SERVER['PHP_AUTH_PW']都是空的,无论如何重复都是如此。

所以,只能改用传统的方式验证用户:填写登录form,将登录数据存入session中。需要做这样的改动:

  1. admin.phpnewqd.php首行添加session_start();
  2. newqd.php里的auth函数里的用户名、密码定义式改成
    $username = $_SESSION['username'];
    $password = $_SESSION['password'];
  3. admin.php里的改成
    $username = $_SESSION['username'] = $_GET['username'];
    $password = $_SESSION['password'] = $_GET['password'];
  4. admin.php判定未登录后的部分改成
    ?><form>
    Username: <input name="username" />
    Password: <input type="password" name="password" />
    <button type="submit">Login</button>
    </form><?php
    exit();

默认密码不对

admin作为密码登不进去。

需要把init.php里的第8行改成'adminpass'=>md5('admin'),

不过呢

我还以为这是设置问题抢答的网站,原来只是抢资格的网站。

sltalex commented 4 months ago

$username = $_SESSION['username'] = $_GET['username']; $password = $_SESSION['password'] = $_GET['password']; 这段改成 if(!$_SESSION['username'])$_SESSION['username'] = $_GET['username']; if(!$_SESSION['password'])$_SESSION['password'] = $_GET['password']; $username = $_SESSION['username']; $password = $_SESSION['password']; 不然添加用户会失败。