splfileobject不能使用php7.0在ubuntu 16.04 apache webserver上工作

问题描述 投票:1回答:1

我一直在建立一个具有用户帐户登录系统的网站,该系统基于访问php中的.txt文件。我最初在免费的网络托管服务上测试了大部分代码,并且使用户帐户登录系统正常运行,但是当我尝试将其移动到我自己的个人apache web服务器时,我的一些PHP代码的功能似乎已经迷路了,我不知道为什么。具体来说,我已将其缩小到splfileobject()函数,不返回变量$ passfile的值。我错过了一些必要的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来执行此操作。

谢谢

php apache ubuntu splfileobject
1个回答
0
投票

我修复了问题,显然需要给web服务器读取和写入.txt文件的权限。我从来没有收到任何关于此的错误。我能够通过以下命令将其授权给linux终端。

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

非常感谢beno1990在ubuntuforums.org继承人我发现它的线程,https://ubuntuforums.org/showthread.php?t=1089334

© www.soinside.com 2019 - 2024. All rights reserved.