Maintenant, je sais que le stockage des mots de passe dans un fichier texte n'est pas sécurisé, mais ne vous inquiétez pas. La sécurité n'est pas mon objectif ici, c'est comme l'un de ces sites Web hackme.
Donc, j'ai besoin de savoir comment stocker les noms d'utilisateur et les mots de passe dans un fichier texte, jusqu'à présent, j'ai ce tableau
$logins = array('Example' => '123','test' => '123','simon' => '123');
Et cette déclaration si
if (isset($logins[$Username]) && $logins[$Username] == $Password){ /* Success: Set session variables and redirect to Protected page */ $_SESSION['UserData']['Username']=$logins[$Username]; header("location:index.php"); exit; }
Comment puis-je le faire plutôt que de les stocker en tant que liste, je peux les stocker dans un fichier texte, puis exécuter l'instruction if, sur le fichier texte?
Vous pouvez créer un type de chose JSON et le référer comme un tableau. Préparez donc le fichier en premier. Le contenu de passwords.json
(ou passwords.txt
, appelez ce que vous voulez):
{}
Et maintenant, ce que vous devez faire, c'est ce qui suit:
Donc, en définitive, le code serait quelque chose comme:
<?php // Read the file. $users = file_get_contents("passwords.json"); // Convert into an associative array. $users = json_decode($users); // Get the input from the user. $username = $_POST["username"]; $password = $_POST["password"]; // Check the validity. if (array_key_exists($username, $users) && $users[$username] == $password) { // Valid user. $_SESSION["user"] = array($username, $password); } else { echo "Not Right!"; } ?>
Et si vous voulez stocker les utilisateurs, il vous suffit de faire le contraire.
Le code final:
<?php // Read the file. $users = file_get_contents("passwords.json"); // Convert into an associative array. $users = json_decode($users); // Get the input from the user. $username = $_POST["username"]; $password = $_POST["password"]; // Store the new one into the array. $users[$username] = $password; // Convert back to JSON. $users = json_encode($users); // Put it into the file. file_put_contents("passwords.json", $users); ?>