示例#1
0
 public function delete()
 {
     $DBH = DB::connect();
     $sql = 'DELETE FROM ' . static::$table . ' WHERE id = ?';
     $STH = $DBH->prepare($sql);
     return $STH->execute($this->id);
 }
示例#2
0
 public static function findLastNews(int $n)
 {
     $sql = 'SELECT * FROM ' . static::TABLE . sprintf(' ORDER BY id DESC LIMIT %d', $n);
     $db = DB::instance();
     $db->setClass(static::class);
     $res = $db->query($sql);
     return [] == $res ? false : $res;
 }
示例#3
0
 public static function validate($email, $pass)
 {
     $sql = 'SELECT * FROM ' . static::TABLE . ' WHERE email=:email';
     $db = DB::instance();
     $db->setClass(static::class);
     $admin = $db->query($sql, [':email' => $email]);
     if ([] == $admin) {
         return false;
     } else {
         if ($pass == $admin[0]->pass) {
             $_SESSION['admin'] = $email;
             return true;
         }
     }
 }
示例#4
0
 public function __construct($user = null)
 {
     $this->_db = DB::connect();
     $this->_sessionName = Config::get('session/session_name');
     $this->_cookieName = Config::get('remember/cookie_name');
     if (!$user) {
         if (Session::exists($this->_sessionName)) {
             $user = Session::get($this->_sessionName);
             if ($this->find($user)) {
                 $this->_isLoggedIn = true;
             } else {
                 // logout
             }
         }
     } else {
         $this->find($user);
     }
 }
 public static function haversine($query, $lat, $lng, $max_distance = 20, $units = 'kilometers', $fields = false)
 {
     if (empty($lat)) {
         $lat = 0;
     }
     if (empty($lng)) {
         $lng = 0;
     }
     /*
      *  Allow for changing of units of measurement
      */
     switch ($units) {
         case 'miles':
             //radius of the great circle in miles
             $gr_circle_radius = 3959;
             break;
         case 'kilometers':
             //radius of the great circle in kilometers
             $gr_circle_radius = 6371;
             break;
     }
     /*
      *  Support the selection of certain fields
      */
     if (!$fields) {
         $fields = array('users.*', 'users_profile.*', 'users.username as user_name');
     }
     /*
      *  Generate the select field for disctance
      */
     $distance_select = sprintf("\n                                    ROUND(( %d * acos( cos( radians(%s) ) " . " * cos( radians( lat ) ) " . " * cos( radians( lng ) - radians(%s) ) " . " + sin( radians(%s) ) * sin( radians( lat ) ) " . " ) " . ")\n                                    , 2 ) " . "AS distance\n                                    ", $gr_circle_radius, $lat, $lng, $lat);
     $data = $query->select(DB::raw(implode(',', $fields) . ',' . $distance_select))->having('distance', '<=', $max_distance)->orderBy('distance', 'ASC')->get();
     //echo '<pre>';
     //echo $query->toSQL();
     //echo $distance_select;
     //echo '</pre>';
     //die();
     //
     //$queries = DB::getQueryLog();
     //$last_query = end($queries);
     //var_dump($last_query);
     //die();
     return $data;
 }
示例#6
0
<?php

//namespace app\core;
use app\models\Cookie;
use app\models\Config;
use app\models\Session;
use app\models\User;
use app\classes\DB;
session_start();
$GLOBALS['config'] = ['mysql' => ['host' => '127.0.0.1', 'username' => 'root', 'password' => 'root', 'db' => 'test'], 'remember' => ['cookie_name' => 'hash', 'cookie_expiry' => 604800], 'session' => ['session_name' => 'root', 'token_name' => 'token']];
spl_autoload_register(function ($class) {
    require_once 'classes/' . $class . '.php';
});
require_once "functions/sanitize.php";
if (Cookie::exists(Config::get('remember/cookie_name')) && !Session::exists(Config::get('session/session_name'))) {
    $hash = Cookie::get(Config::get('remember/cookie_name'));
    $hashCheck = DB::connect()->get('users_session', ['hash', '=', $hash]);
    if ($hashCheck->count()) {
        $user = new User($hashCheck->first()->user_id);
        $user->login();
    }
}
示例#7
0
//die;
require_once 'autoload.php';
$ctrl = isset($_GET['ctrl']) ? $_GET['ctrl'] : 'News';
$act = isset($_GET['act']) ? $_GET['act'] : 'All';
$classController = 'app\\controllers\\' . $ctrl . 'Controller';
//require __DIR__ . '/classes/DB.php';
$controller = new $classController();
$method = "action" . $act;
$controller->{$method}();
if (require_once 'core/init.php') {
    echo 1;
}
use app\models\Session;
use app\models\User;
use app\classes\DB;
$user = DB::connect();
if (Session::exists('home')) {
    echo "<p><b>" . Session::flash('home') . "</b></p>";
}
$user = new User();
if ($user->isLoggedIn()) {
    ?>
    <p>Hello, <a href="profile.php?user=<?php 
    echo escape($user->data()->username);
    ?>
"><?php 
    echo $user->data()->username;
    ?>
</a></p>
    <ul>
        <li>You can <a href="logout.php">log out</a> here!</li>
示例#8
0
 public function delete()
 {
     $sql = 'DELETE FROM ' . static::$table . ' WHERE id=:id';
     $data = [":id" => $this->id];
     $db = new DB();
     $db->execute($sql, $data);
 }