Page 1 sur 1

Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GESTIO

Posté : 10 mars 2012, 11:42
par piotrowski-s
Bonjour, j'ai cette requête ci qui me renvoit l'erreur sus-évoquée en titre. J'ai beau avoir cherché, je ne sais pas comment la résoudre.
<?php               $sql = 'SELECT titre, date, gestionnaire.login as expediteur, messages.id as id_message FROM messages, gestionnaire WHERE id_destinataire="'.$_SESSION['id'].'" AND id_expediteur=gestionnaire.id ORDER BY date DESC';  
// lancement de la requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
$nb = mysql_num_rows($req);  
 
if ($nb == 0) { 
   echo 'Vous n\'avez aucun message.';  
}  
else { 
   // si on a des messages, on affiche la date, un lien vers la page lire.php ainsi que le titre et l'auteur du message
   while ($data = mysql_fetch_array($req)) { 
      echo $data['date'] , ' - <a href="lire.php?id_message=' , $data['id_message'] , '">' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['expediteur']))) , ' ]<br />'; 
   }  
}  
mysql_free_result($req);  
mysql_close();  
?>
voici le code erreur
Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GESTIONNAIRE\creance.php on line 1042

Re: Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GE

Posté : 10 mars 2012, 11:45
par xTG
Pour utiliser une session il faut l'avoir démarrée.
Il te manque l'instruction session_start() en début de fichier.

Re: Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GE

Posté : 10 mars 2012, 11:51
par moogli
:mrgreen:
J'allais demander laquelle c'était la ligne 1042 ;)

@+

Re: Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GE

Posté : 10 mars 2012, 11:55
par piotrowski-s
la ligne 1042 :
        $sql = 'SELECT titre, date, gestionnaire.login as expediteur, messages.id as id_message FROM messages, gestionnaire WHERE id_destinataire="'.$_SESSION['id'].'" AND id_expediteur=gestionnaire.id ORDER BY date DESC';  
le session start déjà présent avant la balise HTML :
<?php
session_start();  
// on vérifie toujours qu'il s'agit d'un membre qui est connecté
if (!isset($_SESSION['login'])) { 
   // si ce n'est pas le cas, on le redirige vers l'accueil
   header ('Location: ../index.php'); 
   exit();  
}  
?>

Re: Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GE

Posté : 10 mars 2012, 12:12
par moogli
Donc la clairement tu n'a pas d'index id dans la session.

L'a tu renseigné quelque part ?

Sinon passe par le login (il doit de toute façon être unique nan ?)

Pour t'en convaincre je t'invite à ajouter un var_dump($_SESSION); ligne 1041 ;)

@+

Re: Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GE

Posté : 10 mars 2012, 12:15
par piotrowski-s
ça me renvoit ça
array
  'login' => string 'stanislas' (length=9)
  'inplace-admin' => string 'demo' (length=4

Re: Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GE

Posté : 10 mars 2012, 12:24
par piotrowski-s
j'ai changé les champs int par des varchar, (11), normalement cela devrait me renvoyer quelque chose en utlisant le login au lieue de l'id suite aux enregistrements mais je n'ai rien...

Re: Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GE

Posté : 10 mars 2012, 12:34
par xTG
Changer un type de champ ne change pas la données qu'il y a dedans...
Le nombre 1 ne sera jamais égal à la chaîne de caractère admin et ce même si tu transformes le nombre 1 en caractère '1'.
Tu t'en rend compte j'espère ?

Re: Notice: Undefined index: id in C:\wamp\www\NEOGETCASH\GE

Posté : 10 mars 2012, 12:36
par moogli
Heu faut juste que tu ajoute l'id dans la session, à la connexion, d'ailleurs, sauf si tu utilise le login régulièrement tu n'a besoin que de l'id en session vu qu'il te sert pour récupérer tout les reste (bon si tu affiche le login sur toute les pages autant l'avoir en session c'est quand même un poil plus performant je pense. ;) )

@+