01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007
-
24 sept. 2005 à 12:44
malalam -
27 sept. 2005 à 12:55
Je suis en train de faire une messagerie interne sur mon site. Lorsque je clique sur le lien titre le message ne s'affiche pas.Pouvez vous me dire ce qui pose problème. Voici mon bout de code
// on prépare une requete SQL selectionnant la date, le titre et l'expediteur du message que l'on souhaite lire, tout en prenant soin de vérifier que le message appartient bien au membre connecté
$sql = 'SELECT titre, date, message, membres.pseudo as num_expediteur FROM messages, membres WHERE pseudo_destinataire="'.$_SESSION['pseudo'].'" AND pseudo_expediteur=membres.pseudo AND messages.pseudo="'.$_POST['pseudo_message'].'"';
// on lance cette requete SQL à MySQL
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 0) {
echo 'Aucun message reconnu.';
}
else {
// si le message a été trouvé, on l'affiche
$data = mysql_fetch_array($req);
echo $data['date'] , ' - ' , stripslashes(htmlentities(trim($data['titre']))) , ' [ Message de ' , stripslashes(htmlentities(trim($data['num_expediteur']))) , ' ]
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 24 sept. 2005 à 14:26
Je viens de modifier mon code comme ceci
$sql = 'SELECT titre, date, message, membres.num as num_expediteur FROM messages, membres WHERE num_destinataire="'.$_SESSION['num'].'" AND num_expediteur=membres.num AND messages.num="'.$_POST['num_message'].'"';
// on lance cette requete SQL à MySQL
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 0) {
echo 'Aucun message reconnu.';
}
else {
// si le message a été trouvé, on l'affiche
$data = mysql_fetch_array($req);
echo $data['date'] , ' - ' , stripslashes(htmlentities(trim($data['titre']))) , ' [ Message de ' , stripslashes(htmlentities(trim($data['num_expediteur']))) , ' ]
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 24 sept. 2005 à 17:19
Voici mon script au complet apres ta recommandation car cela n'a rien donné
<?php
session_start();
// on v
érifie toujours qu'il s'agit d'un membre qui est connecté
if (!isset($_SESSION['pseudo'])) {
// si ce n'est pas le cas, on le redirige vers l'accueil
header ('Location: index.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
[membres.php Retour à l'accueil]
<?php
// on teste si notre paramètre existe bien et qu'il n'est pas vide
if (!isset($_GET['num_message']) && empty($_GET['num_message'])) {
echo 'Aucun message reconnu.';
}
else
{
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'mabase';
// connection à la DB
mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
// on prépare une requete SQL selectionnant la date, le titre et l'expediteur du message que l'on souhaite lire, tout en prenant soin de vérifier que le message appartient bien au membre connecté
$sql = "SELECT titre, date, message, membres.num as num_expediteur ".
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 24 sept. 2005 à 17:44
La correction n'a rien donné.J'ai enlevé cette partie
// on teste si notre paramètre existe bien et qu'il n'est pas vide
if (!isset($_GET['num_message']) OR empty($_GET['num_message']) OR !is_numeric $_GET['num_message'])) {
echo 'Aucun message reconnu.';
}
else
{
Voici le message que j'ai
Notice: Undefined index: num_message in c:\easyphp1-8\www\web\liremessage.php on line 41 Erreur SQL !SELECT titre, date, message, membres.num as num_expediteur FROM messages, membres WHERE num_destinataire 2 AND messages.num_message Erreur de syntaxe près de '' à la ligne 1
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
// on prépare une requete SQL cherchant tous les titres, les dates ainsi que l'auteur des messages pour le membre connecté
$sql = 'SELECT titre, date,message, membres.pseudo as expediteur, messages.num_message as pseudo_message FROM messages, membres WHERE num_destinataire="'.$_SESSION['num'].'" AND num_expediteur=membres.num ORDER BY date DESC';
// lancement de la requete SQL
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.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
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 24 sept. 2005 à 19:35
En utlisant cette ligne
'
j'ai eu ce message
Erreur SQL !SELECT titre, date, message, membres.num as num_expediteur FROM messages, membres WHERE num_destinataire 2 AND messages.num comment vas tu
Erreur de syntaxe près de 'vas tu' à la ligne 1
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 24 sept. 2005 à 20:08
et en utilisant la première ?
[liremessage.php?num_message=',$data['pseudo_message'],' '
<hr size="2" width="100%"><li>]Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 24 sept. 2005 à 21:00
J'ai :
Parse error: parse error in c:\easyphp1-8\www\web\message.php on line 30
$sql = 'SELECT titre,date,message,membres.pseudo as expediteur, messages.num_message as pseudo_message FROM messages, membres WHERE num_destinataire='".$_SESSION['num']."' AND num_expediteur=membres.num ORDER BY date DESC';