$ipfile="./user.txt";
if (get_magic_quotes_gpc()) {
if (!$fp = fopen($ipfile, "a+")) {
// die("建立線上列表檔案失敗, 請檢查是否有許可權.");
}
$time=time();
$line = $username."|".$REMOTE_ADDR."|".$time."\r\n";
$old=file($ipfile);
$num=count($old);
$fp=fopen($ipfile, "w");
flock($fp,2);
if($num<2500){
fputs($fp,$line);
for ($i=0;$i<$num;$i++){
fputs($fp,$old[$i]);
}}else{
fputs($fp,$line);
for($i=0;$i<2499;$i++){
fputs($fp,$old[$i]);
}}
fclose($fp);
}
?>
================執行以上在該伺服器上無法寫入,但
在其它伺服器空間可以正確運行寫入,不知是不是伺服器中php.ini哪項沒有開啟造成的?=================
同樣執行以下檔案測試該伺服器有沒有寫入許可權,以下php檔案又能正確執行並寫入資料的,請教為什麼上面的執行無法寫入。
$filename = "user.txt";
$contents = "我是張斌";
if(is_writable($filename)){
if(($handle = fopen($filename,"a") )== false){
echo "寫入檔案 $filename 失敗";
exit();
}
if(fwrite($handle,$contents) == false){
echo "寫入檔案$filename失敗";
exit();
}
echo "寫入檔案 $filename 成功";
fclose($handle);
}else{
echo "檔案$filename不可寫入";
}
?>
回複討論(解決方案)
$ipfile="./user.txt";
另一個是
$filename = "user.txt";
懷疑已經寫進去了,只是寫到別的位置上去了
如果是 IIS 那麼需要在管理器中勾選“寫入”
如果不是,則應檢查一般使用者是否有寫入權限
相關的檔案夾還需勾選“進階”中的“允許存檔”
不是這原因,同樣的代碼,在另一台伺服器空間中正確運行,這台伺服器就不行,應該是伺服器哪個設定有問題,讀寫權限已開了
如果是 IIS 那麼需要在管理器中勾選“寫入”
如果不是,則應檢查一般使用者是否有寫入權限
相關的檔案夾還需勾選“進階”中的“允許存檔”
這台伺服器上可以執行刪除,是不是說明已有讀寫權限?另外如果說沒讀寫權限,發的 第二段代碼可以寫入的啊,就是第一段代碼寫入不了,下面這段刪除代碼也能正確執行的:
if($del=="1"){//刪除
$old=file("$ipfile");
$num=count($old);
$fp=fopen("$ipfile","w");
$no=$num-1;
for ($i=0;$i<$num;$i++){
list($usre,$ip,$time)=explode("|",$old[$i]);
if($txtzzip!=$jilu){ fputs($fp,$old[$i]); }
}
fclose($fp);
}