comment faite un espace membre

Répondre
debutant2
le 01/02/2010 à 17:19
debutant2
salut tout le monde
Je suis un debutant dans php/sql et j'aime se langage, grace au tutorials et les codes sources offertent par ce site, je me suis plange dans le tutorial de l'espace membre/messagerie interne
mais la j'ai rencontrer une difficulte a comprendre le fonctionement de cette requette, et je suis entre vos main chers pros de me guider s'il vous plait.
<?php $sql = 'SELECT titre, date, membre.login as expediteur, messages.id as id_message FROM messages, membre WHERE " AND id_expediteur=membre.id ORDER BY id_destinataire="'.$_SESSION['id'].'date DESC';php ?>


dans la page (membre.php)
Ma question si vous voulez bien m'aider s'il vous plait si vous auriez du temps, c'est comment le destinatair qui est suposer recevoir le message est la meme personne connecter dont on repuere son (id) avec sa session est l'inserer dans id_destinataire="'.$_SESSION['id']. et quelle est la difference entre l'id du membre.id et celui du id_destinataire="'.$_SESSION['id'] (je sais bien que ca n'a aucun sense la facon avec la quellle je le vois, mais pardonner moi je persiste a comprendre et a apprendre)
Est ce que quelqu'un pourra m'expliquer s'il vous plait d'une maniere simplecite pour debutant comment sa fonctione parce que je ne veux pas confondre les chose et je veux vraiment comprendre le code et non le copier merci beaucoup de votre reponse, et je vous suis deja tres tres reconnaissant.
encore une fois pardonner moi si je vous ai confu avec mes quetion merci.
moogli
le 02/02/2010 à 10:10
moogli
salut,

pour commencer t'a requete
<?php $sql = 'SELECT titre, date, membre.login as expediteur, messages.id as id_message FROM messages, membre WHERE " AND id_expediteur=membre.id ORDER BY id_destinataire="'.$_SESSION['id'].'date DESC';php ?>


n'est pa celle de l'espace membre
<?php $sql = 'SELECT titre, date, membre.login as expediteur, messages.id as id_message FROM messages, membre WHERE " AND id_expediteur=membre.id ORDER BY id_destinataire="'.$_SESSION['id'].'date DESC';php ?>


celle ci ne peut donc fonctionner.

Pour essayer de répondre à ta question.

quandune membre est connecté, onpeut le reconnaitre à tous moment par sont id qui est stocké en session => $_SESSION['id].
A partir de la on peut récupérer dans la table tous les messages ayant pour destinataire l'id correspondant à notre utilisateur connecté
select taitre, date, id from messages where id_destinataire=$_SESSION['id]
la je récupère tous les messages qui sont destiné à la personne connecté.

La requete proposé par la globule est un poil plus complexe car elle intégre la récupération du nom de l'expéditeur du message.
pour cela il fait une requete sur deux table (FROM messages,membres, et utilise des condition dans le where pour faire la jointure entre les deux (WHERE id_destinataire=$_SESSION['id'] AND id_expediteur=membres.id).

si tu prend la bonne requete dans l'ordre tu comprend la plus facilement.

cette requete récupère donc la liste des messages qui me sont destiné (à moi membre connecté, reconnu par mon id). Cette liste de messages contient le nom de l'expéditeur du message ainsi que la date. Ces messages sont classé du plus récent au plus vieux.

@+
Il en faut peu pour être heureux !!!!!
debutant2
le 02/02/2010 à 20:04
debutant2
salut moogli
merci beaucoup pour ta reponse tu ma vraiment clarifier les choses et grace a vous je vais continuer de lire le reste du tutorial. Pour ce qui concerne la requette que j'ai inserer dans ma question c'ete celle du membre d'espace/messagerie interne, mais je l'ai mal ecrit, desole pour l'erreur voila la bonne:
<?php <?php $sql = 'SELECT titre, date, membre.login as expediteur, messages.id as id_message FROM messages, membre WHERE id_destinataire="'.$_SESSION['id'].'" AND id_expediteur=.membres.id. ORDER BY date DESC';php ?>  php ?>

Pour ce qui concerne le code, ce qui etait flou pour moi et apres avoir comprendre maintenent grace a vous la presence du session du mombre connecte comme valeur au champ id_destinataire, c'est comment recuperer le nom d'expediteur du message mais la j'ai compris que membres.id et remplacer par le $_SESSION['id'] inserer dans la page envoyer.php, et c'est la qu'intervienne la valeur membres.id pour etre remplacer par $_SESSION['id'] inserer dans la table message dans le champ id_expediteur et la bien sur quand on a le id on pourra avoir le login est c'est ca la jointure utiliser dans la requette. J'espre que mon raisonement et correcte concernant la requette, sinon j'aimairais bien etre corriger s'il vous plait.
Merci infiniment de votre precieuse reponse surtout la facon avec la quelle tu as simplifier l'explication, et c'etait ce type de clarification dont j'avais besion comme debutan1.
Merci encore une fois, car tu m'as vraiment donne un coup de pousse pour avancer.
debutant2
le 03/02/2010 à 00:55
debutant2
salut a tous
apres avoir lu le tutorial apropos de la messagerie interne je me suis arrete dans la phase des amelioration et plus exatement la page.repondre.
pouvez-vous m'aider s'il vous plait en me guidant sur les etapes a suivre, je ne vous demande pas le code mais seulement un petit chema ou exemple a suivre sut quoi se baser, une quidance simplecite pour que je puisse le faire moi meme.
merci de votre aide d'avance et je vous suis toujour reconnaissant de vos reponse.
moogli
le 11/02/2010 à 08:57
moogli
Salut

La page réponse n est ni plus moins que la page d'envoi du message avec le id destinataire pré remplis avec le id emetteur du message reçu. Tu peut aussi prendre le titre du message en mettant Re : le titre qui va bien.

Au niveau sql c est exactement la même requête que tu doit faire. Ce quie change (je le répète) c'est que tu ne laisse pas la possibilités de choisir le destinataire puisse que tu le connais déjà ;)

courage ce n'est pas compliqué ;)

@+
Il en faut peu pour être heureux !!!!!
caporga
le 20/02/2010 à 19:20
caporga
va voir ça,la globule fait les choses bien;

http://www.lephpfacile.com/howto/10-comment-faire-un-espace-membre-en-php
caporga
debutant2
le 23/02/2010 à 16:41
debutant2
Salut a tous
Merci a vous tous pour vos reponses precieuse j'ai compris le principe maintenent et je l'ai realiser merci encore une fois abientot.
speedfrance
le 02/12/2010 à 02:02
speedfrance
Bonjour,

J'essaye aussi d'effectuer une page repondre.php

Je recupere bien le titre de la messagerie comme moogli la dis, je recupere aussi l'id de la personne a qui je veux envoyer la reponse

Exemple: id=1 login=essai dans mon echo $dest essai apparai bien dans echo $iddest 1 apparait bien.

Par contre quand j'envoi le formulaire sur la base tous les champ sont bien récuperer et poster dans la base sauf $iddest qui reste vide.
Je n'ai pas de message d'erreur...

Je pose une parti de mon code si vous avez une suggestion, ou voyer ou ai mon erreur?? Je suis débutant dans ce langage...

$sql = 'INSERT INTO messages VALUES ("", "'.$_SESSION['id'].'", "'.$iddest.'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")';


Voici le formulaire que j'utilise :

<form action="repondre.php" method="post">
<p align="left"><font color="#FF0000">Pour :


<?php

// on teste si notre paramètre existe bien et qu'il n'est pas vide

if (!isset($_GET['id_message']) || empty($_GET['id_message'])) {
echo 'Aucun message reconnu.';
}
else {

// on se connecte a la base

$base = mysql_connect ('localhost', 'root', 'password');
mysql_select_db ('speedfrance', $base);

// on prepare la requete qui va selectionner les champs du message

$sql = 'SELECT titre, date, message, membre.login as expediteur, membre.id as id_expediteur FROM messages, membre WHERE id_destinataire= "'.$_SESSION['id'].'" AND id_expediteur=membre.id AND messages.id="'.$_GET['id_message'].'"';

// on lance cette requette sql pour optenir id expediteur que nous aurons besoin

$req = mysql_query($sql) or die('Erreur SQL !<br />
</div>
'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 0) {
echo 'Aucun message reconnu.';
}
else {


// si le message a été trouvé, on recupere l'id et le login de l'expediteur que l'ont transforme en variable

$data = mysql_fetch_array($req);
$iddest=$data['id_expediteur'];
$dest=$data['expediteur'];

}
}

// on affiche le destinataire.

echo $dest, '<br /><br />';

?>

</font></p>
<p align="left"><br />
<font color="#FF0000">Objet : </font>

<input type="text" name="titre" value="Re : <?php echo stripslashes(htmlentities(trim($data['titre']))); ?>" size="20"></p>
<p align="left">

<textarea name="message" rows="7" cols="68"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea></p>
<p align="left"> <br />

<input type="submit" name="go" value="Envoyer" style="float: left"> </p>

</form>


Je suis sur que le problème viens du inser into ($iddest) mais ayant essayer plusieur chose j'abandonne et demande de l'aide :)

Merci d'avance pour vos réponses.
SpeedFrance
moogli
le 02/12/2010 à 10:33
moogli
heu tu a lu ma réponse ?
http://www.lephpfacile.com/forum/1-php-mysql/2994-vairable-formulaire

tu va redemander sur tous les messages du meme sujet ? :s

@+
Il en faut peu pour être heureux !!!!!
speedfrance
le 02/12/2010 à 12:52
speedfrance
Désoler on ne reçois pas de confirmation de réponse à une question poser. Je vais voir et vous remercie pour votre réponse.
SpeedFrance
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours