1

我一直在制作一个网站,该网站具有基于访问 php 中的 .txt 文件的用户帐户登录系统。我最初在免费的网络托管服务上测试了大部分代码并让用户帐户登录系统正常工作,但是当我尝试将其移至我自己的个人 apache 网络服务器时,我的一些 php 代码的功能似乎已经丢失,我不知道为什么。具体来说,我已将其范围缩小到不返回变量 $passfile 值的 splfileobject() 函数。我是否缺少一些执行此操作所必需的 php 库?当我查看它时,它说 php7.0 有 splfileobject() 和它的其他连接函数,作为标准 php 库的一部分。

这是我的一些代码

<?php
$username = $_POST["username"];
$password = $_POST["password"];

$account = file('usernames.txt');
$accountfix = str_replace("\n", "", $account);
$filepoint = array_search($username, $accountfix);

if ($filepoint !== false) {

    $passfile = new SplFileObject('passwords.txt', 'r+');

    $passfile->seek($filepoint);

    $potentialpass = str_replace("\n", "", $passfile);

// check password
if ($password === $potentialpass) {
$_SESSION["username"] = $username;
$_SESSION["password"] = $password;
$_SESSION["loggedin"] = true;
$_SESSION["filepoint"] = $filepoint;
print "Logged in succesfully!";
}
else{
    print "Incorrect Password";
}
}
else {
 print "Incorrect Username.";
}

?>

出于某种原因,打开这样的文件可以正常工作。

$account = file('textfiles/usernames.txt');

但是,我希望能够搜索到密码文件中的特定点,该点具有与用户名文件并行的数据以减少计算时间,并且必须使用 splfileobject 来执行此操作。

谢谢

4

1 回答 1

0

我解决了这个问题,显然需要授予网络服务器读取和写入 .txt 文件的权限。我从未收到任何关于此的错误。我可以通过在 linux 终端中输入以下命令来授予它这样做的权限。

sudo chown -R www-data /var/www
sudo chmod -R u=rwx /var/www

非常感谢 ubuntuforums.org 上的 beno1990 这是我在上面找到的线程, https: //ubuntuforums.org/showthread.php?t=1089334

于 2017-12-27T20:07:48.450 回答