Ik ben een mafia spel aan het maken, text based natuurlijk.
Ik heb nou eindelijk het berichtensysteem af, een paar fouten tegengekomen en verbeterd.
message.php
PHP
<?php
/*
copyright: Youri van Mill
date: 12-12-2010
filename: /message/index.php
*/
error_reporting(0);
include($_SERVER['DOCUMENT_ROOT'] . "/includes/config.inc");
if(!isset($_SESSION['nickname']))
{
header("location: /index.php");
die();
}
echo("<html>
<head>
<link type=\"text/css\" href=\"" . CSS_INCLUDE_DIR . "/style.css\" rel=\"stylesheet\">
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">
<title>xxxx</title>
</head>
<body>" . PHP_EOL);
if($_GET['option'] == "new")
{
if(!isset($_POST['submit']))
{
echo("<table width=\"50%\" align=\"center\">
<form action=\"/message/index.php?option=new\" method=\"post\">
<tr>
<td colspan=\"2\" class=\"title\">Nieuw bericht maken</td>
</tr>
<tr>
<td>Ontvanger:</td>
<td><input type=\"text\" name=\"to\" value=\"" . htmlentities($_GET['to']) . "\"></td>
</tr>
<tr>
<td>Onderwerp:</td>
<td><input type=\"text\" name=\"subject\" value=\"" . htmlentities($_GET['subject']) . "\"></td>
</tr>
<tr>
<td colspan=\"2\"><textarea cols=\"45\" rows=\"15\" name=\"msg\"></textarea></td>
</tr>
<tr>
<td colspan=\"2\"><input type=\"submit\" name=\"submit\" value=\"Verstuur\"></td>
</tr>
</form>
</table>");
}
else
{
$sql = mysql_query("SELECT nickname
FROM members
WHERE nickname = '" . mysql_real_escape_string($_POST['to']) . "'");
if(empty($_POST['to']))
{
echo("Je bent vergeten in te vullen naar wie je het bericht wilt versturen.");
}
elseif(!ctype_alnum($_POST['to']))
{
echo("Ongeldige invoer.");
}
elseif(empty($_POST['msg']))
{
echo("Je moet wel een bericht versturen.");
}
elseif($_POST['to'] == $data['nickname'])
{
echo("Je kan geen bericht naar jezelf verzenden.");
}
else
{
if(mysql_num_rows($sql) == 0)
{
echo("Deze persoon bestaat niet.");
}
else
{
echo("Je bericht is verzonden.");
mysql_query("INSERT INTO
logs_message
(timestamp,
ip,
info)
VALUES
('" . time() . "',
'" . $_SERVER['REMOTE_ADDR'] . "',
'" . strtolower($data['nickname']) . " send a message to " . strtolower($_POST['to']) . "')");
mysql_query("INSERT INTO
message
(timestamp,
ip,
`from`,
`to`,
subject,
msg)
VALUES
('" . time() . "',
'" . $_SERVER['REMOTE_ADDR'] . "',
'" . strtolower($data['nickname']) . "',
'" . strtolower($_POST['to']) . "',
'" . addslashes($_POST['subject']) . "',
'" . addslashes(htmlentities($_POST['msg'])) . "')");
}
}
}
}
elseif($_GET['option'] == "inbox")
{
echo("<table width=\"50%\" align=\"center\">
<tr>
<td class=\"title\" colspan=\"3\">Inbox</td>
</tr>" . PHP_EOL);
$sql = mysql_query("SELECT *
FROM message
WHERE `to` = '" . $data['nickname'] . "'");
echo(" <tr>
<td>Onderwerp</td>
<td>Datum</td>
<td> </td>
</tr>" . PHP_EOL);
if(mysql_num_rows($sql) == 0)
{
echo(" <tr>
<td colspan=\"3\">Geen nieuwe berichten.</td>
</tr>");
}
else
{
while($res = mysql_fetch_assoc($sql))
{
echo(" <tr>
<td><a href=\"/message/index.php?option=read&message_id=" . $res['id'] . "\">" . $res['subject'] . "</a></td>
<td>" . strftime("%e-%m-%Y, %H:%M", $res['timestamp']) . "</td>
<td><a href=\"/message/index.php?option=delete&message_id=" . $res['id'] . "\">Verwijder</a></td>
</tr>");
}
}
echo(PHP_EOL . "</table>");
}
elseif($_GET['option'] == "read")
{
$sql = mysql_query("SELECT *
FROM message
WHERE id = '" . mysql_real_escape_string($_GET['message_id']) . "' AND `to` = '" . $data['nickname'] . "'");
if(!isset($_GET['message_id']))
{
echo("Geen bericht geselecteerd.");
}
else
{
if(!ctype_digit($_GET['message_id']))
{
echo("Ongeldig ID.");
}
else
{
if(mysql_num_rows($sql) == 0)
{
echo("Dit bericht bestaat niet of is niet naar jou verzonden.");
}
else
{
$res = mysql_fetch_assoc($sql);
if($res['read'] == "no")
{
mysql_query("UPDATE message
SET `read` = 'yes'
WHERE id = '" . mysql_real_escape_string($_GET['message_id']) . "'");
}
else
{
/* lets do nothing */
}
echo("<table width=\"50%\" align=\"center\">
<tr>
<td class=\"title\" colspan=\"2\">Bericht lezen</td>
</tr>
<tr>
<td width=\"50%\">Onderwerp:</td>
<td width=\"50%\">" . $res['subject'] . "</td>
</tr>
<tr>
<td width=\"50%\">Datum:</td>
<td width=\"50%\">" . strftime("%e-%m-%Y, %H:%M", $res['timestamp']) . "</td>
</tr>
<tr>
<td colspan=\"2\">Bericht:</td>
</tr>
<tr>
<td colspan=\"2\">" . stripslashes($res['msg']) . "</td>
</tr>
</table>");
}
}
}
}
elseif($_GET['option'] == "delete")
{
$sql = mysql_query("SELECT *
FROM message
WHERE id = '" . mysql_real_escape_string($_GET['message_id']) . "' AND `to` = '" . $data['nickname'] . "'");
if(!isset($_GET['message_id']))
{
echo("Geen bericht geselecteerd.");
}
else
{
if(!ctype_digit($_GET['message_id']))
{
echo("Ongeldig ID.");
}
else
{
if(mysql_num_rows($sql) == 0)
{
echo("Dit bericht bestaat niet of is niet naar jou verzonden.");
}
else
{
echo("Bericht verwijderd.");
mysql_query("INSERT INTO
logs_message
(timestamp,
ip,
info)
VALUES
('" . time() . "',
'" . $_SERVER['REMOTE_ADDR'] . "',
'" . $data['nickname'] . " deleted message id: " . $_GET['message_id'] . "')");
mysql_query("DELETE FROM message
WHERE id = '" . mysql_real_escape_string($_GET['message_id']) . "'");
}
}
}
}
else
{
echo("Selecteer een optie.");
}
echo(PHP_EOL . "</body>
</html>");
?>
Toon Meer
Al het commentaar is welkom, slecht en goed.
Zeg maar wat jullie er van vinden, en wat je zelf zou veranderen.
:cheer: