【发布时间】:2013-02-25 21:15:47
【问题描述】:
“LoggedIn”确实 = true 并且“CurrentUser”不是“ManselD”,但它仍然没有写入或创建文件 :( 是的,我的 /accounts/logs 文件夹是 CHMOD 702
if(!$user == "ManselD"){
ini_set('date.timezone', 'Europe/London');
$ip = $_SERVER['REMOTE_ADDR'];
$txt = "$user Logged In With The Ip: $ip At ".date("h:i")."\n";
$url = "/accounts/logs/".trim(date('F')."-".date('d')."-".date('Y').".txt");
$file = fopen($url, "a");
fwrite($file, $txt);
fclose($file);
echo $file;
if(is_writable("/accounts/logs")){
echo "It is writable";
} else{
echo "It isn't writable";
}
}
我真的很困惑为什么这不起作用:S
固定版本:
if($user != "ManselD"){
ini_set('date.timezone', 'Europe/London');
$ip = $_SERVER['REMOTE_ADDR'];
$txt = "$user Logged In With The Ip: $ip At ".date("h:i")."\n";
$url = getcwd() . '/accounts/logs/'.trim(date('F')."-".date('d')."-".date('Y').".txt");
file_put_contents($url, $txt, FILE_APPEND);
}
【问题讨论】:
-
在 fopen() 之后测试 $file 的值将是一个开始;通过代码测试 is_writeable() 的 /accounts/logs 目录;你启用了 display_errors 吗?
-
我也会查看错误日志文件,看看是否有错误
-
!$_SESSION['CurrentUser'] == "ManselD"不会像您认为的那样做。这相当于(!$_SESSION['CurrentUser']) == "ManselD",你很可能想要$_SESSION['CurrentUser'] != "ManselD"。 -
好的,我把这个: if(!$user == "ManselD"){ ini_set('date.timezone', 'Europe/London'); $ip = $_SERVER['REMOTE_ADDR']; $txt = "$user 使用 Ip 登录:$ip At ".date("h:i")."\n"; $url = "/accounts/logs/".trim(date('F')."-".date('d')."-".date('Y').".txt"); $file = fopen($url, "a"); fwrite($file, $txt); fclose($文件);回声$文件; if(is_writable("/accounts/logs")){ echo "它是可写的"; }else{ echo "它不可写"; } } 它什么也没输出,我添加了“ini_set('display_errors','1');”在脚本 D 的顶部:
-
@ManselD:
if(!$user == "ManselD")又错了!这就像做((!$user) == "ManselD"),它将$user转换为布尔值(并将其反转)。使用($user != "ManselD")