Automatiser une création de compte sur un programme
Résolu/Fermé
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
-
1 janv. 2020 à 19:47
Frizti Messages postés 112 Date d'inscription mercredi 23 octobre 2019 Statut Membre Dernière intervention 25 février 2023 - 4 janv. 2020 à 20:58
Frizti Messages postés 112 Date d'inscription mercredi 23 octobre 2019 Statut Membre Dernière intervention 25 février 2023 - 4 janv. 2020 à 20:58
A voir également:
- Automatiser une création de compte sur un programme
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un compte instagram sur google - Guide
- Supprimer compte instagram - Guide
- Comment récupérer un compte facebook piraté - Guide
16 réponses
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
Ambassadeur
1 549
1 janv. 2020 à 20:07
1 janv. 2020 à 20:07
bonjour, je pense que c'est possible.
Enregistrer des données permanentes se fait sur le disque dur (ou autre support physique).
Donc, il t’incombe d'enregistrer login et mot de passe dans un fichier ou éventuellement une base de données, comme tu débutes le choix d'un simple fichier semble le plus simple.
Et ensuite lorsqu'un utilisateur voudra se connecter, il suffira de vérifier que le couple login, password est présent dans ton fichier, et si tu ne veux pas que l'on puisse lire directement les valeurs de ton fichier, tu pourrais également utiliser des fonctions de hash.
Attention, avant d'enregistrer un nouvel utilisateur, il faudra vérifier que le pseudo choisi n'existe pas déjà dans ton fichier.
Donc, il t’incombe d'enregistrer login et mot de passe dans un fichier ou éventuellement une base de données, comme tu débutes le choix d'un simple fichier semble le plus simple.
Et ensuite lorsqu'un utilisateur voudra se connecter, il suffira de vérifier que le couple login, password est présent dans ton fichier, et si tu ne veux pas que l'on puisse lire directement les valeurs de ton fichier, tu pourrais également utiliser des fonctions de hash.
Attention, avant d'enregistrer un nouvel utilisateur, il faudra vérifier que le pseudo choisi n'existe pas déjà dans ton fichier.
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
1 janv. 2020 à 20:55
1 janv. 2020 à 20:55
D'accord, merci mais comment dois-je faire pour que mon programme accède à ce dit fichié et comment configurer celui-ci ?
Ce fichier, c'est toi qui dois le créer, ouvrir un fichier se fait avec open en python.
Et dedans tu auras juste des lignes, avec un séparateur nom, séparateur, mdp, un fichier csv en gros.
riri,mdp_de_riri
fifi,mdp_de_fifi
Il y a d'autres format de fichier que tu pourrais aussi utiliser, json, xml (plus compliqué).
Et dedans tu auras juste des lignes, avec un séparateur nom, séparateur, mdp, un fichier csv en gros.
riri,mdp_de_riri
fifi,mdp_de_fifi
Il y a d'autres format de fichier que tu pourrais aussi utiliser, json, xml (plus compliqué).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
1 janv. 2020 à 22:54
1 janv. 2020 à 22:54
D'accord, et comment dois-je faire pour que les informations présentes dans ce fichier soient utilisées ?
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
1 549
2 janv. 2020 à 09:57
2 janv. 2020 à 09:57
peut-être commencer avec des exercices plus simples?
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
>
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
2 janv. 2020 à 15:59
2 janv. 2020 à 15:59
tu sais comment je peux définir les informations du fichier texte en tant que identifiants et mdp ?
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
2 janv. 2020 à 12:43
2 janv. 2020 à 12:43
je ne débute pas, je suis justement e n train d'apprendre a utiliser des fichiers textes dans un programme
Un programme, c'est aussi faire des fonctions.
Admettons, un fichier users.txt
Avec dedans 2 enregistrements.
On écrit ensuite quelques fonctions permettant de travailler.
Puis on effectue quelques tests pour voir si tout fonctionne comme on veut.
Et voilà, tu vois quelque chose de compliqué là-dedans ?
Tu peux aussi mettre d'autres parties de ton programme dans des fonction, le message de connexion au terminal, le menu, etc.
En faisant ça, ton script sera beaucoup plus limpide.
Admettons, un fichier users.txt
Avec dedans 2 enregistrements.
toto:123456
lulu:roxor
On écrit ensuite quelques fonctions permettant de travailler.
USERS_FILE = 'users.txt' def user_save(user_name, user_password): with open(USERS_FILE, 'a') as f: f.write('{}:{}\n'.format(user_name, user_password)) def users_load(): users = [] with open(USERS_FILE) as f: for line in f: users.append(line.rstrip().split(':')) return users def user_exists(user_name): users = users_load() for name, _ in users: if name == user_name: return True return False def user_connect(user_name, user_password): users = users_load() for name, password in users: if name == user_name: if password == user_password: return True break return False
Puis on effectue quelques tests pour voir si tout fonctionne comme on veut.
print(user_connect('toto', '1234')) print(user_connect('toto', '123456')) print(user_exists('lulu')) print(user_connect('lulu', 'roxor')) name = 'loulou' password = '42çarox' if not user_exists(name): user_save(name, password) print(name, 'saved') else: print('username', name, 'exists') print(user_connect(name, '123456')) print(user_connect(name, password))
Et voilà, tu vois quelque chose de compliqué là-dedans ?
Tu peux aussi mettre d'autres parties de ton programme dans des fonction, le message de connexion au terminal, le menu, etc.
En faisant ça, ton script sera beaucoup plus limpide.
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
2 janv. 2020 à 21:34
2 janv. 2020 à 21:34
ça marche pas pour moi, a moins que je fasse la mauvaise technique ou le mauvais placement, j'ai tout mis dans un seul et même programme (a part les utilisateurs bien sur)
Tu plaisantes ?
Le script que je t'ai mis n'est pas à placer comme ça dans ton fichier, il est à lire, comprendre, cela fait tu pourras intégrer cela à ton script.
De toute façon, je crois qu'il faut que tu repasses par la case tuto, là tu es ivre et en excès de vitesse, tu perds le contrôle de ton véhicule, tu vas bientôt te crasher dans le pilier de pont un peu plus loin.
Le script que je t'ai mis n'est pas à placer comme ça dans ton fichier, il est à lire, comprendre, cela fait tu pourras intégrer cela à ton script.
De toute façon, je crois qu'il faut que tu repasses par la case tuto, là tu es ivre et en excès de vitesse, tu perds le contrôle de ton véhicule, tu vas bientôt te crasher dans le pilier de pont un peu plus loin.
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
>
trifou
3 janv. 2020 à 12:42
3 janv. 2020 à 12:42
Mince, je croyais que tu allais comprendre le sarcasme, mais bon.
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
3 janv. 2020 à 15:54
3 janv. 2020 à 15:54
Tu m'a quand-même bien aidé merci !
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
3 janv. 2020 à 16:14
3 janv. 2020 à 16:14
OwO j'ai un nouveau problème : je n'arrive pas a supprimer un utilisateur, quelle commande dois-je utiliser ? (désolé mais j'ai un piètre niveau en utilisation de fichiers externes au programme)
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
>
trifou
3 janv. 2020 à 18:53
3 janv. 2020 à 18:53
Merci ! C'est plus pratique maintenant !
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
3 janv. 2020 à 22:53
3 janv. 2020 à 22:53
Ah ! non en fait, je croyais que ça marchait comme il n'y avait pas de message d'erreur mais ça ne marche pas.
je cherche a faire ça avec cette commande:
mais ça ne marche pas, pouvez-vous m'aider ?
je cherche a faire ça avec cette commande:
u = input("Entrez ceci : '<pseudo>:<mdp>' : ") users_file.remove("{}".format(u)) if u not in users_file: print("Suppression effectuée avec succès !") else: print("Echec de la supression.")
mais ça ne marche pas, pouvez-vous m'aider ?
Bonjour,
Lorsqu'on cherche à supprimer un utilisateur, donc une opération d'administration, on se fiche du mot de passe, d'ailleurs un administrateur n'a pas à connaître les mots de passes des utilisateurs. La seule chose dont on dispose est (ici) le pseudo.
Donc on charge le fichier dans une liste (avec readlines), on parcourt cette liste, on scinde la ligne par le séparateur de valeurs, on regarde si le premier élément vaut le pseudo à supprimer et on supprime la ligne dans ce cas.
Cette opération effectuée, on écrit la liste modifiée dans le fichier (avec writelines).
Mais généralement, on ne supprime pas vraiment un utilisateur, on rend plutôt un compte inactif, par exemple ajouter un 3ème élément dans ton fichier users avec pour valeur 0 ou 1, 0 signifiera que le compte est inactif.
Lorsqu'on cherche à supprimer un utilisateur, donc une opération d'administration, on se fiche du mot de passe, d'ailleurs un administrateur n'a pas à connaître les mots de passes des utilisateurs. La seule chose dont on dispose est (ici) le pseudo.
Donc on charge le fichier dans une liste (avec readlines), on parcourt cette liste, on scinde la ligne par le séparateur de valeurs, on regarde si le premier élément vaut le pseudo à supprimer et on supprime la ligne dans ce cas.
Cette opération effectuée, on écrit la liste modifiée dans le fichier (avec writelines).
Mais généralement, on ne supprime pas vraiment un utilisateur, on rend plutôt un compte inactif, par exemple ajouter un 3ème élément dans ton fichier users avec pour valeur 0 ou 1, 0 signifiera que le compte est inactif.
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
>
trifou
4 janv. 2020 à 11:13
4 janv. 2020 à 11:13
Ah ! Donc je dois présenter comme ça pour rendre un compte inactif ?
user:mdp:0
user:mdp:0
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
4 janv. 2020 à 12:48
4 janv. 2020 à 12:48
euh la commande ne marche pas à moins que je me trompe
(je pense que je me trompe)
le code:
(je pense que je me trompe)
le code:
fic = open("105 12.46.13.txt", "r") print("Liste des utilisateurs :") content = fic.read() print(content) u=input("Quel utilisateur souhaitez vous supprimer (entrez son pseudonyme) : ") fic.readlines() if u in fic: fic.writelines("") print("Suppression efféctuée avec succès !") fic.close() else: print("Echec de la suppression.") fic.close()
Ce n'est pas que tu te trompes, mais c'est que tu fais n'importe quoi.
fic.read() lit l'intégralité du fichier et retourne le contenu entier du fichier dans une chaine.
fic.readlines() lit l'intégralité du fichier et retourne une liste des lignes du fichier.
https://docs.python.org/3/library/io.html#io.IOBase.readlines
A tester sur un fichier users.txt avec par ex. des valeurs comme.
Et viens pas encore me dire que ça ne fonctionne pas :D
fic.read() lit l'intégralité du fichier et retourne le contenu entier du fichier dans une chaine.
fic.readlines() lit l'intégralité du fichier et retourne une liste des lignes du fichier.
https://docs.python.org/3/library/io.html#io.IOBase.readlines
user_to_del = 'titi' with open('users.txt') as f: users = f.readlines() for user in users: # En cas de ligne vide éventuelle dans le fichier if not user.strip(): continue # Séparation en 2 name, _ = user.split(':', 1) if name == user_to_del: users.remove(user) print('user', user_to_del, 'deleted') break else: raise ValueError('user {} not found'.format(user_to_del)) with open('users.txt', 'w') as f: f.writelines(users)
A tester sur un fichier users.txt avec par ex. des valeurs comme.
toto:123456
lulu:roxor
titi:mdp
lily:plip
Et viens pas encore me dire que ça ne fonctionne pas :D
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
4 janv. 2020 à 14:41
4 janv. 2020 à 14:41
je pense que c'est sensé fonctionner mais idle me dit que là :
il y a un problème d'indentation
user_to_del = '' user_to_del = input("Veuillez entrer un pseudonyme : ") with open('users.txt') as f: users = f.readlines() for user in users: if not user.strip(): continue name, _ = user.split(':', 1)#ici if name == user_to_del: users.remove(user) print('user', user_to_del, 'deleted') break else: raise ValueError('user {} not found'.format(user_to_del)) with open('users.txt', 'w') as f: f.writelines(users)
il y a un problème d'indentation
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
4 janv. 2020 à 16:02
4 janv. 2020 à 16:02
d'après IDLE du moins
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
1 549
4 janv. 2020 à 17:33
4 janv. 2020 à 17:33
peut-être en faisant quelques exercices avec indentation?
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
4 janv. 2020 à 17:38
4 janv. 2020 à 17:38
CCM écorche mon code voici le bon:
user_to_del = ''
user_to_del = input("Veuillez entrer un pseudonyme : ")
with open('users.txt') as f:
users = f.readlines()
for user in users:
if not user.strip():
continue
name, _ = user.split(':', 1)
if name == user_to_del:
users.remove(user)
print('user', user_to_del, 'deleted')
break
else:
raise ValueError('user {} not found'.format(user_to_del))
with open('users.txt', 'w') as f:
f.writelines(users)
user_to_del = ''
user_to_del = input("Veuillez entrer un pseudonyme : ")
with open('users.txt') as f:
users = f.readlines()
for user in users:
if not user.strip():
continue
name, _ = user.split(':', 1)
if name == user_to_del:
users.remove(user)
print('user', user_to_del, 'deleted')
break
else:
raise ValueError('user {} not found'.format(user_to_del))
with open('users.txt', 'w') as f:
f.writelines(users)
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
Modifié le 4 janv. 2020 à 19:26
Modifié le 4 janv. 2020 à 19:26
user_to_del = "" user_to_del = input("Veuillez entrer un pseudonyme : ") with open('users.txt') as f: users = f.readlines() for user in users: if not user.strip(): continue name, _ = user.split(':', 1) if name == user_to_del: users.remove(user) print('user', user_to_del, 'deleted') break else: raise ValueError('user {} not found'.format(user_to_del)) with open('users.txt', 'w') as f: f.writelines(users)
On va quand même pas jouer aux devinettes !
Edite ton précédent message et mets en forme correctement ton code.
On ne mélange pas indentation avec espaces et indentation avec tabulations, et j'ai même pas du à tester ton code, le fait de prendre ton code en sélection, en partant du début et en avançant, on voit qu'il y a une tabulation avant le raise...
Edite ton précédent message et mets en forme correctement ton code.
On ne mélange pas indentation avec espaces et indentation avec tabulations, et j'ai même pas du à tester ton code, le fait de prendre ton code en sélection, en partant du début et en avançant, on voit qu'il y a une tabulation avant le raise...
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
>
trifou
4 janv. 2020 à 19:27
4 janv. 2020 à 19:27
voila !
trifou
>
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
Modifié le 4 janv. 2020 à 20:39
Modifié le 4 janv. 2020 à 20:39
https://www.commentcamarche.net/infos/25923-faire-un-copier-coller/#copier-coller-un-texte
https://forums.commentcamarche.net/forum/affich-36391730-automatiser-une-creation-de-compte-sur-un-programme#22
Si t'es pas capable de faire ça, laisse tomber la programmation.
J'ai l'impression que tu trolles, donc pour ma part, je ne réponds plus.
https://forums.commentcamarche.net/forum/affich-36391730-automatiser-une-creation-de-compte-sur-un-programme#22
Si t'es pas capable de faire ça, laisse tomber la programmation.
J'ai l'impression que tu trolles, donc pour ma part, je ne réponds plus.
Frizti
Messages postés
112
Date d'inscription
mercredi 23 octobre 2019
Statut
Membre
Dernière intervention
25 février 2023
18
4 janv. 2020 à 20:58
4 janv. 2020 à 20:58