Session

Ennemine Messages postés 71 Statut Membre -  
ElementW Messages postés 5690 Statut Contributeur -
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

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    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
    1. Ennemine Messages postés 71 Statut Membre 2
       
      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
    2. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      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
    3. Ennemine Messages postés 71 Statut Membre 2
       
      Merci mon frère gravgun, je vais essayer ta solution, mais dis moi la session peut marcher à locale (Wampserver) pour la tester ?
      0
    4. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      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
    5. Ennemine Messages postés 71 Statut Membre 2
       
      Dans php.ini : session.use_cookies = 1 ??
      0