Afficher le profil d'un membre avec $_GET ?
Résolu/Fermé
rolly41
Messages postés
242
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
18 septembre 2023
-
5 févr. 2013 à 00:05
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 - 5 févr. 2013 à 13:52
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 - 5 févr. 2013 à 13:52
A voir également:
- Afficher le profil d'un membre avec $_GET ?
- Qui regarde mon profil facebook - Guide
- Photo de profil - Guide
- Qui regarde mon profil instagram - Guide
- Ajouter un profil netflix payant - Guide
- Membre indisponible vinted - Guide
2 réponses
Panoramix.
Messages postés
2655
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
28 décembre 2016
1 096
Modifié par Panoramix. le 5/02/2013 à 00:27
Modifié par Panoramix. le 5/02/2013 à 00:27
Salut,
Tu dois mettre dans ton lien le nom de ta variable GET ainsi que sa valeur. Le plus simple est d'utiliser la clé primaire du profile et de la passer à ta page par GET. Au final tu auras un truc comme "...profil.php?id=1".
Dans ton script "profil.php" tu récupères ta variables GET ($_GET['id]) et tu fais un SELECT dans ta table contenant les profils avec comme condition ce que tu as reçu par GET.
Voilà !
Tu dois mettre dans ton lien le nom de ta variable GET ainsi que sa valeur. Le plus simple est d'utiliser la clé primaire du profile et de la passer à ta page par GET. Au final tu auras un truc comme "...profil.php?id=1".
Dans ton script "profil.php" tu récupères ta variables GET ($_GET['id]) et tu fais un SELECT dans ta table contenant les profils avec comme condition ce que tu as reçu par GET.
Voilà !
Panoramix.
Messages postés
2655
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
28 décembre 2016
1 096
Modifié par Panoramix. le 5/02/2013 à 11:33
Modifié par Panoramix. le 5/02/2013 à 11:33
La première partie me semble correcte à première vue. Par contre, avant d'aller trifouiller dans ta base de données pour tirer les informations du profil, je ferai un petit test pour contrôler que la variable $_GET['id'] n'est pas vide ; ça évitera de te péter à la gueule si ton ID est vide !
Concernant la seconde partie, ça me semble OK, également.
Petite remarque : je te conseille fortement de créer une fonction qui te permet de te connecter à ta base de donnée. Un truc comme ça :
L'avantage de ce système est qui si tu changes de serveur de base de données (par exemple), tu ne seras pas obligé de faire toutes les pages de ton site. Il te suffiras de modifier la fonction.
"J'utilise $_GET['id'] pour savoir si un membre est connecté. Si il n'est pas connecté, $_GET['id']= "0" par défaut, si il est connecté, l'id sera $_GET['id']=l'id du membre connecté.
Le $_GET['id'] ne risque pas de fausser le id du profil que je souhaite visiter ?" : bien sûr que oui ! Il faut que cet ID corresponde à la clé primaire de ta table "profil". L'ID doit être un moyen infaillible pour identifier les membres en toutes circonstances ! Un UK (index unique) ne fonctionnera pas pour la simple raison que tu peux le modifier : donc bonjour les liens morts.
Quel est la structure de ta table ?
Voilà !
Concernant la seconde partie, ça me semble OK, également.
Petite remarque : je te conseille fortement de créer une fonction qui te permet de te connecter à ta base de donnée. Un truc comme ça :
FUNCTION ConnectBDD() { mysql_connect("localhost", "root", ""); mysql_select_db("site"); }
L'avantage de ce système est qui si tu changes de serveur de base de données (par exemple), tu ne seras pas obligé de faire toutes les pages de ton site. Il te suffiras de modifier la fonction.
"J'utilise $_GET['id'] pour savoir si un membre est connecté. Si il n'est pas connecté, $_GET['id']= "0" par défaut, si il est connecté, l'id sera $_GET['id']=l'id du membre connecté.
Le $_GET['id'] ne risque pas de fausser le id du profil que je souhaite visiter ?" : bien sûr que oui ! Il faut que cet ID corresponde à la clé primaire de ta table "profil". L'ID doit être un moyen infaillible pour identifier les membres en toutes circonstances ! Un UK (index unique) ne fonctionnera pas pour la simple raison que tu peux le modifier : donc bonjour les liens morts.
Quel est la structure de ta table ?
Voilà !
rolly41
Messages postés
242
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
18 septembre 2023
1
Modifié par rolly41 le 5/02/2013 à 12:12
Modifié par rolly41 le 5/02/2013 à 12:12
Structure de la table :
id => int(11) => AI => primaire
login(utilisé uniquement pour ce connecter au site, non visible par les membres)
pseudo (visible par les membres)
passwd
mail
date_inscription
time_inscription
date_connexion
time_connexion
presentation
avatar
Chaque page on un include vers la page debut.php qui elle est appelé avant tout les autre code.
Dans cette page se trouve la connexion à la base de donnée, et dans la page pied.php se trouve mysql_clos();
Pour savoir si un membre est connecté, j'utilise maintenant :
En revanche, j'ai un petit problème pour mettre le lien dans une boucle :
id => int(11) => AI => primaire
login(utilisé uniquement pour ce connecter au site, non visible par les membres)
pseudo (visible par les membres)
passwd
date_inscription
time_inscription
date_connexion
time_connexion
presentation
avatar
Chaque page on un include vers la page debut.php qui elle est appelé avant tout les autre code.
Dans cette page se trouve la connexion à la base de donnée, et dans la page pied.php se trouve mysql_clos();
Pour savoir si un membre est connecté, j'utilise maintenant :
$id=(isset($_SESSION['id']))?(int) $_SESSION['id']:0; $pseudo=(isset($_SESSION['login']))?$_SESSION['login']:'Invité';
En revanche, j'ai un petit problème pour mettre le lien dans une boucle :
<table width="98%" border="1"> <tr> <td colspan="2" align="center"> <?php $sql = 'SELECT id FROM membre ORDER BY id DESC LIMIT 1'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); echo '<i>Nous avons '.$data['id'].' membres inscrits</i><br>'; ?> </td> </tr> <tr> <td align="center" width="33%">Membres</td><td align="center" width="34%">Inscrit le</td> </tr> <?php $sql = 'SELECT id, login,date FROM membre ORDER BY id DESC LIMIT 10'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data = mysql_fetch_assoc($req)) { echo '<tr><td align="center"><a href="profil.php?id='.$date['id'].'"><font color="000099">'.htmlentities($data['login']).'</font></a></td><td align="center"><font color="000099">'.htmlentities($data['date']).'</font></td></tr>'; } ?> </table>
rolly41
Messages postés
242
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
18 septembre 2023
1
5 févr. 2013 à 13:52
5 févr. 2013 à 13:52
Pour le lien vers le profil, c'est corrigé :)
<a href="profil.php?id='.htmlentities($data['id'], ENT_QUOTES, 'UTF-8').'">'.htmlentities($data['login']).'</a>
Modifié par rolly41 le 5/02/2013 à 01:37
Pour afficher l'id dans le lien, j'utilise donc
Pour afficher le profil du membre connecté, j'ai trouvé ceci (dans profil.php ? ou avant le lien vers le profil) :
Le lien de mon propre profil sera donc
J'utilise $_GET['id'] pour savoir si un membre est connecté. Si il n'est pas connecté, $_GET['id']= "0" par défaut, si il est connecté, l'id sera $_GET['id']=l'id du membre connecté.
Le $_GET['id'] ne risque pas de fausser le id du profil que je souhaite visiter ?