2016-12-08 13 views
-2

안녕하십니까. 성공적으로 로그인을 시도했으나 txt 파일에 로그인하지 못했습니다. 작동하지 않습니다. 누구든지 코드를 살펴볼 수 있습니까?PHP가 성공적으로 로그인하고 텍스트 파일에 불신자가 발생했습니다.

if($_POST['username']==$username && $_POST['password']==$password){ 

    $_SESSION['username']=$username; 
    header('location:mainpage.php'); 
    $logInData = date('Ymd-H:i:s'); 
    $logLogIn = fopen("../logs/logins.txt", "a"); 
    $txt = "\r\n$logInData, You logged in Succesfully"; 
    fwrite($logLogIn, $txt); 
    fclose($logLogIn); 

}else{ 

    $err="Authentication Failed Try again!"; 
    $logInData = date('Ymd-H:i:s'); 
    $logLogIn = fopen("../logs/logins.txt", "a"); 
    $txt = "\r\n$logInData, Login failed wrong username or password"; 
    fwrite($logLogIn, $txt); 
    fclose($logLogIn); 

} 

나는 다음과 같은 오류를 얻을 :

Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/rans1600/public_html/D093G/moment2/index.php on line 32

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/rans1600/public_html/D093G/moment2/index.php on line 33 Authentication Failed Try again!

+0

이것은 fopen이 실패했음을 의미합니다. 디버그는 –

+0

입니다. sidenote : 확실하게 인증/로그인 방법을 사용 하시겠습니까? –

답변

-1
$file = "../logs/logins.txt"; 
$current = file_get_contents($file); 
$current .= $_POST['username'] . ' ' . $_POST['password'] . "\n"; 
file_put_contents($file, $current); 
+0

이것이 왜 효과가있을 것이라고 생각하십니까? –

+0

나는 그것이 더 낫다고 말한 적이 없다. 나는 그것을 내 웹 서버에서 테스트했고 정상적으로 작동했다. – Phil

+1

그의 코드는 서버에서 권한 \ 경로 문제로 작동합니다. –

-1

확인 파일 권한 및 logins.txt의 소유권. "../logs/logins.txt"에 문제가 있다는 것을 분명히 의미합니다.

이 PHP 파일의 서버, OS 및 경로를 게시 하시겠습니까 ???

0

문제를 해결하는 방법을 배워야합니다.

나는 당신에게 포인터를 줄 것이다 :

먼저 오류를 읽어

I get the following errors : Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/rans1600/public_html/D093G/moment2/index.php on line 32

당신은 fopen() 부울을 반환하는 것을 알고 있습니다.

그런 다음 당신은 다음 했나요하는 fopen() documentation

공지 사항 확인 :

Returns a file pointer resource on success, or FALSE on error.

또한

당신이 무엇을 알고 이제

If the open fails, an error of level E_WARNING is generated. You may use @ to suppress this warning.

을의에 다음을 넣어, 경고를 표시 스크립트의 첫 번째 줄 :

error_reporting(E_ERROR | E_WARNING | E_PARSE); 

이 정보를 사용하면 경로 문제, 권한 또는 다른 이유가있을 수 있지만 그 이유를 쉽게 찾을 수 있습니다. 당신은 그것을 대신 디버깅합니다.