无MySQL的PHP登录系统

无MySQL的PHP登录系统,php,login,Php,Login,所以,我试图在不使用MySQL的情况下建立一个登录脚本,因为我根本没有使用MySQL的经验,我需要等待一年,直到我可以注册我们学校的课程 我的想法是: 用户需要使用用户名和邀请密钥登录。我希望有一个.txt(我知道这是非常不安全的,但无论如何),其中存储了一个被接受的人的用户名和邀请密钥。PHP脚本将发送的凭据与存储在.txt中的凭据进行比较。如果匹配,则您已登录,如果不匹配,则会中止 那么,如何从.txt读取数据,如何格式化.txt,使脚本在用户名和邀请键之间有所不同 以下是到目前为止我得到的

所以,我试图在不使用MySQL的情况下建立一个登录脚本,因为我根本没有使用MySQL的经验,我需要等待一年,直到我可以注册我们学校的课程

我的想法是:

用户需要使用用户名和邀请密钥登录。我希望有一个.txt(我知道这是非常不安全的,但无论如何),其中存储了一个被接受的人的用户名和邀请密钥。PHP脚本将发送的凭据与存储在.txt中的凭据进行比较。如果匹配,则您已登录,如果不匹配,则会中止

那么,如何从.txt读取数据,如何格式化.txt,使脚本在用户名和邀请键之间有所不同

以下是到目前为止我得到的信息:

if(isset($_POST['auth']) && $_SERVER['REQUEST_METHOD'] == 'POST'){

    session_start();

    $usr=$_POST['user'];
    $invkey=$_POST['key'];

    function authenticate($usr, $invkey){

    }
}
提前谢谢


附言:我知道这会很不安全,所以如果你觉得无聊,你可以给我一些建议,告诉我如何确保它的安全

您可以将用户名和密钥保存在一个字符串中,txt文件中每行一个用户

user1|user1_inv_key
user2|user2_inv_key
...
所以你可以使用和

您的代码应该如下所示:

if(isset($_POST['auth']) && $_SERVER['REQUEST_METHOD'] == 'POST'){

    session_start();

    $usr=$_POST['user'];
    $invkey=$_POST['key'];

    function authenticate($usr, $invkey){
        $fh = fopen('auth.txt', 'r');
        if ($handle) {
          while (($line = fgets($handle)) !== false) {
            // Exploding the line, using | as separator.
            $info = explode($line, '|');
            $username = $info[0];
            $key = $info[1];
            if($usr == $username && $key == $invkey) return true;
          }
        } else {
         // error opening the file.
        }
        // Return false because something went wrong or data wasn't correct.
        return false;
    }
}

您可以使用普通的csv文件,如

user1,key1
user2,key2
然后使用str_getcsv函数对其进行解析


有关更多文档,请参阅。

您必须执行以下操作

$txt_file    = file_get_contents('path/to/file.txt');
file_put_contents("path/to/file.txt", $user_string, FILE_APPEND);
然后,您可以根据每个用户的分隔符、新行或其他内容分解$txt_文件。然后,您可以向文件中添加一个新用户,如下所示

$txt_file    = file_get_contents('path/to/file.txt');
file_put_contents("path/to/file.txt", $user_string, FILE_APPEND);
为了保护它,您可以将用户的密码保存为单向散列的产物,如md5

$salt = 'whatever you want';
$securish_pw = md5($password.$salt);
然后把它储存起来。然后,有人登录,你在txt文件中找到他们的行,通过相同的md5函数输入他们的比较密码,如果他们相同,你就登录。这样,您就不会存储纯文本密码


总而言之,您应该学习一点如何使用数据库。如果您使用PHP的PDO库,并且有无数教程解释如何准确地完成您要完成的任务,那么这非常简单。

为了安全使用.htaccess,从文本文件读取是一件非常基本的事情,请尝试在internet上搜索它。我建议使用格式正确的CSV文件来存储这些内容