我有一个非常简单的登录脚本,它只需要一个密码就可以了。用户将尝试登录,当用户输入错误的密码时,php脚本会将密码附加到文本文件中,但首先脚本会检查密码是否已存在于文件中,如果是,则脚本将添加1到文件中的尝试次数。我的问题是我想找到一种方法来检查每个密码,然后添加密码,但不检查每个密码,并立即添加密码。我正在使用this website处的类文件,我的代码如下。
<!DOCTYPE html>
<html>
<head>
<title>Website</title>
</head>
<body>
<form method="post" action="Assets/Scripts/PHP/Login.php">
<table>
<tr>
<td>
<label for="Password">Password:</label>
</td>
<td>
<input type="password" name="password" placeholder="Password" id="Password" />
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="submit" value="Log In" />
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
$Password = $_POST['password'];
$Submit = $_POST['submit'];
if(isset($Submit))
{
if($Password != '' && $Password == 'Password')
{
session_start();
$_SESSION['Login'] = 'True';
$Login = $_SESSION['Login'];
if(isset($Login))
{
header("location:../../../main.php");
}
else
{
header("location:../../../index.html");
}
}
else
{
include("../../../MyTXT.php");
$File = new MyTXT("../../Texts/Passwords.txt");
foreach($File->rows as $Row)
{
if($Row != $Password)
{
$File->add_row(array($Password, "1"));
$File->save();
}
else
{
}
}
echo 'The Password Is Incorrect';
echo '<br />';
echo '<a href="../../../index.html">Go Back</a>';
}
}
else
{
header("location:../../../index.html");
}
Password:|:Attempts
Test:|:26
Test123:|:2
Test456:|:5
答案 0 :(得分:1)
您是否有使用链接代码的具体原因?对于什么是简单任务来说,它看起来像很多代码。
试试这些:
将文件内容读入字符串: http://php.net/manual/en/function.file-get-contents.php
将文件内容读入数组: http://php.net/manual/en/function.file.php
我仍然不确定你是如何检查他们的密码是否正确,因为你的文件包含不正确的密码,但是,快速示例(快速...)如何检查文件中的字符串:
$strPassword = '123test';
$strFilename = 'pass.txt';
$strFileContents = file_get_contents($strFilename);
if(strpos($strFileContents, $strPassword))
{
//$strPassword is there, log them in/whatever
}
else
{
//password not there
}
但是,如果您希望/需要使用该站点中的该脚本,那么在下载中有一些如何使用它的示例。你应该研究这些并用它们编写代码,如果你遇到问题,请提出具体的问题。