2010-04-06 6 views
0

Comment valider une sous-chaîne est vrai dans PHP par exemple si user1 est dans la chaîne cela devrait être vrai?valider une chaîne dans php si seulement la sous-chaîne est vraie

textfile:

user1: pass1

user2: pass2

user3: pass3

if(in_array($_SERVER['user1'] . "\r\n", $textfile)){ //not the way want this to be true 
    printf("Ok user1 is in this row somewhere"); 
} 
+0

Sérieusement, regardez le manuel. Je ne m'occupe pas des questions de débutant, mais ce code est * si * faux Je ne crois pas que vous ayez fait des efforts. –

+0

@coronatus toute question de programmation est valide, et il n'y a pas d'entrée manuelle php pour les méthodes d'authentification. –

+0

Pourquoi mettez-vous des nouvelles lignes après le nom d'utilisateur? Je ne les vois pas dans le fichier texte. Pouvez-vous faire un print_r ($ textfile)? De plus, le nom d'utilisateur est-il la clé ou la valeur de $ _SERVER ['user1']? – webbiedave

Répondre

1

Je conseille contre ce genre de système d'authentification comme est sujette à des erreurs ou abus . Utilisez un autre système comme ACL ou contrôle de hachage utilisateur/mot de passe de base de données.

0

Si vous utilisez ceci pour l'authentification; pour le bien de vos utilisateurs, envisagez une approche différente (plus sécurisée). D'ailleurs, la réponse à l'OP est correcte: à peu près rien dans le code PHP ne fonctionnera comme cela semble être le cas. Toutefois, si l'idée est d'utiliser la valeur d'un tableau avec la clé $ arr ['key'] pour rechercher des paramètres de configuration qui n'ont pas besoin d'être protégés (pour le monde entier, fondamentalement), vous pouvez utiliser le fichier parse_ini_file() et amis. Encore une fois: ce n'est pas une bonne idée pour des données vraiment sensibles.

EDIT: De même, il est probablement préférable d'utiliser la constante PHP_EOL pour les caractères de fin de ligne plutôt que de supposer "\ r \ n".

1

Comme nous l'avons dit plus haut, ce n'est pas une bonne approche en ce qui concerne l'authentification de l'utilisateur. Si vous voulez quelque chose de basique, regardez en utilisant HTTP Authentication ou quelque chose du moins.

Cela dit, vous pouvez faire ce que vous avez demandé en utilisant PHP's file function, par ex. Notez que cela suppose que chaque ligne est de la forme "nom d'utilisateur: mot de passe" avec rien d'autre; vous devrez peut-être ajuster exactement la façon dont vous correspondez à vos lignes en fonction de votre format. Un exemple de fichier qui serait validé par ceci aurait une ligne telle que

foo:bar 
Questions connexes