da Plazma meinte, sein halbfertiges Ticketsystem pubzumachen,
mache ich mein fertiges PN System pub. Es war zwar schon in meinem
CMS dabei, jedoch wurde es anscheinend nicht sehr bemerkt.
Ihr müsst noch ein paar Sachen verändern, damit es unter
hen's Script läuft.
Tabelle:
PHP Code:
DROP TABLE IF EXISTS `messages`;
CREATE TABLE `messages` (
`id` int(11) NOT NULL auto_increment,
`from_char` varchar(255) character set latin1 default '',
`from_name` varchar(255) character set latin1 default '',
`to_name` varchar(255) character set latin1 default '',
`to_char` varchar(255) character set latin1 default '',
`title` varchar(255) character set latin1 default '',
`content` varchar(255) character set latin1 default '',
`show_to` tinyint(1) default NULL,
`show_from` tinyint(1) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=ascii;
Script:
PHP Code:
<?PHP
if (isset($_GET['send']) AND $_GET['send'] == "TRUE" AND isset($_POST['submit']) AND $_POST['submit'] == "Absenden"){
##Variablen
$from_char = $_POST['char'];
$to_char = $_POST['to'];
$title = $_POST['title'];
$content = $_POST['content'];
if (!empty($content) AND !empty($to_char) AND !empty($from_char) AND !empty($title)){
$query = "SELECT account_id FROM player.player WHERE name = '".$to_char."' LIMIT 1";
$result = mysql_query($query,$gameServer);
$rows = mysql_num_rows($result);
$result = mysql_fetch_object($result);
if ($rows == 0){
echo "Charakter existiert nicht!<br/>";
}else{
$query = "SELECT login FROM account.account WHERE id = '".$result->account_id."' LIMIT 1";
$result = mysql_query($query,$gameServer);
$result = mysql_fetch_object($result);
$to_name = $result->login;
##Query
#Nachprüfen ob maximale Anzahl an Nachrichten erreicht ist
$query = "SELECT * FROM ".$db.".messages WHERE to_name = '".$to_name."'";
$result = mysql_query($query,$dbServer);
$rows = mysql_num_rows($result);
if ($rows >= $settings['maxmessages']){
echo "Der Benutzer hat die maximale Anzahl an Nachrichten erreicht!<br/>";
}else{
$query = "INSERT INTO ".$db.".messages
(from_char,from_name,to_name,to_char,title,content,show_from,show_to)
VALUES
('".$from_char."','".$_SESSION['user_name']."','".$to_name."','".$to_char."','".$title."','".$content."','1','1')";
$do = mysql_query($query,$dbServer);
echo "<b>Nachricht abgeschickt!</b><br/>";
}
}
}else{
echo "Bitte keine Felder leer lassen!<br/>";
}
}else if(isset($_GET['del']) AND isset($_GET['from']) AND $_GET['from'] == "TRUE"){
$query = "SELECT to_name
FROM ".$db.".messages
WHERE to_name = '".$_SESSION['user_name']."'";
$result = mysql_query($query,$dbServer);
$messages = mysql_fetch_object($result);
if ($messages->to_name == $_SESSION['user_name']){
$query = "UPDATE ".$db.".messages
SET show_to='0'
WHERE id = '".$_GET['del']."'";
$do = mysql_query($query,$dbServer);
echo "<b>Nachricht gelöscht!</b><br/>";
}else{
echo "Du bist nicht für diese Aktion berechtigt!<br/>";
}
}else if(isset($_GET['del']) AND isset($_GET['to']) AND $_GET['to'] == "TRUE"){
$query = "SELECT from_name
FROM ".$db.".messages
WHERE from_name = '".$_SESSION['user_name']."'";
$result = mysql_query($query,$dbServer);
$messages = mysql_fetch_object($result);
if ($messages->from_name == $_SESSION['user_name']){
$query = "UPDATE ".$db.".messages
SET show_from='0'
WHERE id = '".$_GET['del']."'";
$do = mysql_query($query,$dbServer);
echo "<b>Nachricht gelöscht!</b><br/>";
}else{
echo "Du bist nicht für diese Aktion berechtigt!<br/>";
}
}else if(isset($_GET['show']) AND $_GET['show'] == "messages"){
$query = "SELECT id,from_char,to_char,title,content
FROM ".$db.".messages
WHERE to_name = '".$_SESSION['user_name']."' AND show_to='1'
ORDER BY id";
$result = mysql_query($query,$dbServer);
$num_rows = mysql_num_rows($result);
if ($num_rows > 0){
while($messages = mysql_fetch_object($result)){
echo '<a href="?id=messages&show='.$messages->id.'"><b>'.$messages->title.'</b> von <i>'.$messages->from_char.'</i></a> <font color="#FF0000"><a href="?id=messages&from=TRUE&del='.$messages->id.'">Löschen</a></font><br/>';
}
}else{
echo "Keine Nachrichten vorhanden.<br/>";
}
}else if(isset($_GET['show']) AND $_GET['show'] == "outgoing"){
$query = "SELECT id,from_char,to_char,title,content
FROM ".$db.".messages
WHERE from_name = '".$_SESSION['user_name']."' AND show_from='1'
ORDER BY id";
$result = mysql_query($query,$dbServer);
$num_rows = mysql_num_rows($result);
if ($num_rows > 0){
while($messages = mysql_fetch_object($result)){
echo '<a href="?id=messages&show='.$messages->id.'"><b>'.$messages->title.'</b> von <i>'.$messages->from_char.'</i> an <i>'.$messages->to_char.'</i></a> <font color="#FF0000"><a href="?id=messages&to=TRUE&del='.$messages->id.'">Löschen</a></font><br/>';
}
}else{
echo "Keine Nachrichten vorhanden.<br/>";
}
}else if(isset($_GET['show']) AND !empty($_GET['show'])){
$query = "SELECT id,from_char,to_char,title,content
FROM ".$db.".messages
WHERE id = '".$_GET['show']."'
LIMIT 1";
$result = mysql_query($query,$dbServer);
$result = mysql_fetch_object($result);
echo "Betreff: ".$result->title."<br/>";
echo "Von: ".$result->from_char."<br/>";
echo "An: ".$result->to_char."<br/>";
echo "Inhalt: <br/>".$result->content."<br/>";
echo "<br/>";
echo '<form action="?id=messages&send=TRUE" method="post">';
echo "<b>Antwort:</b><br/>";
echo '<textarea name="content" cols="40" rows="5">';
echo "Deine Nachricht...";
echo "</textarea><br>";
echo '<input type="hidden" name="char" value="'.$result->to_char.'" />';
echo '<input type="hidden" name="to" value="'.$result->from_char.'" />';
echo '<input type="hidden" name="title" value="Re: '.$result->title.'" />';
echo '<input type="submit" name="submit" value="Absenden" /></form>';
}else if (isset($_GET['action']) AND $_GET['action'] == "write"){
$query = "SELECT name
FROM player.player
WHERE account_id = '".$_SESSION['user_id']."'
";
$result = mysql_query($query,$gameServer);
echo '<form action="?id=messages&send=TRUE" method="post">';
echo "<b>Von:</b><br/>";
$num_rows = mysql_num_rows($result);
echo '<select name="char"';
echo '<option>';
if ($num_rows != 0){
while($player = mysql_fetch_object($result)) {
while($num_rows != 0) {
echo "<b>Bitte wähle einen Charakter!</b>";
echo "<option name='".$player->name."' value='".$player->name."'>".$player->name."</option";
echo "<br/>";
$query = "SELECT name FROM player.player WHERE name NOT LIKE '".$player->name."' AND account_id = '".$_SESSION['user_id']."'";
$result = mysql_query($query,$gameServer);
while($playernew = mysql_fetch_object($result)) {
echo "<option value='".$playernew->name."'>".$playernew->name."</option";
echo "<br/>";
$num_rows = $num_rows - 1;
}
$num_rows = $num_rows - 1;
}
}
}else{
echo '<option value="'.$_SESSION['user_name'].'">'.$_SESSION['user_name'].'</option>';
}
echo "</select><br/>";
echo "<b>Betreff:</b><br/>";
echo '<input type="text" name="title" /><br/>';
echo "<b>An:</b><br/>";
echo '<input type="text" name="to" /><br/>';
echo "<b>Inhalt:</b><br/>";
echo '<textarea name="content" cols="40" rows="5">';
echo "Deine Nachricht...";
echo "</textarea><br>";
echo '<input type="submit" name="submit" value="Absenden" />';
echo "</form>";
}else{
##Säuberung
$query = "DELETE FROM ".$db.".messages WHERE show_from='0' AND show_to='0'";
$do = mysql_query($query,$dbServer);
##Anzeige
$query = "SELECT * FROM ".$db.".messages WHERE to_name = '".$_SESSION['user_name']."' AND show_to = '1'";
$result = mysql_query($query,$dbServer);
$rows = mysql_num_rows($result);
echo "<small>Du hast ".$rows." von ".$settings['maxmessages']." Nachrichten</small><br/>";
if ($rows >= $settings['maxmessages']){
echo "<i>Dein Postfach ist voll.</i><br/>";
}
echo '<a href="?id=messages&action=write"><b>Nachricht schreiben...</b></a><br/>';
echo '<a href="?id=messages&show=messages"><b>Posteingang</b></a><br/>';
echo '<a href="?id=messages&show=outgoing"><b>Postausgang</b></a><br/>';
}
?>
Sincerely,
Daroo