第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當 PHP 無法更改文件中的標志時,如何判斷我的網(wǎng)站上的錯誤是什么?

當 PHP 無法更改文件中的標志時,如何判斷我的網(wǎng)站上的錯誤是什么?

PHP
哈士奇WWW 2021-06-29 06:24:17
與學生注冊網(wǎng)站相關(guān),我有一個每天早上 5:00 運行的 PHP 文件,用于檢查尚未支付費用的學生。如果學生沒有支付費用,他們將被退學。這個文件被調(diào)用dropstudent.php,這是文件夾層次結(jié)構(gòu):cronjobs/||- dropstudent.php|- flag.txt該flag.txt文件只包含一個詞 - true或false。如果該標志設(shè)置為 true,學生只能支付費用(在網(wǎng)站其他地方的 PHP 文件中處理)。現(xiàn)在,在我們丟棄學生之前,我們將標志設(shè)置為 false,執(zhí)行檢查并執(zhí)行必要的丟棄。最后,我們將此標志設(shè)置回 true。到目前為止,這工作得很好,沒有人碰過這段代碼。但是最近,我們一直在抱怨學生無法支付費用。我查看了它,結(jié)果發(fā)現(xiàn)我們將標志重置為 true 的步驟不起作用,因為標志更改為 false 但不會返回 true。這是我的代碼:#!/opt/rh/php55/root/usr/bin/php<?php// require '../dbmanage.php';require '/path to college servers/dbmanage.php';logCronJob("dropstudent", "begin");$filepath = '/path to college servers/cronjobs/flag.txt';// Change flag to false$myfile = fopen($filepath, "w") or die("Unable to open file!");$txt = "false";fwrite($myfile, $txt);// do the drop checks and other relevant stuff here// Change flag back to true$myfile = fopen($filepath, "w") or die("Unable to open file!");$txt = "true";fwrite($myfile, $txt);fclose($myfile);如果有人能告訴我如何找出這里出了什么問題,以及我能做些什么來解決它,那就太好了。如果需要,我可以發(fā)布更詳細的代碼(檢查和刪除)。
查看完整描述

2 回答

?
嗶嗶one

TA貢獻1854條經(jīng)驗 獲得超8個贊

您需要fclose($myfile);在完成第一個之后調(diào)用fwrite(),以確保刷新緩沖區(qū)。按照您編寫的方式,第一個流在腳本結(jié)束之前不會關(guān)閉。屆時它將刷新其緩沖區(qū),覆蓋第二個流寫入的內(nèi)容。


如果您使用file_put_contents(). 它一步打開、寫入和關(guān)閉文件:


#!/opt/rh/php55/root/usr/bin/php


<?php


// require '../dbmanage.php';

require '/path to college servers/dbmanage.php';


logCronJob("dropstudent", "begin");


$filepath = '/path to college servers/cronjobs/flag.txt';


// Change flag to false

file_put_contents("false", $filepath);


// do the drop checks and other relevant stuff here


// Change flag back to true

file_put_contents("true", $filepath);


查看完整回答
反對 回復(fù) 2021-07-02
?
慕虎7371278

TA貢獻1802條經(jīng)驗 獲得超4個贊

我終于解決了錯誤。以下是我遵循的步驟以及我在兩者之間收到的錯誤消息:

  1. 正如@SulthanAllaudeen 所建議的那樣,我在打開flag.txt.

  2. 就許可或系統(tǒng)升級的任何最新變化與管理人員進行了交談。他們沒有做任何改變。

  3. 按照@Barmar 的建議關(guān)閉文件句柄。

  4. 仍然不斷收到同樣的錯誤。

  5. 然后將flag.txt文件的路徑從 relative 更改為 absolute。事實證明,cronjobs 需要所有路徑都是絕對的,至少在我的情況下。

  6. 這解決了“權(quán)限被拒絕”錯誤。但是后來我開始收到錯誤“無法重新聲明函數(shù)”。所以emails.php我包含的文件,我將其更改為include_once()并且它起作用了。

  7. 我仍然按照@Barmar 的建議關(guān)閉文件句柄,這是一個很好的做法。

TL;DR:通過提供包含的所有文件的絕對路徑解決了錯誤。此外,將 include() 語句更改為 include_once()。


查看完整回答
反對 回復(fù) 2021-07-02
  • 2 回答
  • 0 關(guān)注
  • 165 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號