<?php
require_once 'Pdo.Class.php';
/**
* Users.Class.php
*/
class Users extends PDOManager {
public $pdo;
function __construct($pdo) {
parent::_construct();
if (!isset($_SESSION'user']'id']) && !empty($_SESSION'user']'id'])) {
$id = $_SESSION'user']'id'];
$query = $this->pdo->prepare("SELECT * FROM users WHERE id = :id");
$query->bindValue(':id', $id);
$query->execute();
$result = $query->fetch();
if ($result) {
$this->session($result'id']);
} else {
// $this->redirect("login.php");
}
} else {
// $this->redirect("login.php");
}
}
public function session($id = null) {
if ($id == null) {
echo "ERREUR";
} else {
$query = $this->pdo->prepare("SELECT id,nom,prenom FROM users WHERE id = :id");
$query->bindValue(':id', $id);
$query->execute();
$_SESSION'user'] = $query->fetch();
}
}
public function redirect($page = "http://www.monsite.org/") {
header("Location: $page");
exit();
}
public function login($email,$password,$hash = "default") {
if (empty($email)) {
$error'email'] = "empty";
}
if (empty($password)) {
$error'password'] = "empty";
}
$password = $this->hash($password, $hash);
if (!isset($error)) {
$query = $this->pdo->prepare("SELECT id,email,password FROM users WHERE email = :email");
$query->bindValue(':email', $email);
$query->execute();
$result = $query->fetch();
if (!empty($result)) {
if ($result'password'] == $password) {
$this->session($result'id']);
die("Ok");
// $this->redirect('index.php');
} else {
$error'password'] = "false";
}
} else {
$error'email'] = "false";
}
}
return $error;
}
public function create($email,$password,$nom,$prenom,$hash = "default") {
if (empty($email)) {
$error'email'] = "empty";
}
if (empty($password)) {
$error'password'] = "empty";
}
if (empty($nom)) {
$error'nom'] = "empty";
}
if (empty($prenom)) {
$error'prenom'] = "empty";
}
$id = $this->getID();
$password = $this->hash($password, $hash);
if (!isset($error)) {
$query2 = $this->pdo->prepare("INSERT INTO 'users' ('id', 'email', 'password', 'nom', 'prenom') VALUES (':id', ':email', ':password', ':nom', ':prenom')");
$query2->bindValue(':id', $id);
$query2->bindValue(':email', $email);
$query2->bindValue(':password', $password);
$query2->bindValue(':nom', $nom);
$query2->bindValue(':prenom', $prenom);
$query2->execute();
$error'ok'] = "ok";
}
return $error;
}
public function getID() {
$id = substr(hash("md5", uniqid(rand(),true)), 0,7);
$query = $this->pdo->prepare("SELECT * FROM users WHERE (id = :id)");
$query->bindValue(':id', $id);
$query->execute();
$result = $query->fetch();
if (empty($result)) {
return $id;
} else {
unset($id);
$getID();
}
}
}