root/dev/common/post.php @ 190

Revision 190, 4.6 KB (checked in by exi, 16 years ago)

This is a big update...
Moved all admin scripts to common/admin.
Moved all includes and classes to common/includes.
Edited all include-paths to reflect the movement.
Fixed a bug with the session system allowing every registered user to access admin pages.
Replaced calls to date() to use a wrapper so gmdate can be used.
Replaced some calls to $config with calls to the static object.
Fixed a big which caused the portrait_grab to not download a new picute.
Added a classified-state to kills.
Removed the sync_server server script in this tree.
Added code to help modules find the includes to index.php.

Line 
1<?php
2require_once('common/includes/class.page.php');
3require_once('common/includes/class.killboard.php');
4require_once('common/includes/class.parser.php');
5require_once('common/includes/class.phpmailer.php');
6require_once('common/includes/class.kill.php');
7
8$page = new Page('Post killmail');
9$kb = new Killboard(KB_SITE);
10
11if (isset($_POST['killmail']))
12{
13    if ($_POST['password'] == config::get('post_password') || $page->isAdmin())
14    {
15        $parser = new Parser($_POST['killmail']);
16
17        // Filtering
18        if (config::get('filter_apply'))
19        {
20            $filterdate = config::get('filter_date');
21            $year = substr($_POST['killmail'], 0, 4);
22            $month = substr($_POST['killmail'], 5, 2);
23            $day = substr($_POST['killmail'], 8, 2);
24            $killstamp = mktime(0, 0, 0, $month, $day, $year);
25            if ($killstamp < $filterdate)
26            {
27                $killid = -3;
28            }
29            else
30            {
31                $killid = $parser->parse(true);
32            }
33        }
34        else
35        {
36            $killid = $parser->parse(true);
37        }
38
39        if ($killid == 0 || $killid == -1 || $killid == -2 || $killid == -3)
40        {
41            if ($killid == 0)
42            {
43                $html = "Killmail is malformed.<br/>";
44                if ($errors = $parser->getError())
45                {
46                    foreach ($errors as $error)
47                    {
48                        $html .= 'Error: '.$error[0];
49                        if ($error[1])
50                        {
51                            $html .= ' The text lead to this error was: "'.$error[1].'"';
52                        }
53                        $html .= '<br/>';
54                    }
55                }
56            }
57            elseif ($killid == -1)
58            {
59                $html = "That killmail has already been posted <a href=\"?a=kill_detail&kll_id=".$parser->dupeid_."\">here</a>.";
60            }
61            elseif ($killid == -2)
62            {
63                $html = "You are not authorized to post this killmail.";
64            }
65            elseif ($killid == -3)
66            {
67                $filterdate = kbdate("j F Y", config::get("filter_date"));
68                $html = "You are not allowed to post killmails older than $filterdate.";
69            }
70        }
71        else
72        {
73            if ($config->getPostMailto() != "")
74            {
75                $mailer = new PHPMailer();
76                $kill = new Kill($killid);
77
78                if (!$server = config::get('post_mailserver'))
79                {
80                    $server = 'localhost';
81                }
82                $mailer->From = "mailer@".config::get('post_mailhost');
83                $mailer->FromName = config::get('post_mailhost');
84                $mailer->Subject = "Killmail #" . $killid;
85                $mailer->Host = $server;
86                $mailer->Port = 25;
87                $mailer->Helo = $server;
88                $mailer->Mailer = "smtp";
89                $mailer->AddReplyTo("no_reply@".config::get('post_mailhost'), "No-Reply");
90                $mailer->Sender = "mailer@".config::get('post_mailhost');
91                $mailer->Body = $kill->getRawMail();
92                $mailer->AddAddress(config::get('post_mailhost'));
93                $mailer->Send();
94            }
95
96            $qry = new DBQuery();
97            $qry->execute("insert into kb3_log values(".$killid.",'".KB_SITE."','".$_SERVER['REMOTE_ADDR']."', now())");
98
99            header("Location: ?a=kill_detail&kll_id=".$killid);
100            exit;
101        }
102    }
103    else
104    {
105        $html = "Invalid password.";
106    }
107}
108elseif (!config::get('post_forbid'))
109{
110    $html .= "Paste the killmail from your EVEMail inbox into the box below. Make sure you post the <b>ENTIRE</b> mail.<br>Posting fake or otherwise edited mails is not allowed. All posts are logged.";
111    $html .= "<br><br>Remember to post your losses as well.<br><br>";
112    $html .= "<b>Killmail:</b><br>";
113    $html .= "<form id=postform name=postform class=f_killmail method=post action=\"?a=post\">";
114    $html .= "<textarea name=killmail id=killmail class=f_killmail cols=\"70\" rows=\"24\"></textarea>";
115    if (!$page->isAdmin())
116    {
117        $html .= "<br><br><b>Password:</b><br><input id=password name=password type=password></input>";
118    }
119    $html .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id=submit name=submit type=submit value=\"Process !\"></input>";
120    $html .= "</form>";
121}
122else
123{
124    $html .= 'Posting killmails is disabled<br/>';
125}
126
127$page->setContent($html);
128$page->generate();
129?>
Note: See TracBrowser for help on using the browser.