Open Sencillo  2014.008
 All Data Structures Files Functions Variables Pages
login.management.logman.php
Go to the documentation of this file.
1 <?php
11 class logMan extends mysqlEdit
12 {
13  protected $log=array();
14  protected $status=array();
15 
19  public function __construct()
20  {
21  $this->log['server']=$_SERVER['SERVER_NAME'];
22  $this->log['request']=$_SERVER['REQUEST_URI'];
23  $this->log['port']=$_SERVER['REMOTE_PORT'];
24  $this->log['agent']=$_SERVER['HTTP_USER_AGENT'];
25  $this->log['referer']=$_SERVER['HTTP_REFERER'];
26  $this->log['external_ip']=$_SERVER['REMOTE_ADDR'];
27  $this->status=array(
28  'called'=>$_POST['atype'],
29  'data'=>date('Y-m-d'),
30  'time'=>date('H:i:s')
31  );
32  if($this->test())
33  {
34  $this->log['database']=array('host'=>$this->DBHost,
35  'name'=>$this->DBName,
36  'user'=>$this->DBUser,
37  'pass'=>$this->DBPass);
38  $this->install();
39  }
40  }
41 
46  final public function install()
47  {
48  try
49  {
50  $this->newColumn("sign","TEXT");
51  $this->newColumn("active","INT(1)");
52  $this->newColumn("login","VARCHAR(255)");
53  $this->newColumn("pass","VARCHAR(255)");
54  $this->newColumn("email","VARCHAR(255)");
55  $this->newColumn("fname","VARCHAR(255)");
56  $this->newColumn("lname","VARCHAR(255)");
57  $this->newColumn("perm","INT(4)");
58  $this->newColumn("ip","VARCHAR(20)");
59  $this->newColumn("agent","TEXT");
60  $this->newColumn("date","VARCHAR(20)");
61  $this->newColumn("time","VARCHAR(20)");
62  $this->createTable("users");
63  return true;
64  }
65  catch(Exception $e)
66  {
67  return false;
68  }
69  }
70 
77  final public function editPerm($login=null,$perm=null)
78  {
79  if(isset($login))
80  {
81  if((is_numeric($perm))&&($perm<=1111))
82  {
83  $this->set("perm",$perm);
84  $this->update("`login`=".$this->log['user']);
85  unset($this->log['perm']);
86  $this->log['perm']=$perm;
87  return $this->log['perm'];
88  }
89  else
90  {
91  return false;
92  }
93  }
94  else
95  {
96  $this->set("perm",$perm);
97  $this->update("`login`=".$login);
98  }
99  }
100 
105  final public function getPerm()
106  {
107  return $this->log['perm'];
108  }
109 
115  final public function ereg()
116  {
117  $this->openTable('users');
118  if(filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
119  {
120  if($this->output("`login`='".$_POST['email']."'","`id` ASC",1)==false)
121  {
122  try
123  {
124  $this->insert("'first_use',0,'".strtolower($_POST['email'])."',MD5('".$_POST['pass']."'),'".strtolower($_POST['email'])."','".$this->clean(ucwords(strtolower($_POST['fname'])))."','".$this->clean(ucwords(strtolower($_POST['lname'])))."',1000,'".$log['external_ip'].":".$log['port']."','".$log['agent']."',DATE(NOW()),TIME(NOW())");
125  $this->status['status']='ok';
126  $this->status['code']=200;
127  }
128  catch(Exception $e)
129  {
130  $this->status['status']='failed';
131  $this->status['code']=417;
132  }
133  }
134  else
135  {
136  $this->status['status']='exist';
137  $this->status['code']=409;
138  }
139  }
140  else
141  {
142  $this->status['status']='invalid';
143  $this->status['code']=403;
144  }
145  }
146 
152  final public function login($ajax)
153  {
154  $this->openTable('users');
155  if(filter_var($ajax['email'],FILTER_VALIDATE_EMAIL))
156  {
157  if($this->output("`login`='".strtolower($ajax['email'])."' AND `pass`=MD5('".$ajax['pass']."')","`id` ASC",1)!=false)
158  {
159  $this->status['status']='authorized';
160  $this->status['code']=202;
161  $this->status['user']=$this->output("`login`='".strtolower($ajax['email'])."' AND `pass`=MD5('".$ajax['pass']."')","`id` ASC",1);
162 
163  $this->addSessionData('userid',$this->status['user']['line'][1]['id']);
164  $this->addSessionData('login',$this->status['user']['line'][1]['login']);
165  $this->addSessionData('email',$this->status['user']['line'][1]['email']);
166  $this->addSessionData('perm',$this->status['user']['line'][1]['perm']);
167  $this->addSessionData('sessionid',session_id());
168  $this->addSessionData('start',date('Y-m-d H:i:s'));
169  if($this->status['user']['line'][1]['sign']=='first_use')
170  {
171  $this->addSessionData('tutorial',true);
172  }
173  else
174  {
175  $this->addSessionData('tutorial',false);
176  }
177  $this->update('`id`='.$this->status['user']['line'][1]['id'],"`sign`='".$this->getSessionData('sessionid')."'");
178 
179  unset($this->status['user']['line']);
180  }
181  else
182  {
183  $this->status['status']='unauthorized';
184  $this->status['code']=404;
185  }
186  }
187  else
188  {
189  $this->status['status']='invalid';
190  $this->status['code']=403;
191  }
192  }
193 
199  final public function addToMainArray($name,$data)
200  {
201  $this->status[$name]=$data;
202  }
203 
207  final public function ajaxSendJson()
208  {
209  print json_encode($this->status);
210  }
211 
215  final public function addNewUser($pass,$perm)
216  {
217  //TODO
218  }
219 
224  final public function createSession()
225  {
226  $this->log['session']=array('exist'=>session_start(),
227  'id'=>session_id(),
228  'date'=>date('Y-m-d'),
229  'time'=>date('H:i:s'));
230  return $this->log['session'];
231  }
232 
236  final public function destroySession()
237  {
238  unset($this->log['session']);
239  session_destroy();
240  }
241 
248  final public function addSessionData($name,$data=null)
249  {
250  $_SESSION[$name]=$data;
251  return $data;
252  }
253 
259  final public function getSessionData($name)
260  {
261  return $_SESSION[$name];
262  }
263 
267  final public function signIn($pass)
268  {
269  //TODO
270  }
271 
276  final public function getSignedUser()
277  {
278  return $this->log;
279  }
280 
284  final public function signOut()
285  {
286  //TODO
287  }
288 
294  final public function clean($string)
295  {
296  return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
297  }
298 }
299 ?>
update($if, $sets=null)
Definition: core_sql.php:201
addSessionData($name, $data=null)
test()
Definition: core_sql.php:92
$pass
Definition: session.php:145
newColumn($name, $type="INT")
Definition: core_sql.php:136
createTable($name)
Definition: core_sql.php:145
$perm
Definition: session.php:150
addNewUser($pass, $perm)
editPerm($login=null, $perm=null)
addToMainArray($name, $data)
output($if="`id`>0", $order="`id` ASC", $limit=1000)
Definition: core_sql.php:231
openTable($name)
Definition: core_sql.php:155
set($column, $value)
Definition: core_sql.php:183
insert($values)
Definition: core_sql.php:173