Supprimer un message avec OPTION "DEL" pour messagerie interne

Supprimer un message avec OPTION "DEL" pour messagerie interne - PHP - Programmation

Marsh Posté le 03-03-2016 à 20:16:00    

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;

Reply

Marsh Posté le 03-03-2016 à 20:16:00   

Reply

Marsh Posté le 04-03-2016 à 17:14:55    

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
Reply

Marsh Posté le 05-03-2016 à 02:53:42    

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

Reply

Marsh Posté le 05-03-2016 à 10:25:24    

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
Reply

Marsh Posté le 06-03-2016 à 01:33:27    

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 :)

Reply

Marsh Posté le 06-03-2016 à 10:06:49    

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
Reply

Marsh Posté le 07-03-2016 à 10:48:22    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed