Problème de messagerie interne
Résolu
nicolas06100
Messages postés
12
Statut
Membre
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour,
Je vais essayé d'être précis. Imaginons que pour un site il y ait un compte principal et des comptes secondaires. Un utilisateur veut envoyer un message interne à un compte secondaire. Jusqu'ici tout va bien mais je voudrais que le compte principal reçoive le même message et là, j'ai un problème car il ne reçoit rien. Dans la table "message" l'id du compte principal " dest2" est bien présent mais il n'y a que "dest" qui reçoit le message. Si quelqu’un peut m'aider, ce serait bien car je nage dans cambouis depuis deux jours et j'ai du passer quelque chose.
Table Message :

Fichier sendmess2.php :
Fichier sendmess.php :
Fichier cible.php :
Voilà, je pense que j'ai tout mis. Je répète, "dest" reçoit bien le message c'est "dest2" qui ne le reçoit pas . J'ai loupé quelque chose quelque part mais où, là est ma question. Merci d'avance pour votre aide.
Je vais essayé d'être précis. Imaginons que pour un site il y ait un compte principal et des comptes secondaires. Un utilisateur veut envoyer un message interne à un compte secondaire. Jusqu'ici tout va bien mais je voudrais que le compte principal reçoive le même message et là, j'ai un problème car il ne reçoit rien. Dans la table "message" l'id du compte principal " dest2" est bien présent mais il n'y a que "dest" qui reçoit le message. Si quelqu’un peut m'aider, ce serait bien car je nage dans cambouis depuis deux jours et j'ai du passer quelque chose.
Table Message :
Fichier sendmess2.php :
<?php
include "../base/base.php";
foreach ($_POST as $c=>$v) { $$c=$v; }
$sql="insert into messages
set exp=:exp,
dest=:dest,
dest2=:dest2,
texte=:texte";
$rq=$db->prepare($sql);
$rq->bindParam(":exp",$exp);
$rq->bindParam(":dest",$dest);
$rq->bindParam(":dest2",$dest2);
$rq->bindParam(":texte",$texte);
$rq->execute();
$rq->closeCursor();
header("location: ../pages/cible.php");
?>
Fichier sendmess.php :
<?php
session_start();
if (! isset($_SESSION["cnx"])) {
header("location: ../index.php");
}
$exp=$_SESSION["cnx"];
$dest=$_SESSION["cible"];
$cible=$_SESSION["cible"];
include "../base/base.php";
include "fonctions.php";
$sql1="select pseudo from users where id=:dest";
$rq1=$db->prepare($sql1);
$rq1->bindParam(":dest",$dest);
$rq1->bindColumn("pseudo",$pseudo);
$rq1->execute();
$rq1->fetch(PDO::FETCH_BOUND);
/* Cible principal */
$cible=profil($cible);
$dest2=$cible["ids"];
?>
<!DOCTYPE HTML>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Envoi d'un message interne</title>
<link rel="stylesheet" href="../css/sensual.css" />
<link rel="stylesheet" href="../css/3cols.css" />
<script src="../js/jquery.js"></script>
<script>
function envoi() {
expe=$("#exp").val();
dest=$("#dest").val();
dest2=$("#dest2").val();
txt=$("#texte").val();
if (txt=="") {
alert("Le message est vide");
$("#texte").focus();
return false;
}
return true;
}
</script>
<style>
...
</style>
</head>
<body>
<div id="main">
<?php include "../outils/logo2.txt"; ?>
<div id="slogandroite">
<a href="bye.php" title="Déconnectez-vous">
<img src="../images/logout.jpg" width="24" height="23" alt="Déconnexion">
</a>
</div>
<div id="slogan">
<?php include "../outils/slogan.txt"; ?>
</div>
<h1>Envoyer un message à <?php echo $pseudo;?></h1>
<form action="../serveurs/sendmess2.php" method="post" onsubmit="return envoi();">
<fieldset>
<legend>Texte du message</legend>
<textarea id="texte" name="texte"></textarea>
<input name="exp" id="exp" type="hidden" value="<?php echo $exp;?>" />
<input name="dest" id="dest" type="hidden" value="<?php echo $dest;?>" /><br />
<input name="dest2" id="dest2" type="hidden" value="<?php echo $dest2;?>" /><br />
<input type="submit" value="Envoyer le message" /><br>
</fieldset>
</form>
<a href="../pages/cible.php"><button id="btreturn">Retour sans envoi</button></a>
</div>
<?php include "../outils/footer.php"; ?>
</body>
</html>
Fichier cible.php :
<?php
session_start();
if (isset($_GET["cible"])) {
$cible=$_GET["cible"];
$_SESSION["cible"]=$cible;
} else {
$cible=$_SESSION["cible"];
}
if (isset($_GET["retour"])) {
$retour=$_GET["retour"];
$_SESSION["retour"]=1;
} else {
$retour="";
unset($_SESSION["retour"]);
}
$idv=$_SESSION["v"];
include "../base/base.php";
$sql="select genre from users where id=:cible";
$rq=$db->prepare($sql);
$rq->bindParam(":cible",$cible);
$rq->bindColumn("genre",$genre);
$rq->execute();
$rq->fetch(PDO::FETCH_BOUND);
// MAJ visites
$sqlv1="select count(id) nb,id
from visite
where idc=:cible
and id_visiteur=:idv";
$rqv1=$db->prepare($sqlv1);
$rqv1->bindParam(":cible",$cible);
$rqv1->bindParam(":idv",$idv);
$rqv1->bindColumn("nb",$nb);
$rqv1->bindColumn("id",$id);
$rqv1->execute();
$rqv1->fetch(PDO::FETCH_BOUND);
if ($nb==0) {
$sqlv2="insert into visite
set idc=:cible,
id_visiteur=:idv,
date=now()
";
$rqv2=$db->prepare($sqlv2);
$rqv2->bindParam(":cible",$cible);
$rqv2->bindParam(":idv",$idv);
$rqv2->execute();
} else {
$sqlv2="update visite
set date=now()
where id=:id";
$rqv2=$db->prepare($sqlv2);
$rqv2->bindParam(":id",$id);
$rqv2->execute();
}
if ($genre=="C") {
header("location: cible-a.php");
} else {
header("location: cible-b.php");
}
?>
Voilà, je pense que j'ai tout mis. Je répète, "dest" reçoit bien le message c'est "dest2" qui ne le reçoit pas . J'ai loupé quelque chose quelque part mais où, là est ma question. Merci d'avance pour votre aide.
Configuration: Windows / Firefox 76.0
A voir également:
- Problème de messagerie interne
- Centre de messagerie - Guide
- Hotmail messagerie - Guide
- Stockage interne autre - Forum Samsung
- Cegetel messagerie - Forum Mail
- 'Pip' n’est pas reconnu en tant que commande interne ✓ - Forum Python
3 réponses
bonjour,
as-tu expliqué ce que signifie "envoyer le message"?
à quelle ligne de quel fichier fais-tu l'envoi vers dest?
à quelle ligne de quel fichier fais-tu l'envoi vers dest2?
je ne vois, dans ton code, ni vérification que chaque opération se passe bien, ni affichage qui te permette de comprendre ce que fait ton code.
as-tu expliqué ce que signifie "envoyer le message"?
à quelle ligne de quel fichier fais-tu l'envoi vers dest?
à quelle ligne de quel fichier fais-tu l'envoi vers dest2?
je ne vois, dans ton code, ni vérification que chaque opération se passe bien, ni affichage qui te permette de comprendre ce que fait ton code.
Merci beaucoup pour ton aide yg_be, en effet il fallait rajouter la requête pour "dest2" dans messagerie.php.
Dest reçoit bien :
La fonction envoi est dans sendmess.php :
<script> function envoi() { expe=$("#exp").val(); dest=$("#dest").val(); dest2=$("#dest2").val(); txt=$("#texte").val(); if (txt=="") { alert("Le message est vide"); $("#texte").focus(); return false; } return true; } </script>