Session

Fermé
Ennemine Messages postés 67 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 11 juillet 2016 - Modifié par irongege le 14/12/2013 à 14:45
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 15 déc. 2013 à 21:28
Bonjour,



<config>Windows 7 / Chrome 31.0.1650.63</confi

J'ai un site où les utilisateurs peuvent déclarer leurs objets perdus et je veux ajouter les sessions pour qu'un utilisateur puisse accéder a sa déclaration dans la BD et changer ce qu'il veut à partir de son compte. ma question est comment lier les informations(déclaration) rentrée par l'utilisateur avec son compte.
Svp

1 réponse

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
14 déc. 2013 à 14:27
Salut, mettons que t'as deux tables:
Celle des comptes
+----+-----------------+-------------------------+------------------+
| id | nom_utilisateur | hash_mot_de_passe | autres champs... |
+----+-----------------+-------------------------+------------------+
| 0 | test | 03cfd743661f07975fa2f12 | ... |
| 1 | Ennemine | 3330b4373640f9e4604991e | ... |
| 2 | EtAinsiDeSuite | ec11312386ad561674f724b | ... |
+----+-----------------+-------------------------+------------------+
Et celle des objets perdus:
+----+--------------+------------------+-----------+-----------+
| id | objet_perdu | description | id_compte | autres... |
+----+--------------+------------------+-----------+-----------+
| 0 | Veste noire | Elle a ... | 1 | ... |
| 1 | Bonnet rouge | Marqué NY dessus | 2 | ... |
| 2 | Et le reste | Description | 0 | ... |
+----+--------------+------------------+-----------+-----------+
La colonne
id_compte
contient l'
id
du compte qui a déclaré l'objet perdu, c'est tout bête.

Les sessions ont une utilité ici: retenir qu'un utilisateur est connecté, en l'occurence elle ne contiendra que l'
id
du compte en question quand l'utilisateur se sera connecté avec le bon login+mdp. Elle ne sera pas utilisée pour lier directement les infos compte/déclaration, une requête à la BDD devra être faite pour récupérer ces infos (par ex
'SELECT * FROM objets_perdus WHERE id_compte=' . $_SESSION['id_compte']
)
0
Ennemine Messages postés 67 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 11 juillet 2016 2
14 déc. 2013 à 14:45
Beh, je n'ai pas utilisé l'ID dans ma table d'objet perdu il n'y a que

+----+--------------+------------------+-----------+-----------+
|nom | e-mail | tel |objet perdu | description | photo |
+----+--------------+------------------+-----------+-----------+

C'est possible de faire la session sans cet ID?
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
14 déc. 2013 à 14:58
C'est possible de faire sans, c'est juste un poil plus lent et prends plus de place, dans ce cas la colonne
id_compte
sera juste
compte
et contiendra le nom d'utilisateur, dont on pourra récupérer les infos avec
'SELECT * FROM comptes WHERE nom=' . $nom_de_l_utilisateur
; et dans l'autre sens
'SELECT * FROM objets_perdus WHERE compte=' . $nom_de_l_utilisateur
.
Attention aux noms de compte dans les requêtes: inderdis les noms de compte avec des antislash (
\
), guillemets (
'
ou
"
), et utilise mysql_real_escape_string si tu utilises MySQL, ou les requêtes préparées si tu utilises PDO.
0
Ennemine Messages postés 67 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 11 juillet 2016 2
14 déc. 2013 à 15:32
Merci mon frère gravgun, je vais essayer ta solution, mais dis moi la session peut marcher à locale (Wampserver) pour la tester ?
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 14/12/2013 à 15:38
Je suis 99% sûr que les sessions sont activées sur WampServer (je ne m'en sers pas du coup je suis pas 100% sûr), donc normalement ça devrait fonctionner sans pépin; vérifie quand même quelle valeur a session.use_cookies dans le php.ini.
Pour la base de donnés, qui est une MySQL, il faut se connecter sur
localhost:3306
(quel que soit l'API que tu utilises: les fonctions
mysql_*
ou PDO)
0
Ennemine Messages postés 67 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 11 juillet 2016 2
14 déc. 2013 à 16:05
Dans php.ini : session.use_cookies = 1 ??
0