root/dev/common/includes/class.pilot.php @ 192

Revision 192, 3.6 KB (checked in by exi, 16 years ago)

Fixed several potential security issues with unchecked variables.
Added .htaccess files to common/ and mods/.
Modified the sync module to not send item data anymore.

Line 
1<?php
2require_once("db.php");
3require_once("class.corp.php");
4require_once("class.item.php");
5
6class Pilot
7{
8    function Pilot($id = 0)
9    {
10        $this->id_ = intval($id);
11        $this->qry_ = new DBQuery();
12    }
13
14    function getID()
15    {
16        return $this->id_;
17    }
18
19    function getName()
20    {
21        $this->execQuery();
22        $pos = strpos($this->row_['plt_name'], "#");
23        if ($pos === false)
24        {
25            return $this->row_['plt_name'];
26        }
27        else
28        {
29            $name = explode("#", $this->row_['plt_name']);
30            $item = new Item($name[2]);
31            return $item->getName();
32        }
33    }
34
35    function getPortraitURL($size = 64)
36    {
37        $this->execQuery();
38        return '?a=thumb&amp;id='.$this->row_['plt_externalid'].'&amp;size='.$size;
39    }
40
41    function execQuery()
42    {
43        if (!$this->qry_->executed_)
44        {
45            $this->sql_ = 'select * from kb3_pilots plt, kb3_corps crp, kb3_alliances ali
46                               where crp.crp_id = plt.plt_crp_id
47                               and ali.all_id = crp.crp_all_id
48                                   and plt.plt_id = '.$this->id_;
49            $this->qry_->execute($this->sql_) or die($this->qry_->getErrorMsg());
50            $this->row_ = $this->qry_->getRow();
51            if (!$this->row_)
52                $this->valid_ = false;
53            else
54                $this->valid_ = true;
55        }
56    }
57
58    function getCorp()
59    {
60        $this->execQuery();
61        return new Corporation($this->row_['plt_crp_id']);
62    }
63
64    function exists()
65    {
66        $this->execQuery();
67        return $this->valid_;
68    }
69
70    function add($name, $corp, $timestamp)
71    {
72        $qry = new DBQuery();
73        $qry->execute("select *
74                        from kb3_pilots
75                       where plt_name = '".slashfix($name)."'");
76
77        if ($qry->recordCount() == 0)
78        {
79            $qry->execute("insert into kb3_pilots values ( null,
80                                                        '".slashfix($name)."',
81                                                        ".$corp->getID().",
82                                                        0, 0, 0,
83                                                        date_format( '".$timestamp."', '%Y.%m.%d %H:%i:%s'))");
84            $this->id_ = $qry->getInsertID();
85        }
86        else
87        {
88            $row = $qry->getRow();
89            $this->id_ = $row['plt_id'];
90            if ($this->isUpdatable($timestamp) && $row['plt_crp_id'] != $corp->getID())
91            {
92                $qry->execute("update kb3_pilots
93                             set plt_crp_id = ".$corp->getID().",
94                                 plt_updated = date_format( '".$timestamp."', '%Y.%m.%d %H:%i:%s') where plt_id = ".$this->id_);
95            }
96        }
97
98        return $this->id_;
99    }
100
101    function isUpdatable($timestamp)
102    {
103        $qry = new DBQuery();
104        $qry->execute("select plt_id
105                        from kb3_pilots
106                       where plt_id = ".$this->id_."
107                         and ( plt_updated < date_format( '".$timestamp."', '%Y.%m.%d %H:%i')
108                               or plt_updated is null )");
109
110        return $qry->recordCount() == 1;
111    }
112
113    function setCharacterID($id)
114    {
115        $id = intval($id);
116        if (!$id)
117        {
118            return false;
119        }
120        $qry = new DBQuery();
121        $qry->execute("update kb3_pilots set plt_externalid = ".$id."
122                       where plt_id = ".$this->id_);
123    }
124}
125?>
Note: See TracBrowser for help on using the browser.