root/dev/common/post.php @ 92

Revision 92, 4.4 KB (checked in by exi, 14 years ago)

Updated about page for 1.2.
Made table bgcolor black for alliance images.
Made table bgcolor black for corp images.
The parser now reparsers dupes and deletes comments on killmail deletion.
Changed parser to output some error messages if he doesn't like the mail.
Added conversion code for those funny german mailheader.
Fixed bugs #3 and #4.
Included a fix from Coni to class.ship.php.
Removed the error for unknown solar systems, this is now covered by the parser itself.
Now ordering comments by date.
Fixed db.php:getRow to return false in case of a non valid mysql resource id.
Added the sql killmail limit for home.php.
Added default width/heigth for pictures in kill details.
The searchpage will now redirect you to your hit if it only gets one serach result.

Line 
1<?php
2require_once("class.page.php");
3require_once("class.killboard.php");
4require_once("class.parser.php");
5require_once("class.phpmailer.php");
6require_once("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->getPostPassword() || $page->isAdmin())
14    {
15        $parser = new Parser($_POST['killmail']);
16
17        // Filtering
18        if ($config->getConfig("filter_apply"))
19        {
20            $filterdate = $config->getConfig("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 = date("j F Y", $config->getConfig("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                $mailer->From = "mailer@".$config->getConfig('mail_host');
79                $mailer->FromName = $config->getConfig('mail_host');
80                $mailer->Subject = "Killmail #" . $killid;
81                $mailer->Host = "localhost";
82                $mailer->Port = 25;
83                $mailer->Helo = "localhost";
84                $mailer->Mailer = "smtp";
85                $mailer->AddReplyTo("no_reply@".$config->getConfig('mail_host'), "No-Reply");
86                $mailer->Sender = "mailer@".$config->getConfig('mail_host');
87                $mailer->Body = $kill->getRawMail();
88                $mailer->AddAddress($config->getPostMailto());
89                $mailer->Send();
90            }
91
92            $qry = new DBQuery();
93            $qry->execute("insert into kb3_log
94                               values(".$killid.",'".KB_SITE."','".$_SERVER['REMOTE_ADDR']."', now())");
95
96            header("Location: ?a=kill_detail&kll_id=".$killid);
97            exit;
98        }
99    }
100    else
101    {
102        $html = "Invalid password.";
103    }
104}
105else
106{
107    $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.";
108    $html .= "<br><br>Remember to post your losses as well.<br><br>";
109    $html .= "<b>Killmail:</b><br>";
110    $html .= "<form id=postform name=postform class=f_killmail method=post action=\"?a=post\">";
111    $html .= "<textarea name=killmail id=killmail class=f_killmail cols=\"70\" rows=\"24\"></textarea>";
112    if (!$page->isAdmin())
113    {
114        $html .= "<br><br><b>Password:</b><br><input id=password name=password type=password></input>";
115    }
116    $html .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id=submit name=submit type=submit value=\"Process !\"></input>";
117    $html .= "</form>";
118}
119
120$page->setContent($html);
121$page->generate();
122?>
Note: See TracBrowser for help on using the browser.