创建一个登录名,并使用php将用户输入的内容存储在文本文件中
我想为我的简单登录站点创建一个createaccount页面,用户单击createaccount按钮,他们将被带到一个页面,使用以下表单输入登录名和密码创建一个登录名,并使用php将用户输入的内容存储在文本文件中,php,html,forms,Php,Html,Forms,我想为我的简单登录站点创建一个createaccount页面,用户单击createaccount按钮,他们将被带到一个页面,使用以下表单输入登录名和密码 <form action = "createaccount.php" method="get"> <h1> Please enter your information to create a new login account</h1> <p> <labe
<form action = "createaccount.php" method="get">
<h1> Please enter your information to create a new login account</h1>
<p>
<label>Login Name:</label><input type = "text" name = "name" />
<label>Password:</label><input type = "password" name = "pwd" />
<br/><br/>
</p>
<input type = "submit" id = "submit" value = "submit"/>
<input type = "reset" id = "reset" value = "reset"/>
</form>
然后回显创建的屏幕帐户,然后将用户带到my login.html页面,以便他们可以使用新帐户信息登录
但是我尝试运行代码,它根本不会将我的数据保存到文件中,当我提交表单时,它不会将我引导回我的登录屏幕,我只会收到一条消息,说页面无法显示。我想首先你必须检查fopen的返回值:
$fp = fopen($filename, 'a+');
if (FALSE === $fp) {
echo 'Can not open file...';
}
fwrite也是如此。您的代码有一些地方出错
$fclose
删除$
符号。否则,错误报告将抛出:
致命错误:函数名必须是
那么,您在中有一个额外的报价
header("Location: "login.html");
^ right there
应改为:
header("Location: login.html");
然而,你在做一个回声。您不能回显和标题。您在标题之前输出
使用echo或标题
<?php
$username = $_GET['name'];
$password = $_GET['pwd'];
$filename = 'accounts.txt';
$fp = fopen($filename, 'a+');
fwrite ($fp, $username . "," . $password . "\n");
fclose ($fp);
// echo OR header, not both
// echo ("account created");
header("Location: login.html");
die();
?>
您还应查看以下密码存储:
或PHP5.5的函数
对于小于5.5的PHP,请使用
添加到文件的顶部,这将有助于查找错误
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
如果您想用冒号将其保存为分隔符,请更改
fwrite ($fp, $username . "," . $password . "\n");
^
到
使用文本文件需要大量的工作,在使用这些文件时需要更多的资源,尤其是在编辑、删除等方面
使用预先准备好的语句时,使用数据库的维护要少得多,而且更安全。如何创建一个简单的登录表单 html(login.html)
php(login.php)
登录
login.html是否存在?它的HTML是什么?我觉得你以前的代码是从正确的?两者有着惊人的相似之处<代码>标题(“位置:login.html”)
您在其中有一个额外的引号。使用平面文件来显示用户名和密码是一个非常糟糕的主意。例如,如果有人想在他们的密码中添加:
,会破坏您的分解或拆分操作。使用数据库并对密码进行哈希运算。同样使用平面文件,确保每个用户名都被删除会非常繁琐仅使用一次。对于db,只需设置一个唯一的约束。@developerwjk OP声明“我知道它不安全,但这些数据对我来说没有价值,因为我正在将其作为学习过程的一部分进行补充。”“-然而,你完全正确,我100%同意你的观点。OP已经被告知了这一点,其他地方也有。显然,它不会是活的,但如果它真的能在万维网上看到曙光,那么,。。。谁知道呢。没问题,希望我能早点看到这篇文章。只是碰巧在谷歌上搜索了一些类似的东西,看到了这个。
<Files data.txt>
order allow,deny
deny from all
</Files>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
username1:password1
username2:password2
etc.
fwrite ($fp, $username . "," . $password . "\n");
^
fwrite ($fp, $username . ":" . $password . "\n");
^
<form action="login.php" method="post">
<input type="text" id="username" name="username"/>
<input type="password" id="password" name="password"/>
<input type="submit" name="Login" value="Login">
</form>