Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1474 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Supprimer un message avec OPTION "DEL" pour messagerie interne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer un message avec OPTION "DEL" pour messagerie interne

n°2276901
juju44100
Posté le 03-03-2016 à 20:16:00  profilanswer
 

Bonjour, j'ai installer une messagerie interne sur mon site, j'ai pris un script déjà tout fait, sauf qu'il est un peu mal fait.
Il n'y à pas la possibilité de supprimer une conversation  
 
pouvez vous m'aider à ajouter un bouton "supprimer" qui effacerai une conversation
 
merci  
 
<?php
  /*
   
  */
  $titre = 'Gestion des vidéos';
  require ('head.php');
?>
    <div id="content">
      <div id="page">
        <div class="inner">
          <div class="section">
            <div class="title_wrapper">
              <h2>Messagerie</h2>
              <span class="title_wrapper_left"></span>
              <span class="title_wrapper_right"></span>
            </div>
 
            <div class="section_content">
              <div class="sct">
                <div class="sct_left">
                  <div class="sct_right">
                    <div class="sct_left">
                      <div class="sct_right">
 
            <?php
include('config.php');
?>
  <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <div class="content">
<?php
//On verifie que lutilisateur est connecte
if(isset($_SESSION['username']))
{
//On affiche la liste des messages de l'utilisateur sous la forme dun tableau
//Deux requettes sont executees, une pour recuperer les messages non-lus et une pour les messages lus
$req1 = mysql_query('select m1.id, m1.title, m1.timestamp, count(m2.id) as reps, users.id as userid, users.username from pm as m1, pm as m2,users where ((m1.user1="'.$_SESSION['userid'].'" and m1.user1read="no" and users.id=m1.user2) or (m1.user2="'.$_SESSION['userid'].'" and m1.user2read="no" and users.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc');
$req2 = mysql_query('select m1.id, m1.title, m1.timestamp, count(m2.id) as reps, users.id as userid, users.username from pm as m1, pm as m2,users where ((m1.user1="'.$_SESSION['userid'].'" and m1.user1read="yes" and users.id=m1.user2) or (m1.user2="'.$_SESSION['userid'].'" and m1.user2read="yes" and users.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc');
?>
Voici la liste de vos messages:<br />
<a href="message_new.php" class="link_new_pm">Nouveau message priv&eacute;</a><br />
<h3>Messages non-lus(<?php echo intval(mysql_num_rows($req1)); ?> ):</h3>
<table>
  <tr>
     <th class="title_cell">Titre</th>
        <th>Nb. R&eacute;ponses</th>
        <th>Participant</th>
        <th>Date d'envoi</th>
    </tr>
<?php
//On affiche la liste des messages non-lus
while($dn1 = mysql_fetch_array($req1))
{
?>
  <tr>
     <td class="left"><a href="message_read.php?id=<?php echo $dn1['id']; ?>"><?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
     <td><?php echo $dn1['reps']-1; ?></td>
     <td><a href="#"><?php echo htmlentities($dn1['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>
     <td><?php echo date('d/m/Y H:i:s' ,$dn1['timestamp']); ?></td>
    </tr>
<?php
}
//Sil na aucun message non-lu, on le dit
if(intval(mysql_num_rows($req1))==0)
{
?>
  <tr>
     <td colspan="4" class="center">Vous n'avez aucun message non-lu.</td>
    </tr>
<?php
}
?>
</table>
<br />
<h3>Messages lus(<?php echo intval(mysql_num_rows($req2)); ?> ):</h3>
<table>
  <tr>
     <th class="title_cell">Titre</th>
        <th>Nb. R&eacute;ponses</th>
        <th>Participant</th>
        <th>Date d'envoi</th>
    </tr>
<?php
//On affiche la liste des messages lus
while($dn2 = mysql_fetch_array($req2))
{
?>
  <tr>
     <td class="left"><a href="message_read.php?id=<?php echo $dn2['id']; ?>"><?php echo htmlentities($dn2['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
     <td><?php echo $dn2['reps']-1; ?></td>
     <td><a href="#"><?php echo htmlentities($dn2['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>
     <td><?php echo date('d/m/Y H:i:s' ,$dn2['timestamp']); ?></td>
    </tr>
<?php
}
//Sil na aucun message lu, on le dit
if(intval(mysql_num_rows($req2))==0)
{
?>
  <tr>
     <td colspan="4" class="center">Vous n'avez aucun message lu.</td>
    </tr>
<?php
}
?>
</table>
<?php
}
else
{
  echo 'Vous devez &ecirc;tre connect&eacute; pour acc&eacute;der &agrave; cette page.';
}
?>
    </div>
 
  </body>
</html>
           
                      </div>
                    </div>
                  </div>
                </div>
              </div>
              <span class="scb"><span class="scb_left"></span><span class="scb_right"></span></span>
            </div>
          </div>
        </div>
      </div>
<?php
  require ('foot.php');
?>
 
 
 
Code : Tout sélectionner
- Structure de la table `users`
--  
 
CREATE TABLE `users` (
  `id` bigint(20) NOT NULL,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `avatar` text NOT NULL,
  `signup_date` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
--  
-- Structure de la table `pm`
--  
 
CREATE TABLE `pm` (
  `id` bigint(20) NOT NULL,
  `id2` int(11) NOT NULL,
  `title` varchar(256) NOT NULL,
  `user1` bigint(20) NOT NULL,
  `user2` bigint(20) NOT NULL,
  `message` text NOT NULL,
  `timestamp` int(10) NOT NULL,
  `user1read` varchar(3) NOT NULL,
  `user2read` varchar(3) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

mood
Publicité
Posté le 03-03-2016 à 20:16:00  profilanswer
 

n°2276983
rufo
Pas me confondre avec Lycos!
Posté le 04-03-2016 à 17:14:55  profilanswer
 

Merci d'utiliser la balise [code] pour poster ton code ;)
 
Quand je vois tous ces <div> imbriqué, ça sent le script bien moisi :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2277024
juju44100
Posté le 05-03-2016 à 02:53:42  profilanswer
 

désolé tu peux m'aider ou pas ?

n°2277033
rufo
Pas me confondre avec Lycos!
Posté le 05-03-2016 à 10:25:24  profilanswer
 

Quand tu parles de conversation, tu parles d'un seul message ? Si c'est ça, facile, en face de chaque message, tu rajoutes un lien hypertexte qui englobe une image (pour faire le bouton "croix", par ex) et dans l'url, tu mets un truc du genre echo "<a href=\"SupprimerMessage.php?id=".$dn1['id']."\" title=\"Supprimer ce message.\"><img .../></a>";
 
Si tu considères qu'une conversation, c'est une suite de messages entre 2 users, le même jour, il suffit de mettre un bouton "supprimer" qui appelle un script qui fera la suppression les messages ayant la même date (mais pas la même heure) et ton id de user et l'id du user avec qui t'as eu la conversation. Le script de suppresion devra donc prendre en paramètres iduser et et la date.
 
Au passage, ce script est vraiment de la merde, les mots de passe des users sont stockés en clair  :pfff:  
 
Dans la table "pm", j'ai pas la moindre idée de ce que représente id2 :??: T'as posté toute la structure de la BD où il manque des tables ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2277061
juju44100
Posté le 06-03-2016 à 01:33:27  profilanswer
 

Oui c'est un script de merde comme tu dis est pas du tout sécurisé mais c'est pas important pour mon utilisation,  id2 et id1 correspond à l'envoyeur et le recepteur du message, c'est mal fait je sais, est ce que tu pourrais juste m'écrire en entier si possible quoi mettre exactement pour supprimer juste une message stp. ça m'aiderai beaucoup :)

n°2277062
rufo
Pas me confondre avec Lycos!
Posté le 06-03-2016 à 10:06:49  profilanswer
 

Je t'ai déjà écrit le lien qu'il faut mettre pour supprimer un message (sachant qu'après, faudra coder le contenu du script SupprimerMessage.php).
 
"id2 et id1 correspond à l'envoyeur et le recepteur du message" -> j'ai de gros doute, vu qu'il y a déjà user1 et user2 qui pointent sur la table "users" et qu'il ont la même taille (bigint 20). Or, id2 est un int 11, donc trop petit pour pointer sur users. Au passage, aucun id n'est déclaré en unsigned int (pour que tous les id > 0). Du coup, tu perds 50% de la plage des valeurs des id :/
 
Non, décidément, il est vraiment pourri ce code. T4aurais avantage à partir de zéro et faire qq chose de propre. En plus, ça serait plus pédagogique pour que tu comprennes mieux la programmation ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2277109
juju44100
Posté le 07-03-2016 à 10:48:22  profilanswer
 

Ok merci je vais essayer de le faire moi même merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Supprimer un message avec OPTION "DEL" pour messagerie interne

 

Sujets relatifs
Delphi : supprimer une ligne dans un DBgrid à partir d'un bouton[PHP] Besoin d'aide pour résoudre un message d'erreur
message aux développeursGCC HOMEBREW personnalisation, comment ajouter une option a GCC
GCC personnalisation, comment ajouter une option a GCC[MFC] [RESOLU] Affichage message avant fermeture d une fenetre
[Resolu]Supprimer la ligne vide[ERROR] Insertion de message dans tab de char ?
Python, supprimer une ligne d'un fichier texteDictionnaire dans liste ---> ajouter/supprimer/modifier le dico
Plus de sujets relatifs à : Supprimer un message avec OPTION "DEL" pour messagerie interne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR