Php fwrite()不是';不要创建或写入我指定的文件

Php fwrite()不是';不要创建或写入我指定的文件,php,file-io,fopen,fwrite,Php,File Io,Fopen,Fwrite,“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 ".d

“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);
}
我认为问题在于(你问的是,如果你读评论的话,会有更多的问题)你是在写

$url = "/accounts/logs/".trim(date('F')."-".date('d')."-".date('Y').".txt");
文件路径不是URL。虽然上面的显然不是URL,但它可能没有起始斜杠(/)。

一个好的方法是始终使用绝对路径,可能使用
\uuuu FILE\uuuu
常量。

在fopen()之后测试$FILE的值将是一个开始;测试/accounts/logs目录的is\u writeable()通过代码;是否启用了显示错误?我还会查看错误日志文件,查看是否存在错误。
!$会话['CurrentUser']==“ManselD”
不会执行您认为的操作。这相当于
(!$会话['CurrentUser'])==“ManselD”
,您很可能想要
$会话['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('d')。-”)。.date('Y('Y')。.txt”);$file=fopen($url,$a”);rite($file($file;$file=fopen($file;$file;$file(is_writeable(“/accounts/logs”){echo“It is writeable”;}否则{echo“It's not writeable”;}并且它不输出任何内容,我在脚本D:@ManselD:顶部添加了“ini_set('display_errors','1');”如果(!$user='ManselD')错误,则再次
这就像执行
(!$user='ManselD'))
,它将
$user
转换为布尔值(并将其反转)。使用
($user!=“ManselD”)
我支持此操作。我个人使用getcwd()获取当前工作目录路径,然后添加其中的任何路径。例如:
$url=getcwd()“/myFolder/”.$whateverFileName
谢谢。我通常避免使用该功能,因为我为Joomla编写代码,并且我的扩展安装在您永远不知道前一个扩展对当前工作目录调用了什么的环境中,而您永远也无法真正确定这是什么。:)Hrm,好吧,现在它说它不可写了…我正确设置了CHMOD。它应该可以工作:/@mavrosxristoforos什么?哈哈,我不知道你在说什么。很高兴我没有参与任何Joomla,那么。:P jk我想我知道你的意思