Php 创建注册和登录页面

Php 创建注册和登录页面,php,authentication,login,registration,Php,Authentication,Login,Registration,我目前正在制作一个注册和登录页面。我的第一页询问您是否要创建帐户或登录。我们要做的是从用户输入信息的表单中获取信息,并将其放入文本文件中。我已经让它大致工作了。我知道出于安全原因,这不是一个好的做法,但这是一个课堂作业,我必须将信息放入文本文件中。我将这些信息输入到文本文件中,但是我无法将发布的用户名与数据库中的所有用户名进行比较。这是我的newaccount.html页面代码,以及表单提交到的register.php文件 newaccount.html <html> <hea

我目前正在制作一个注册和登录页面。我的第一页询问您是否要创建帐户或登录。我们要做的是从用户输入信息的表单中获取信息,并将其放入文本文件中。我已经让它大致工作了。我知道出于安全原因,这不是一个好的做法,但这是一个课堂作业,我必须将信息放入文本文件中。我将这些信息输入到文本文件中,但是我无法将发布的用户名与数据库中的所有用户名进行比较。这是我的newaccount.html页面代码,以及表单提交到的register.php文件

newaccount.html

<html>
<head>
</head>
<body>

<h3>Hello new user! Choose a user name and password ^_^</h3><br>

<form action = "register.php" method = "POST" >
Username: <input type = "text" name = "username"><br><br>
Password: <input type = "password" name = "pass"><br>
<input type = "submit" value = "Create Account" name = "submit"><br>
</form>
<form method = "LINK" action = "Proj2_practice.html">
<input type = "submit" value = "Home Page" name = "submit2">
</form>

</body>  
</html>

你好,新用户!选择用户名和密码^
用户名:

密码:

register.php

<?php

$username = $_POST['username'];
$password = $_POST['pass'];

$userAndPass = $username.",".$password;

$userNames = 'usernames.txt'." ";
$passwords = 'passwords.txt'." ";

$fh_users = fopen($userNames, 'a+')or die("sorry, we couldnt open the file");
$fh_passwords = fopen($passwords, 'a+')or die("sorry, we couldnt open the file");

fwrite($fh_users, $username." ");
fwrite($fh_passwords, $password." ");

$allUserNames = fread($fh_users, filesize('usernames.txt'));

echo $allUserNames;

?>

用户名和密码被正确地发送到文本文件,在代码末尾,它没有回显变量。到目前为止,文本文件中没有任何信息,我不知道这是否是没有回声的原因。我的方法正确吗?我想做的是把每个名字和密码发送到一个用户名和密码文本文件中

将每个文本文件分解为它们之间的空格,这就是为什么我在将它们写入文本文件后添加一个文本文件,然后通过各自的数组元素比较用户名和密码。我是否像我想象的那样过度复杂化了?请和我分享你的评论,我只是想变得更好^_^


提前谢谢你

如果使用“a+”标志打开文件,它会将文件指针放在文件的末尾。所以当你阅读的时候,你不会得到任何东西,因为你已经在文件的末尾了

在读取之前,只需返回到文件的开头

fseek ($fh_users, 0);
或者用标记“r”关闭并再次打开

或者干脆

$dataString = file_get_contents($userNames);


如果这是一个课堂作业,我能建议一个方法和一个解决方案吗

如果这样的事情不起作用,试着降低你正在尝试做的事情的复杂性,一步一步地构建。你自己说你的文件是空的;如果它是空的,您将无法从中读取,因此您的第一个问题是如何正确地写入文件并从中读取内容。忘掉你剩下的任务,首先集中精力

现在,如果您打开一个资源(如文件),必须在不再需要它时再次关闭它。因此,您首先肯定需要一对fopen/fclose

$username = "Penguin";
$userNames = 'usernames.txt'; // Why did you have a space after this?
$fh_users = fopen($userNames, 'a+');
fwrite($fh_users, $username." ");
fclose($userNames);
我还没有对此进行测试,但现在,您应该有一个包含“Penguin”的文件。如果多次运行代码,应该会看到文件内容增加

如果你想从这个文件中读回东西,要意识到有一个文件指针决定你要读或写的地方。您可以再次打开文件,将文件指针移到前面(这样您就可以读取所需内容),也可以使用
fseek
倒带
将文件显式移回前面


一旦你完成了写和读操作,然后添加代码来处理你的表单等等。

@NullPointer I格式正确。我不明白你想要什么。要回显,请使用
readfile($file)
。如果您有大量数据,这是不高效的,因为您将在内存中保存完整的内容。。。最好是使用fseek
$dataArray = file($userNames);
$username = "Penguin";
$userNames = 'usernames.txt'; // Why did you have a space after this?
$fh_users = fopen($userNames, 'a+');
fwrite($fh_users, $username." ");
fclose($userNames);