par
sadeq » 01 juil. 2005, 13:49
Juste avant de continuer si tu t'inscrivais Icha en tant que membre ça serait plus simple pour toi de suivre ton post (et en plus tu perds rien)
Maintenant ton problème, on va le gérer petit à petit :
1. le problème de l'authentification avant l'accès à la fiche technique d'un artiste peut être vu comme suit :
Un utilisateur qui souhaite consulter une fiche technique d'artiste doit s'identifier. Ta requête
Code : Tout sélectionner
$req="SELECT * FROM users WHERE user_name='$pseudo' AND PASSWORD='$motdepasse'";
le précise bien. On comprend par là que t'as un formulaire d'identification des utilisateurs qui poste le $pseudo et $motdepasse
Dans ce cas il faut d'abord recevoir ces paramètres postés avant d'exécuter la requête.
Une fois cette dernière retourne un resultat positif : utilisateur connu, tu dois faire une redirection vers la fiche technique de l'article.
Je remarque aussi que ton utilisateur doit toujours être authentifié à chaque nouveau choix d'un artiste.
To script effectue toujours la requête et met à jour une session qui n'est pas utilisée dans le bout de code que tu fournis.
if(mysql_num_rows($requet)>0)
{
// initialisation de la session
session_start();
$_SESSION['pseudo']=$pseudo;
A ta place, je ferai l'authentification d'un utilisateur une fois par chargement de la page. Pour cela j'ouvrirai la session au début de chaque page (session_start()) et je vérifierai si l'identité du client correspond d'abord aux valeurs stockée dans sa session une première fois.
Par contre, je donnerai la mais à un utilisateur athentifié de choisir des artistes et d'accèder à leurs fiches techniques tant qu'une session valide existe (sans refaire de requêtage SQL)
Je ne te demande pas de changer ton programme mais de l'organiser.
Il faut suivre cet enchainement :
1. ouvrir une session_start()
2. si les variables pseudo/motdepasse de la session n'existent pas ou non compatibles avec l'identité postée : faire la requête SQL pour athentifier l'utilisateur et enregistrer le membre dans la session si ok.
Ici : je te propose de mémoriser dans la session un id de membre et de le transmettre dans le postage client pour reconnaitre un membre authentifié par la suite sans devoir trimbaler les pseudo/motdepasse
3. si l'étape 2 a répondu que le membre est connu : afficher la(les) fiche(s) technique(s) de(s) l'article(s) que l'utilisateur aura choisi.
sinon rester sur la liste des fiches techniques pour d'autres tentatives.
La redirection n'est pas un problème sauf que je remarque que tu achoisi d'utiliser des Hyper-liens pour rediriger manuellement alors que c'est possible de rediriger automatiquement soit en bien plaçant un include ou un header de la page ciblée.
PS: Toutefois je ne comprends pas cette requête
$rep="SELECT id_artiste FROM users WHERE id_artiste=". $a .";"; Quel relation entre id_artiste et la table users ?? va falloir explique l'objectif de ton programme.
Juste avant de continuer si tu t'inscrivais Icha en tant que membre ça serait plus simple pour toi de suivre ton post (et en plus tu perds rien)
Maintenant ton problème, on va le gérer petit à petit :
1. le problème de l'authentification avant l'accès à la fiche technique d'un artiste peut être vu comme suit :
Un utilisateur qui souhaite consulter une fiche technique d'artiste doit s'identifier. Ta requête
[code]$req="SELECT * FROM users WHERE user_name='$pseudo' AND PASSWORD='$motdepasse'"; [/code]
le précise bien. On comprend par là que t'as un formulaire d'identification des utilisateurs qui poste le $pseudo et $motdepasse
Dans ce cas il faut d'abord recevoir ces paramètres postés avant d'exécuter la requête.
Une fois cette dernière retourne un resultat positif : utilisateur connu, tu dois faire une redirection vers la fiche technique de l'article.
Je remarque aussi que ton utilisateur doit toujours être authentifié à chaque nouveau choix d'un artiste.
To script effectue toujours la requête et met à jour une session qui n'est pas utilisée dans le bout de code que tu fournis.
[quote]
if(mysql_num_rows($requet)>0)
{
// initialisation de la session
session_start();
$_SESSION['pseudo']=$pseudo;
[/quote]
A ta place, je ferai l'authentification d'un utilisateur une fois par chargement de la page. Pour cela j'ouvrirai la session au début de chaque page (session_start()) et je vérifierai si l'identité du client correspond d'abord aux valeurs stockée dans sa session une première fois.
Par contre, je donnerai la mais à un utilisateur athentifié de choisir des artistes et d'accèder à leurs fiches techniques tant qu'une session valide existe (sans refaire de requêtage SQL)
Je ne te demande pas de changer ton programme mais de l'organiser.
Il faut suivre cet enchainement :
1. ouvrir une session_start()
2. si les variables pseudo/motdepasse de la session n'existent pas ou non compatibles avec l'identité postée : faire la requête SQL pour athentifier l'utilisateur et enregistrer le membre dans la session si ok.
Ici : je te propose de mémoriser dans la session un id de membre et de le transmettre dans le postage client pour reconnaitre un membre authentifié par la suite sans devoir trimbaler les pseudo/motdepasse
3. si l'étape 2 a répondu que le membre est connu : afficher la(les) fiche(s) technique(s) de(s) l'article(s) que l'utilisateur aura choisi.
sinon rester sur la liste des fiches techniques pour d'autres tentatives.
La redirection n'est pas un problème sauf que je remarque que tu achoisi d'utiliser des Hyper-liens pour rediriger manuellement alors que c'est possible de rediriger automatiquement soit en bien plaçant un include ou un header de la page ciblée.
PS: Toutefois je ne comprends pas cette requête [b]$rep="SELECT id_artiste FROM users WHERE id_artiste=". $a .";"; [/b] Quel relation entre id_artiste et la table users ?? va falloir explique l'objectif de ton programme.