我一直试图将成功的登录/失败登录写入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中给出布尔值 身份验证失败再次尝试!
答案 0 :(得分:0)
您需要学习解决问题。
我会给你指点:
首先你读错了:
我收到以下错误:警告:fwrite()需要参数1 是资源,布尔值 第32行/home/rans1600/public_html/D093G/moment2/index.php
您意识到fopen()
正在返回一个布尔值。
请注意以下内容:
成功时返回文件指针资源,错误时返回 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文件的路径???