簡體   English   中英

splfileobject在php7.0的ubuntu 16.04 apache webserver上不起作用

[英]splfileobject not working on ubuntu 16.04 apache webserver with php7.0

我一直在做一個網站,該網站具有基於php中的.txt文件訪問權限的用戶帳戶登錄系統。 我最初在免費的Web托管服務上測試了許多代碼,並獲得了用戶帳戶登錄系統功能,但是當我嘗試將其移到我自己的個人apache網絡服務器上時,我的某些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這樣做。

謝謝

我已解決了該問題,顯然,該Web服務器需要被授予讀寫.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM