-2
votes

Comment utiliser un fichier texte pour enregistrer les utilisateurs dans

J'ai essayé et essayé d'obtenir cela pour travailler. Je souhaite essentiellement lire une ligne d'un fichier texte et le comparer à la saisie de l'utilisateur. S'ils sont identiques, il continuera au processus de connexion.

Pour l'instant, je suis juste en train d'utiliser un écho pour voir s'il trouve réellement quelque chose. Il semble que la déclaration IF ne voie pas les deux entrées comme une correspondance même quand elles sont. xxx

la seule fois que cela trouve une correspondance est si l'entrée est si l'entrée est laissé vide car il sera apparié avec la ligne finale du fichier.


4 commentaires

Selon le nombre d'utilisateurs, vous pouvez utiliser fichier et in_array . Qu'est-ce que $ Usern sortez comme avec ce code? J'utilise habituellement Fread avec le fopen .


Lorsque vous lisez le fichier, vous devez utiliser la garniture, RTRIM pour supprimer le (s) Terminator (s) EOL avant d'essayer d'utiliser la ligne du fichier dans votre bloc IF () ... $ USERIN = Garni (Fgets ($ myfile));


Note latérale: Toute raison spéciale pour laquelle vous utilisez des fichiers texte plutôt qu'une base de données pour cela? Ce serait beaucoup plus simple / plus facile; crois-moi.


En tant que doublure si (in_array ($ _ post ["nom d'utilisateur '], fichier (" users.txt "))) {


3 Réponses :


0
votes

Essayez ce code.

<?php
 $myFile = fopen("users.txt", "r");
 $username = $_POST['username'];

 while(!feof($myFile))
{
 $userN = fgets($myFile);

 //$userN = rtrim(fgets($myFile, "\r\n")); //More cleaner way suggested in comment

 //compares entered user to text file users
  if ($username == trim($userN)){
    echo 'found';
  } else {
    echo "non found";
}
}


2 commentaires

Fgets retournera également le nouveau personnage de la ligne, donc la comparaison ressemble probablement à quelque chose comme si ("Callum" === "Callum \ n") . La méthode de nettoyage serait de rtrim (fgets ($ myfile, "\ r \ n")) Stackoverflow.com/Questtions/7478250/...


Si l'utilisateur n'est pas dans le fichier, vous obtenez quelque chose comme Foundnon Foundnon Foundnon Foundnon trouvé



0
votes

Comment stockez-vous des informations utilisateur? Utilisez-vous des virgules ou quelque chose d'autre pour séparer les utilisateurs et pouvez-vous utiliser JSON au lieu de cela, il est beaucoup plus facile de stocker, de récupérer et de vérifier. Si vous avez toujours besoin d'utiliser, j'aime bien suggérer que cette méthode, obtenez d'abord tout et stockez dans la chaîne, puis convertissez-la en tableau à l'aide de la fonction PHP à l'aide de la fonction PHP, puis vérifiez que le tableau (en supposant que le fichier texte ne contient que le nom d'utilisateur et l'utilisateur séparé par)

myuser.txt xxx

lecture.php xxx


0 commentaires

1
votes

Bien que ce n'était pas la meilleure façon de vérifier que les utilisateurs existent, vous pouvez charger tous les utilisateurs à l'aide d'un fichier () code> (sans la nouvelle ligne et en supprimant des entrées vierges), qui produira un tableau de la utilisateurs. Ensuite, utilisez simplement in_array () code> pour voir si l'utilisateur se trouve dans la liste ...

$username = $_POST['username'];
$userList = file("users.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if ( in_array($username, $userList))    {
    echo "Found";
}


0 commentaires