JeuWeb - Crée ton jeu par navigateur
[Résolu] Messagerie interne - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Messagerie interne (/showthread.php?tid=3225)



[Résolu] Messagerie interne - moriane - 29-10-2008

Bonjour,j'ai une messagerie interne sur mon site et quand je veux envoyer un message sa me met un code d'erreur de 3 pages.Est ce que quelqu'un pourrait m'aider svp ??

Voici le script de la messagerie: <?
Code PHP :
<?php 
#################################################################################
## Mod Messagerie
## Dévellopé par Tsunami <http://zfusion.free.fr/illusion/>
## Le 20 Janvier 2005
## Inclut envoi et réception, statut(lu,non lu, archivé), gestion(suppression, modification..) des messages
#################################################################################

// Inclusion des fichiers neccessaires au script
include('lib.php');
include(
'cookies.php');

opendb();

// Informations du joueur
$userrow = checkcookies();

$doex = explode(':', $_GET['do']);

if(
$_GET['do'] == "Reception")
{
$messtitle = 'Boîte de réception';
}
elseif(
$doex[0] == "Envoi")
{
$messtitle = 'Envoyer un message';
}
elseif(
$_GET['do'] == "Archives")
{
$messtitle = 'Archives';
}
elseif(
$doex[0] == "Lect")
{
$messtitle = 'Lire un message';
}
elseif(
$doex[0] == "Read") // lire un message archivé
{
$messtitle = 'Lire un message';
}
elseif(
$doex[0] == "Suppr")
{
$messtitle = 'Supprimer un message';
}
elseif(
$doex[0] == "Archiver")
{
$messtitle = 'Archiver un message';
}
elseif(
$doex[0] == "Envoi")
{
$messtitle = 'Boîte d\'envoi';
}
else
{
$messtitle = 'Boîte de réception';
}

// Affichage du titre de la messagerie
$page = '<table cellspacing="0" cellpadding="0" height="40" width="90%" align="center">
<img src="images/messagerie.jpg">
<tr>
<td background="images/bg_1.1.png" width="6">
</td>
<td width="98%" background="images/bg_1.2.png">
<center>
<b>'
.$messtitle.'</b>
<br />
<a href="?do=Archives" alt="Archives">Archives</a> - <a href="?do=Benvoi">Boîte d\'envoi</a>/<a href="?do=Reception">réception</a> - <a href="?do=Envoi">Envoyer un message</a></center>
</td>
<td background="images/bg_1.3.png" width="6">
</td>
<tr>
</table>'
;

if(empty(
$_GET['do']))
{
header("location: ?do=Reception");
}

if(
$_GET['do'] == 'Reception' || empty($_GET['do']))
{

// Lister les messages dont le destinataire est l'utilisateur
$msglist = doquery("SELECT * FROM {{table}} WHERE destinataire='$userrow[id]' AND statut!='Archivé' ORDER BY date DESC","msg");

$page .= '<table width="90%" align="center"><tr><td width="30%"><b>Titre</b></td><td width="20%"><b>Envoyeur</td><td width="30%"><center><b>Date</td><td width="20%"><center><b>Actions</td></tr>';
while(
$msg = mysql_fetch_assoc($msglist))
{
$env = doquery("SELECT username FROM {{table}} WHERE id='$msg[envoyeur]'","users");
$env = mysql_fetch_assoc($env);

if(
$msg['statut'] == "Non lu")
{
$attributecolor = 'style="color:red;"';
}

$date = date("j/m/Y à G:i",$msg['date']);

$page .= '<tr><td><a '.$attributecolor.' href="?do=Lect:'.$msg['id'].'">'.$msg['titre'].'</a></td><td>'.$env['username'].'</td><td>'.$date.'</td><td><center><a href="?do=Suppr:'.$msg['id'].'"><img border="0" src="images/msg_delete.gif" alt="S" /> <a href="?do=Archiver:'.$msg['id'].'"><img border="0" src="images/msg_archiv.gif" alt="- A" /></td></tr>';
}
$page .= '</table>';

$page .= '<br /><br /><a href="?do=Suppr:All"><img style="float:left;" border="0" src="images/msg_delete.gif" alt="Supprimer tout">Supprimer tout les messages</a>';
}
elseif(
$doex[0] == 'Lect')
{
$msg1 = doquery("SELECT * FROM {{table}} WHERE id='$doex[1]' AND destinataire='$userrow[id]'","msg");
$msg = mysql_fetch_assoc($msg1);

if(
$msg['statut'] == "Non lu")
{
$update = doquery("UPDATE {{table}} SET statut='Lu' WHERE id='$msg[id]' AND destinataire='$userrow[id]'","msg");
}
$date = date("j/m/Y à G:i",$msg['date']);

$env = doquery("SELECT username FROM {{table}} WHERE id='$msg[envoyeur]'","users");
$env = mysql_fetch_assoc($env);

$page .= '<table width="80%" align="center"><tr><td><b>'.$msg['titre'].'</b></td><td width="40%">- '.$date.'<br /> - '.$env['username'].'</td></tr>
<tr>
<td colspan="2" style="border:1px black dotted;padding:10px;" height="200">
'
.nl2br(stripslashes($msg['message'])).'
</td>
</tr>
</table>'
;
$page .= '<br /><br /><center>[<a href="?do=Envoi:'.$msg['id'].'">Répondre à ce message</a> - <a href="?do=Suppr:'.$msg['id'].'">Supprimer</a> - <a href="?do=Archiver:'.$msg['id'].'">Archiver</a>]';

}
elseif(
$doex[0] == 'Read')
{
$msg1 = doquery("SELECT * FROM {{table}} WHERE id='$doex[1]' AND envoyeur='$userrow[id]'","msg");
$msg = mysql_fetch_assoc($msg1);


$date = date("j/m/Y à G:i",$msg['date']);

$env = doquery("SELECT username FROM {{table}} WHERE id='$msg[destinataire]'","users");
$env = mysql_fetch_assoc($env);

$page .= '<table width="80%" align="center"><tr><td><b>'.$msg['titre'].'</b></td><td width="40%">- '.$date.'<br /> - A '.$env['username'].'</td></tr>
<tr>
<td colspan="2" style="border:1px black dotted;padding:10px;" height="200">
'
.nl2br(stripslashes($msg['message'])).'
</td>
</tr>
</table>'
;
$page .= '<br /><br /><center>[<a href="?do=Envoi:'.$msg['id'].'">Répondre à ce message</a> - <a href="?do=Suppr:'.$msg['id'].'">Supprimer</a>]';

}
elseif(
$doex[0] == "Envoi")
{

if(empty(
$_POST['message']) || empty($_POST['pseudo']) || empty($_POST['titre']))
{
if(isset(
$doex[1]))
{
$infen = doquery("SELECT envoyeur,titre FROM {{table}} WHERE id='$doex[1]'","msg");
$infen = mysql_fetch_assoc($infen);

$env = doquery("SELECT username FROM {{table}} WHERE id='$infen[envoyeur]'","users");
$env = mysql_fetch_assoc($env);

(
substr_count($infen['titre'],'Re:' ) == 0) ? $pre = 'Re: ' : $pre = '';
}

$page .= '<form method="post"><table align="center" width="80%">
<tr>
<td width="100">
&nbsp;&nbsp;Pseudo:
</td>
<td>
<input type="text" value="'
.$env['username'].'" name="pseudo" size="60">
</td>
</tr>
<tr>
<td width="100">
&nbsp;&nbsp;Titre:
</td>
<td>
<input type="text" name="titre" value="'
.$pre.$infen['titre'].'" size="60">
</td>
</tr>
<tr>
<td colspan="2">
<textarea name="message" cols="50" rows="10"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<center><input type="submit" value="Poster" /></center>
</td>
</tr>
</table></form>'
;
}
else
{
$ide = doquery("SELECT id FROM {{table}} WHERE username='$_POST[pseudo]'","users");

$error = 0;

if(
mysql_num_rows($ide) == 0)
{
$page .= '<center>Le joueur indiqué n\'existe pas.';
$error++;
}

$ide = mysql_fetch_assoc($ide);
$ides = $ide['id'];

$message = addslashes($_POST['message']);
$time = time();

if(
$error == 0)
{
doquery("INSERT INTO {{table}} ( `id` , `titre` , `message` , `date` , `envoyeur` , `destinataire` , `statut` ) VALUES('', '$_POST[titre]', '$message', '$time', '$userrow[id]', '$ides', 'Non lu')","msg");
$page .= '<center><br />Votre message pour '.$_POST['pseudo'].' a bien été envoyé à la poste.<br /><br /><a href="messagerie.php">Boite de réception</a>';
}


}
}
elseif(
$doex[0] == "Suppr")
{
if(
$doex[1] == "All")
{
doquery("DELETE FROM {{table}} WHERE destinataire='$userrow[id]' AND statut!='Archivé'","msg");
$page .= '<center><br />Tous les messages présents dans votre boîte de réception ont étés supprimés.<br /><br /><a href="?do=Reception">Boîte de réception</a>';
}
else
{
doquery("DELETE FROM {{table}} WHERE destinataire='$userrow[id]' AND id='$doex[1]'","msg");
$page .= '<center><br />Ce message présent dans votre boîte de réception a été supprimé.<br /><br /><a href="?do=Reception">Boîte de réception</a>';
}
}
elseif(
$doex[0] == "Archiver")
{
$nbar = doquery("SELECT id FROM {{table}} WHERE statut='Archivé'","msg");
$nbar = mysql_num_rows($nbar);

if(
$nbar >= 25) // 25 :: nombre max d'éléments archivés
{
$page .= '<center>Désolé, mais vous avez atteind le nombre maximum de lettres archivées.<br /><br /><a href="?do=Reception">Boîte de réception</a>';
}
elseif(
$doex[1] == "All")
{
doquery("UPDATE {{table}} SET statut='Archivé' WHERE statut!='Archivé' AND destinataire='$userrow[id]'","msg");
$page .= '<center><br />Tous les messages présents dans votre boîte de réception ont étés archivés.<br /><br /><a href="?do=Reception">Boîte de réception</a>';
}
else
{
doquery("UPDATE {{table}} SET statut='Archivé' WHERE statut!='Archivé' AND destinataire='$userrow[id]' AND id='$doex[1]'","msg");
$page .= '<center><br />Ce message présent dans votre boîte de réception a été archivé.<br /><br /><a href="?do=Reception">Boîte de réception</a>';
}
}
elseif(
$doex[0] == "Archives")
{

// Lister les messages dont le destinataire est l'utilisateur
$msglist = doquery("SELECT * FROM {{table}} WHERE destinataire='$userrow[id]' AND statut='Archivé' ORDER BY date DESC","msg");

$page .= '<table width="90%" align="center"><tr><td width="30%"><b>Titre</b></td><td width="20%"><b>Envoyeur</td><td width="30%"><center><b>Date</td><td width="20%"><center><b>Actions</td></tr>';
while(
$msg = mysql_fetch_assoc($msglist))
{
$env = doquery("SELECT username FROM {{table}} WHERE id='$msg[envoyeur]'","users");
$env = mysql_fetch_assoc($env);

$date = date("j/m/Y à G:i",$msg['date']);

$page .= '<tr><td><a href="?do=Read:'.$msg['id'].'">'.$msg['titre'].'</a></td><td>'.$env['username'].'</td><td>'.$date.'</td><td><center><a href="?do=Suppr:'.$msg['id'].'"><img border="0" src="images/msg_delete.gif" alt="S" /></td></tr>';
}
$page .= '</table>';

}
elseif(
$doex[0] == "Benvoi") // Boite d'envoi - messages envoyés
{
// Lister les messages dont l'nvoyeur est le membre
$msglist = doquery("SELECT * FROM {{table}} WHERE envoyeur='$userrow[id]' AND statut='Non lu' ORDER BY date DESC","msg");

$page .= '<table width="90%" align="center"><tr><td width="30%"><b>Titre</b></td><td width="20%"><b>Envoyeur</td><td width="30%"><center><b>Date</td><td width="20%"><center><b>Actions</td></tr>';
while(
$msg = mysql_fetch_assoc($msglist))
{
$env = doquery("SELECT username FROM {{table}} WHERE id='$msg[destinataire]'","users");
$env = mysql_fetch_assoc($env);

$date = date("j/m/Y à G:i",$msg['date']);

$page .= '<tr><td><a href="?do=Lect:'.$msg['id'].'">'.$msg['titre'].'</a></td><td>'.$env['destinataire'].'</td><td>'.$date.'</td><td><center><a href="?do=Suppr:'.$msg['id'].'"><img border="0" src="images/msg_delete.gif" alt="S" /> <a href="?do=Archiver:'.$msg['id'].'"><img border="0" src="images/msg_archiv.gif" alt="- A" /></td></tr>';
}
$page .= '</table>';

$page .= '<br /><br /><a href="?do=Suppr:All"><img style="float:left;" border="0" src="images/msg_delete.gif" alt="Supprimer tout">Supprimer tout les messages</a>';
}
display($page,"Messagerie");

Est ce que quelqu'un pourrait m'aider svp ??


RE: messagerie interne - Kassak - 29-10-2008

Donne nous ton message d'erreur Wink


RE: messagerie interne - moriane - 29-10-2008

ok le voici:
Code :
## Le 20 Janvier 2005 ## Inclut envoi et réception, statut(lu,non lu, archivé), gestion(suppression, modification..) des messages ################################################################################# // Inclusion des fichiers neccessaires au script include('lib.php'); include('cookies.php'); opendb(); // Informations du joueur $userrow = checkcookies(); $doex = explode(':', $_GET['do']); if($_GET['do'] == "Reception") { $messtitle = 'Boîte de réception'; } elseif($doex[0] == "Envoi") { $messtitle = 'Envoyer un message'; } elseif($_GET['do'] == "Archives") { $messtitle = 'Archives'; } elseif($doex[0] == "Lect") { $messtitle = 'Lire un message'; } elseif($doex[0] == "Read") // lire un message archivé { $messtitle = 'Lire un message'; } elseif($doex[0] == "Suppr") { $messtitle = 'Supprimer un message'; } elseif($doex[0] == "Archiver") { $messtitle = 'Archiver un message'; } elseif($doex[0] == "Envoi") { $messtitle = 'Boîte d\'envoi'; } else { $messtitle = 'Boîte de réception'; } // Affichage du titre de la messagerie $page = '
    
'.$messtitle.'
Archives - Boîte d\'envoi/réception - Envoyer un message
    
'; if(empty($_GET['do'])) { header("location: ?do=Reception"); } if($_GET['do'] == 'Reception' || empty($_GET['do'])) { // Lister les messages dont le destinataire est l'utilisateur $msglist = doquery("SELECT * FROM {{table}} WHERE destinataire='$userrow[id]' AND statut!='Archivé' ORDER BY date DESC","msg"); $page .= ''; while($msg = mysql_fetch_assoc($msglist)) { $env = doquery("SELECT username FROM {{table}} WHERE id='$msg[envoyeur]'","users"); $env = mysql_fetch_assoc($env); if($msg['statut'] == "Non lu") { $attributecolor = 'style="color:red;"'; } $date = date("j/m/Y à G:i",$msg['date']); $page .= ''; } $page .= '
Titre    Envoyeur    
Date
    
Actions
'.$msg['titre'].'    '.$env['username'].'    '.$date.'    
S - A
'; $page .= '

Supprimer toutSupprimer tout les messages'; } elseif($doex[0] == 'Lect') { $msg1 = doquery("SELECT * FROM {{table}} WHERE id='$doex[1]' AND destinataire='$userrow[id]'","msg"); $msg = mysql_fetch_assoc($msg1); if($msg['statut'] == "Non lu") { $update = doquery("UPDATE {{table}} SET statut='Lu' WHERE id='$msg[id]' AND destinataire='$userrow[id]'","msg"); } $date = date("j/m/Y à G:i",$msg['date']); $env = doquery("SELECT username FROM {{table}} WHERE id='$msg[envoyeur]'","users"); $env = mysql_fetch_assoc($env); $page .= '
'.$msg['titre'].'    - '.$date.'
- '.$env['username'].'
'.nl2br(stripslashes($msg['message'])).'
'; $page .= '

[Répondre à ce message - Supprimer - Archiver]'; } elseif($doex[0] == 'Read') { $msg1 = doquery("SELECT * FROM {{table}} WHERE id='$doex[1]' AND envoyeur='$userrow[id]'","msg"); $msg = mysql_fetch_assoc($msg1); $date = date("j/m/Y à G:i",$msg['date']); $env = doquery("SELECT username FROM {{table}} WHERE id='$msg[destinataire]'","users"); $env = mysql_fetch_assoc($env); $page .= '
'.$msg['titre'].'    - '.$date.'
- A '.$env['username'].'
'.nl2br(stripslashes($msg['message'])).'
'; $page .= '

[Répondre à ce message - Supprimer]'; } elseif($doex[0] == "Envoi") { if(empty($_POST['message']) || empty($_POST['pseudo']) || empty($_POST['titre'])) { if(isset($doex[1])) { $infen = doquery("SELECT envoyeur,titre FROM {{table}} WHERE id='$doex[1]'","msg"); $infen = mysql_fetch_assoc($infen); $env = doquery("SELECT username FROM {{table}} WHERE id='$infen[envoyeur]'","users"); $env = mysql_fetch_assoc($env); (substr_count($infen['titre'],'Re:' ) == 0) ? $pre = 'Re: ' : $pre = ''; } $page .= '
  Pseudo:     
  Titre:     
