php写入成功登录并且文本文件不成功

时间:2016-12-08 23:14:37

标签: php forms login fwrite fclose

我一直试图将成功的登录/失败登录写入txt文件,但它无法正常工作。

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);

}

我收到以下错误:

  

警告: fwrite()要求参数1为资源,第32行/home/rans1600/public_html/D093G/moment2/index.php中给出布尔值

     

警告: fclose()要求参数1为资源,第33行/home/rans1600/public_html/D093G/moment2/index.php中给出布尔值   身份验证失败再次尝试!

3 个答案:

答案 0 :(得分:0)

您需要学习解决问题。

我会给你指点:

首先你读错了:

  

我收到以下错误:警告:fwrite()需要参数1   是资源,布尔值   第32行/home/rans1600/public_html/D093G/moment2/index.php

您意识到fopen()正在返回一个布尔值。

然后查看fopen() documentation

请注意以下内容:

  

成功时返回文件指针资源,错误时返回 FALSE

  

如果打开失败,则会生成级别 E_WARNING 的错误。你可以   使用@来抑制此警告。

现在您知道该怎么做,通过将以下内容放在脚本的第一行显示警告:

error_reporting(E_ERROR | E_WARNING | E_PARSE);

希望这可以帮助您找到问题,这可能是路径问题,许可或任何原因,但为什么猜?你改为调试它。

答案 1 :(得分:-1)

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

答案 2 :(得分:-1)

检查logins.txt的文件权限和所有权。 这显然意味着“../ logs / logins.txt”存在问题

请发布您的服务器,操作系统和此PHP文件的路径???