Page 1 sur 3

Personnaliser une session... (difficulté entre 1 à 100) : 8

Posté : 15 déc. 2006, 21:16
par France-Webmaster
Bonjour à tous... En particulier à ceux qui me soutiennent depuis le début... :)

(Ceci n'est pas un up est un second problème)

Un visiteur se connecte, pseudo et mot de passe...

Il arrive arrive sur la page qui lui concerne comment afficher seulement les informations qui le concerne dans la table 'user' ?

Note : le visiteur est passé par : (dans l'ordre)

- session.html (formulaire)
- vérifLogin.php (vérification sur la table 'user' de l'existence du couple pseudo & pass

Comment trouver l'enregistrement qui lui concerne dans la table ?

J'ai une téori dont je ne suis pas sur...

1) Envoyer par POST $pseudo à la page d'accueil du visiteur logué, de là rechercher et afficher toute les infos concernant en rapport avec la valeur de $pseudo...

Un exemple

Je me logue...
j'arrive dans une page où je vois afficher mon nom, mon age, ma ville, mon adresse... bref tout ce que j'ai rempli l'or de l'inscription et qui ce trouve actuellement dans la base de donnée france-webmaster.fr...

Si ce n'est pas compris dite-le je reformulerais...

Posté : 15 déc. 2006, 21:58
par Cyrano
J'ai l'impression que ton problème ne relève pas du PHP mais du SQL : une bête requête avec une clause WHERE indiquant le pseudo suffirait pour récupérer toutes ces informations :-k

Posté : 16 déc. 2006, 00:38
par France-Webmaster
Ha oui, ça existe... hum... je l'insère sous quel forme et dans quel page...

Posté : 16 déc. 2006, 01:05
par Cyrano
Es-tu déjà en mesure de créer cette requête avant de songer à l'insérer quelque part ? :-k

Ensuite, pour savoir où l'insérer, pose-toi la question suivante : à quel moment en as-tu besoin ?

Posté : 16 déc. 2006, 01:12
par France-Webmaster
J'en est besoin après l'identification, sur la page redirigé...

Posté : 16 déc. 2006, 01:12
par Cyrano
Donc... :?:

Posté : 16 déc. 2006, 01:48
par France-Webmaster
Donc, je doit faire ma requete sql dans la page redirigé ?...
(qui ne tente rien à rien) °°°° (éspèrons que ce soit la bonne réponse...)

Franchement j'ai pas énormément d'indice, je sais à peu pret écrire un requete sql :
$sql = 'clause WHERE pseudo FROM user'; 
ou...
$sql = 'SELECT * FROM user WHERE Catégorie="pseudo"';
C'est ça ? Erreur de syntax ou pas...[/php]

Posté : 16 déc. 2006, 09:31
par Cyrano
prenons cette requête :
$sql = 'SELECT * FROM user WHERE Catégorie="pseudo"';
L'erreur que je peux voir, c'est un nom de colonne avec un caractère accentué : à éviter absolument, sous Windows, ça passera, mais sur un serveur d'hébergement sous Linux, tu risques d'avoir des surprises désagréables.

Ceci dit, la structure de ta requête est correcte :
  1. SELECT * : l'étoile est en général à éviter, il est préférable d'indiquer les colonnes qu'on veut récupérer, donc, «SELECT champ_1, champ2, ..., champ_x»;
  2. FROM user : choix de la table dans laquelle on cherche les données, OK;
  3. WHERE Categorie = 'pseudo' : traduit en français, ça veut dire «Où la colonne "categorie" vaut "pseudo"»
Donc, on est bon jusque là.

Maintenant, un peu de logique : où doit-on inscrire cette requête ? Dans le déroulement du fonctionnement de ton application, entre l'appel de la page (clic sur un lien ou sur un bouton de formulaire) et l'affichage de la page appelée, il y a un certain nombre de traitements qui sont effectués. Suis chronologiquement chaque opération et pose-toi la question : ai-je besoin de ces données ? ta réponse ne peut-être que oui ou non. Ça peut être "pas encore" qu'il faut traduire par "non" tout simplement parce que la prochaine instruction n'utilise pas ces données. Ça peut aussi être "non" parce que ta requête comporte un paramètre dont la valeur doit être récupéré de l'appel de la page précédente : si tu exécutes ta requête avant d'avoir récupéré cette valeur, ta requête sera fausse et tu auras une erreur. Mais ça peut être oui parce que la prochaine instruction va utiliser les données et si elles n'ont pas été récupérées, tu auras une erreur.

Tu es sur la bonne voie, continue et reviens avec la suite si nécessaire.

Posté : 16 déc. 2006, 14:13
par France-Webmaster
Ca donne :
$sql = 'SELECT id,civilite,nom,prenom,client,jour,mois,annee,numero,rue,postal,batiment,etage,porte,ville,pays,fixe,mobile,email,passe FROM membrefw WHERE Categorie="pseudo"';
Je ne doit pas mettre Categorie="$pseudo"'; ??
Et sur la page précédente faire un POST jusqu'ici...

En fait les données personnels de ce visiteurs sont stoker sur une seconde table...

Posté : 16 déc. 2006, 14:35
par France-Webmaster
Quel code php doit-je utiliser dans verifLogin.php pour envoyer

$pseudo de vérifLogin.php à interroger.php ?

Posté : 16 déc. 2006, 14:43
par Cyrano
$sql = 'SELECT id,civilite,nom,prenom,client,jour,mois,annee,numero,rue,postal,batiment,etage,porte,ville,pays,fixe,mobile,email,passe ".
"FROM membrefw ".
"WHERE Categorie="pseudo"';
As-tu besoin de toutes ces données ? Si c'est juste pour identifier ton internaute, c'est beaucoup de données pour rien, sinon, trie ce dont tu as besoin et oublie le reste.
Je ne doit pas mettre Categorie="$pseudo"'; ??
Bien sur que si. Mais n'oublie pas de faire une concaténation propre :
$sql = 'SELECT id,civilite,nom,prenom,client,jour,mois,annee,numero,rue,postal,batiment,etage,porte,ville,pays,fixe,mobile,email,passe ".
"FROM membrefw ".
"WHERE Categorie="'. $pseudo .'"';
Chaque internaute ayant son propre pseudo, tu dois utiliser une variable. Ce que je ne vois pas en revanche dans la requête, ce serait une colonne "pseudo" et je ne vois pas non plus de colonne "Categorie", mais ça, c'est normal, à ce détail près que je ne suis pas convaincu que tu saches pourquoi :-k

Posté : 16 déc. 2006, 14:59
par France-Webmaster
Non je ne veux pas l'identifier mais inscire les infos qui le conserne :

verifLogin.php >>> Envoi à interroger.php POST_['$pseudo'];

Je ne sais pas comment envoyer d'une page php à une autre la variable $pseudo avec sa valeur...

Posté : 16 déc. 2006, 15:04
par Ajoloca
Bonjour,

Je suppose que l'on parle du même sujet
Pourquoi l'envoyer, à quoi te sert $_SESSION['pseudo'] :?:

Posté : 16 déc. 2006, 15:47
par France-Webmaster
Il y a dans cette situation 3 pages :

session.php
verifLogin.php
accueil.php

Le visiteur se logue sur session.php, et les données sont ruçu par verifLogin.php qui redirige vers accueil.php si le couple, pseudo & pass son correct, donc on à besion de $pseudo dans accueil.php pour rechercher dans la table membresfw à la colonne pseudo la valeur $pseudo (pour afficher toute les informations allant avec cette enregistrement), $pseudo a été entrer sur session.php et se dirige vers verifLogin.php et c'est là que l'on doit envoyer à accueil.php donc :

de verifLogin.php

on envoi à accueil.php >>> $pseudo
et on redirige vers accueil.php si le couple, pseudo et pass sont correct...

Posté : 16 déc. 2006, 16:13
par Ajoloca
Re,

Très beau discours =D> mais ça n'empèche en rien que dans "accueil.php" tu as $_SESSION['pseudo'].