Page 1 sur 1

récupérer un identifiant avec les sessions

Posté : 27 mai 2007, 18:57
par JohnWeb
Bonjour,

Voilà mon histoire:

Après s'être authentifié avec son login et son mot de passe, un utilisateur laisse un message sur un forum. Lorsqu'il laisse son message, je voudrais enregistrer dans ma base de données l'identifiant qui correspond à son login (pas son login donc, mais juste le chiffre qui y correspond).

J'ai essayé de faire ça avec les sessions en utilisant ce code dans la page du message:
session_start(); 

 //connexion au serveur 
include("connexion.php"); 


//Connection à mysql et sélection de la base de données 
$select = mysql_select_db($studio); 


     
 //récupération des valeurs des champs: 
  
     // c'est le cas d'une réponse 
    $idForum = $_GET["forum"]; 
    $idDiscussion = $_GET["discussion"]; 
    $Message_idMessage = $_GET["parent"]; 



    
  //Sujet: 
  $Sujet = $_POST['Sujet'] ; 
  //Contenu: 
  $Contenu = $_POST['Contenu']; 
  //Type de message: 
  $LibelleTypeMessage = $_POST['idTypeMessage']; 
  //Qualifiant: 
  $LibelleQualifiant = $_POST['idQualifiant']; 
  //Date de création du message: 
  $DateCreation=date("d/m/Y");  
  //Fichier Attaché: 
  $FichierAttache = $_FILES["FichierAttache"]["name"]; 
  // Login: 
  $Utilisateur_idUtilisateur = $_SESSION['idUtil'];  
   
    
  // On vérifie si les champs sont vides  
if(empty($Sujet) OR empty($Contenu))  
    {  
    echo '<font color="red">Attention,certains champs sont restés vides !</font>';  
    }  
     
    // Aucun champ n'est vide, on peut enregistrer dans la table  
else       
    {  
    
//création de la requête SQL- insertion des champs dans la BDD 
  $requete = "INSERT INTO message (idMessage, Utilisateur_idUtilisateur,Discussion_idDiscussion, Message_idMessage, Sujet, Contenu, FichierAttache, DateCreation,TypeMessage_idTypeMessage, Qualifiant_idQualifiant) VALUES ('','$Utilisateur_idUtilisateur','$idDiscussion','$Message_idMessage','$Sujet','$Contenu','$FichierAttache', now(), '$LibelleTypeMessage', '$LibelleQualifiant')" ;  
Dans mes fichiers de sessions j'ai la donnée suivante:
idUtil|s:1:"6";
c'est donc le 6 que je voudrais insérer dans ma table message.


J'espère que vous pourrez m'aider.... :-D

Posté : 28 mai 2007, 11:43
par Ryle
A priori tu fais bien ce qu'il faut... donc dis nous plutôt ce qui ne fonctionne pas ou ce que tu obtiens par rapport à ce que tu attends... as-tu des messages d'erreur ?

Qu'obtiens-tu quand tu affiches $_SESSION['idUtil'] ?
et quand tu affiches ta requêtes ?

Parce qu'en dehors de la fin du else et l'exécution de la requête, je ne vois pas du tout ce qui peut te gener ? :)

Posté : 29 mai 2007, 20:03
par Invité
Comment vérifier ce qu'affiche $_SESSION['idUtil']?
Je fais un écho et je regarde le résultat?

On m'a déjà conseillé de faire ça, mais je n'ai pas réussi à afficher la requête, je ne comprends pas bien le principe. Alors quelqu'un va sûrement me dire de lire un tutoriel ou de la doc, mais c'est ce que je fais depuis des semaines et je n'ai toujours pas réussi...c'est pour ça que je me tourne vers vous...

Merci de votre coup de main! :wink:

Posté : 30 mai 2007, 09:47
par alaingpl
Salut,
pour afficher tes variables de session tu peux faire ça :
<? print_r($_SESSION) ; ?>

Posté : 30 mai 2007, 11:25
par Snoops
Moi je voudrais savoir : si ton identifiant n'est pas ton login, un login peut être en double ???
Le but d'un login est d'être un identifiant unique...

- Pour afficher toutes tes variables de session, comme dit précédemment,
print_r($_SESSION); // Et ce pour toutes tes variables ($_POST, $_GET, $variable, $tableau ...)
- Pour n'afficher la valeur que d'une seule variable mise en session :
echo $_SESSION['nom_variable'];
- Si tu désire afficher ta requête :
echo $requete; // Dans ton code tu enregistre ta requete SQL dans la variable "$requete", tu peux donc afficher le contenu de cette variable afin de voir ce qui sera envoyé à la BDD et ainsi corriger une erreur quelconque

ça marche enfin!

Posté : 07 juin 2007, 00:47
par JohnWeb
Me re-voilà

J'ai enfin réussi à mettre en place ce que je voulais et en utilisant $_SESSION['idUtil']; comme je vous le disais au départ.
Je crois que le problème venait du fait que certains de mes chers coéquipiers modifient les fichiers sans prévenir les autres, d'où de nombreuses mauvaises surprises!

J'ai simplement re-tenter de faire marcher le même code que je trafique depuis 2 semaines, et miracle! tout fonctionne!

Merci de votre aide :)