2013-02-25 1 views
0

"LoggedIn"은 true이고 "CurrentUser"는 "ManselD"가 아니지만 여전히 파일을 작성하거나 작성하지 않습니다 : ( 그리고 예 내/계정/로그 폴더는 말 그대로 난처한 상황에 빠진이 작동하지 않는 이유에 당황 해요fwrite() 내가 지정한 파일에 작성하거나 쓰지 않습니다.

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"; 
    } 
} 

chmod를 702입니다 : 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); 
} 
+0

fopen()이 시작된 후에 $ file 값을 테스트합니다. 코드를 통해 is_writeable()에 대해/accounts/logs 디렉토리를 테스트하십시오. display_errors가 활성화되어 있습니까? –

+0

또한 오류 로그 파일에서 오류가 있는지 확인합니다. –

+1

'! $ _ SESSION [ 'CurrentUser'] == "ManselD"'는 사용자가 생각하는대로 처리하지 않습니다. 그건'(! $ _ SESSION [ 'CurrentUser']) == "ManselD"'와 같지만, 아마도 $ _SESSION [ 'CurrentUser']! = "ManselD"'를 원할 것입니다. –

답변

2

나는 생각 문제 (당신은 당신이 의견을 읽고있는 경우) 더 있기 때문에, 대해 sking하면

$url = "/accounts/logs/".trim(date('F')."-".date('d')."-".date('Y').".txt"); 

파일 경로가 URL을하지 않은 쓰기 때문이다. 그리고 위의 URL은 분명히 URL이 아니지만 시작 슬래시 (/)가 없어야합니다.
항상 좋은 방법은 항상 절대 경로를 사용하는 것입니다. __FILE__ 상수를 사용하는 것이 좋습니다.

+0

나는 이것을 초. 개인적으로 getcwd()를 사용하여 현재 작업 디렉토리 경로를 얻은 다음 그 경로가 무엇이든 추가합니다. 예 :'$ url = getcwd(). '/ myFolder /'. $ whateverFileName' – Cashew

+0

감사합니다. Joomla 용 코드를 작성했기 때문에 나는 일반적으로이 함수를 사용하지 않았고, 내 확장은 자신의 전에 호출 된 마지막 확장이 현재 작업 디렉토리에 있었는지 절대 알지 못하는 환경에 설치되기 때문에, 입니다. :) – mavrosxristoforos

+0

Hrm, ok 글쎄 이제는 쓸 수 없다고 말합니다 ... CHMOD를 올바르게 설정했습니다. 작동해야합니다 :/ –

관련 문제