Ca s'éclaircit vachement pour moi pour tout ce qui touche aux conceptions de base de données.
J'ai enfin compris des choses que je n'avais jamais assimilé!!
Là je suis vraiment content
Je pense effectivement qu'il me faut réfléchir à nouveau sur ma conception générale
de l'organisation de mon SGBDR.
Il y a la question 2 où je bloque encore
Je crois que je n'ai pas été très clair et qu'il y a vraiment un truc que je n'arrive pas à comprendre.
Ce que je ne comprends pas, c'est cette partie:
Pour redire clairement les choses, j'ai un utilisateur qui se trouve devant une première page de formulaire où il est invité àL'utilisateur peut, une fois inscrit se connecter sur le site. Quand il se connecte, on vérifie que son pseudo existe dans la table utilisateur, s'il existe on vérifie qu'il a le bon mot de passe qui lui correspond. On sélectionne alors son identifiant que l'on stock en $_SESSION par exemple.SELECT id_user FROM user WHERE pseudo=$pseudo AND mdp=$mdp
rentrer son nom d'utilisateur et son mot de passe. Chose faite, il clique sur envoyer.
Moi, je veux récupérer son id_user pour créer/déclarer une variable $_SESSION['id_user']
dont la présence sera vérifiée sur toutes les pages de ma session à accès réservé.
Si la variable est absente, l'utilisateur est reconduit en dehors de la session avec un header.
Il est donc nécessaire que cette variable soit présente pour que l'utilisateur puisse naviguer sur la session à accès réservé.
Pour reprendre tes mots ci-dessus, il faut que je sélectionne son identifiant.
Parmi toutes mes variables id_user qui sont dans ma base de données, il va falloir
que je sélectionne CELLE qui correspond au nom d'utilisateur et au mot de passe de l'utilisateur.
Pour sélectionner la bonne variable parmi toutes les variables du champs id_user dans la base de données,
il faut que je sache qu'elle est la bonne variable parmi toutes les variables du champs id_user dans la base de données.
Désolé pour la redondance mais tu suis
Parce-que si je ne sais pas laquelle est-ce, je ne peux pas la choisir.
Il me faut donc pouvoir identifier à quel couple nom d'utilisateur / mot de passe correspond
l'utilisateur qui se trouve derrière son écran et dont je ne vois pas le visage.
C'est ça que je veux faire et que je n'arrive pas à faire car je ne comprends comment il faut que je m'y prenne
pour en arriver là
Pour en arriver là, je comprends d'après ton code SQL là où tu veux en venir:
SELECT id_user FROM user WHERE pseudo=$pseudo AND mdp=$mdp
Tu te dis il faut que je rapproche les données saisies par l'utilisateur au premier formulaire et les compareravec l'id_user qui correspond à ces données dans la colonne id_user de la base de données.
A partir de là je peux récupérer le bon id_user car j'ai pu l' identifier grâce à la saisie de l'utilisateur.
Cela signifie que tant que l'utilisateur ne saisit pas de données, et plus précisément tant qu'il
n'appuie pas sur envoi après avoir saisi ses données, aucun rapprochement ne peut être fait.
J'en déduis donc que la partie de code
SELECT id_user FROM user WHERE pseudo=$pseudo AND mdp=$mdp
a du sens seulement une fois que l'utilisateur a appuyé sur envoi.Du coup, j'en déduis que cette partie de code ne peut pas se trouver sur la page du premier formulaire mais
sur une autre page qui suit la page du premier formulaire.
Je pense alors en premier lieu à la page de traitement du premier formulaire.
Et j'identifie le bon id_user en regardant dans la base de données quels
nom d'utilisateur et mot de passe correspondent respectivement à quel
nom d'utilisateur et mot de passe déjà saisis dans le premier formulaire.
Mon bon id_user est donc celui qui se trouve sur la même ligne que les
nom d'utilisateur et mot de passe dans ma base de données.
A mon sens je devrais donc avoir dans ma comparaison des
variables $_POST['nom_utilisateur'] et $_POST['mot_de_passe']
Si la syntaxe de SQL n'accepte pas ce type d'écriture, je dois donc
sûrement déclarer en premier lieu:
$nom_utilisateur=$_POST['nom_utilisateur']
$mot_de_passe=$_POST['mot_de_passe']
pour ensuite écrire en SQL mes variables
$nom_utilisateur et $mot_de_passe
faisant respectivement référence à $_POST['nom_utilisateur'] et $_POST['mot_de_passe']
L'identifiant, alors sélectionné, je dois le stocker en $_SESSION.
J'écris donc là où je déclare déjà (tjs dans la page de traitement de formulaire):
$_SESSION['nom_utilisateur'] = $utilisateur;
$_SESSION['mot_de_passe'] = $mot_de_passe;
cette ligne en plus:
$_SESSION['id_user'] = $id_user;
C'est comme ça que je conçois vaguement les choses
mais je ne comprends pas très bien tout ça.
Je ne sais pas si tu peux m'expliquer un peu plus précisément comment trouver le bon id_user,
comment le sélectionner et comment le stocker en $_SESSION?
A propos de ton code:
SELECT id_user FROM user WHERE pseudo=$pseudo AND mdp=$mdp
j'ai deux petites questions sur le signe $:pourquoi pseudo et mdp n'ont pas le signe $?
pourquoi $pseudo et $mdp ont le signe $?
D'après mon apprentissage, toute donnée se trouvant dans une base de donnée qu'on ressort dans une page de code prend le signe $.
Toute variable en général prend le signe $.
Toute donnée faisant référence à une variable dans une base de donnée qu'on écrit en SQL mais qu'on ne sort pas de la base de données
pour la mettre dans du code ne prend pas de $.
Mais c'est en fait assez flou pour moi.
Je ne sais pas si tu peuxx m'éclairer aussi un peu là-dessus?
Aussi, à propos de la ligne $_SESSION['id_user'] = $id_user; il faut bien le $ devant id_user?
je n'écris pas $_SESSION['id_user'] = id_user; ?