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. p> 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. p> p>
3 Réponses :
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"; } }
Fgets Code> retournera également le nouveau personnage de la ligne, donc la comparaison ressemble probablement à quelque chose comme
si ("Callum" === "Callum \ n") code>. La méthode de nettoyage serait de
rtrim (fgets ($ myfile, "\ r \ n")) code> Stackoverflow.com/Questtions/7478250/...
Si l'utilisateur n'est pas dans le fichier, vous obtenez quelque chose comme Foundnon Foundnon Foundnon Foundnon trouvé code>
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 p> lecture.php p>
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";
}
Selon le nombre d'utilisateurs, vous pouvez utiliser
fichier code> et
in_array code>. Qu'est-ce que
$ Usern code> sortez comme avec ce code? J'utilise habituellement
Fread code> avec le
fopen code>.
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 "))) { code>