'; } else { $ide = doquery("SELECT id FROM {{table}} WHERE username='$_POST[pseudo]'","users"); $error = 0; if(mysql_num_rows($ide) == 0) { $page .= '
Le joueur indiqué n\'existe pas.'; $error++; } $ide = mysql_fetch_assoc($ide); $ides = $ide['id']; $message = addslashes($_POST['message']); $time = time(); if($error == 0) { doquery("INSERT INTO {{table}} ( `id` , `titre` , `message` , `date` , `envoyeur` , `destinataire` , `statut` ) VALUES('', '$_POST[titre]', '$message', '$time', '$userrow[id]', '$ides', 'Non lu')","msg"); $page .= '

Votre message pour '.$_POST['pseudo'].' a bien été envoyé à la poste.

Boite de réception'; } } } elseif($doex[0] == "Suppr") { if($doex[1] == "All") { doquery("DELETE FROM {{table}} WHERE destinataire='$userrow[id]' AND statut!='Archivé'","msg"); $page .= '

Tous les messages présents dans votre boîte de réception ont étés supprimés.

Boîte de réception'; } else { doquery("DELETE FROM {{table}} WHERE destinataire='$userrow[id]' AND id='$doex[1]'","msg"); $page .= '

Ce message présent dans votre boîte de réception a été supprimé.

Boîte de réception'; } } elseif($doex[0] == "Archiver") { $nbar = doquery("SELECT id FROM {{table}} WHERE statut='Archivé'","msg"); $nbar = mysql_num_rows($nbar); if($nbar >= 25) // 25 :: nombre max d'éléments archivés { $page .= '
Désolé, mais vous avez atteind le nombre maximum de lettres archivées.

Boîte de réception'; } elseif($doex[1] == "All") { doquery("UPDATE {{table}} SET statut='Archivé' WHERE statut!='Archivé' AND destinataire='$userrow[id]'","msg"); $page .= '

Tous les messages présents dans votre boîte de réception ont étés archivés.

Boîte de réception'; } else { doquery("UPDATE {{table}} SET statut='Archivé' WHERE statut!='Archivé' AND destinataire='$userrow[id]' AND id='$doex[1]'","msg"); $page .= '

Ce message présent dans votre boîte de réception a été archivé.

Boîte de réception'; } } elseif($doex[0] == "Archives") { // Lister les messages dont le destinataire est l'utilisateur $msglist = doquery("SELECT * FROM {{table}} WHERE destinataire='$userrow[id]' AND statut='Archivé' ORDER BY date DESC","msg"); $page .= ''; while($msg = mysql_fetch_assoc($msglist)) { $env = doquery("SELECT username FROM {{table}} WHERE id='$msg[envoyeur]'","users"); $env = mysql_fetch_assoc($env); $date = date("j/m/Y à G:i",$msg['date']); $page .= ''; } $page .= '
Titre    Envoyeur    
Date
    
Actions
'.$msg['titre'].'    '.$env['username'].'    '.$date.'    
S
'; } elseif($doex[0] == "Benvoi") // Boite d'envoi - messages envoyés { // Lister les messages dont l'nvoyeur est le membre $msglist = doquery("SELECT * FROM {{table}} WHERE envoyeur='$userrow[id]' AND statut='Non lu' ORDER BY date DESC","msg"); $page .= ''; while($msg = mysql_fetch_assoc($msglist)) { $env = doquery("SELECT username FROM {{table}} WHERE id='$msg[destinataire]'","users"); $env = mysql_fetch_assoc($env); $date = date("j/m/Y à G:i",$msg['date']); $page .= ''; } $page .= '
Titre    Envoyeur    
Date
    
Actions
'.$msg['titre'].'    '.$env['destinataire'].'    '.$date.'    
S - A
'; $page .= '

Supprimer toutSupprimer tout les messages'; } display($page,"Messagerie");

Svp aider moi


RE: messagerie interne - pascal - 29-10-2008

le PHP n'est pas interprété.

Pour qu'un script PHP fonctionne, il faut avoir un serveur web, comme apache. WAMP ou easyPHP utilisent apache et s'installent assez facilement.

ce script, ça serait pas du RPG Illusion ?

A+

Pascal


RE: messagerie interne - moriane - 29-10-2008

non c pas rpgillusion c'est animrpg.Le script est actuelement sur un serveur et ne marche pas .Je vois pas ce que tu veux me dire


RE: messagerie interne - pascal - 29-10-2008

merci pour l'info.

le message d'erreur c'est le script tel quel. ça veut dire que le PHP n'est pas interprété, sinon on aurait des trucs affichés à l'écran, comme des formulaires. le "bug" peut venir du nom du fichier, il faut une extension ".php" .

tu vas devoir apprendre les bases du développement web je pense.

A+

Pascal


RE: messagerie interne - moriane - 29-10-2008

C'est bon j'ai trouver l'erreur^^


RE: [Résolu] Messagerie interne - keke - 29-10-2008

Heu ... Moriane, y'a de bons tuto sur comment configurer son serveur APACHE.
Je suis persuadé que tu as pris la config de base ... Y aller à tatton va, en plus d'énerver les membres de ce forum, te prendre du temps et rien t'apprendre d'utile.

Bonne journée !
kéké


RE: [Résolu] Messagerie interne - Eluox - 29-10-2008

Moi je dirais, short open tag a off

Met <?php a la place du <? de d"part :/