You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
2.8 KiB

<?php
class VisitorController {
function __construct()
{
global $rep,$vues;
$mdlUsr = new MdlUser();
$user = new User();
session_start();
$dVueEreur = array ();
try {
$action = $_REQUEST['action'];
echo ($action);
switch($action) {
case NULL:
echo ("WESH");
$this->Reinit();
break;
case "connexion":
$this->Connexion($login, $mdp);
break;
case "inscription":
$this->Inscription($login, $mdp);
break;
default:
$dVueEreur[] = "Erreur d'appel php";
require ($rep.$vues['accueil']);
break;
}
}
catch (Exception $e){
}
}
public function Reinit(){
global $rep,$vues,$dataView,$styles;
$model = new MdlListe();
$dataView = $model->getPublicList();
require($rep.$vues['accueil']);
$vues_erreur= array();
}
public function Inscription(array $vues_erreur){
global $rep,$vues,$dataView;
$username=$_POST['username'];
$password=$_POST['password'];
$confirm=$_POST['passwordconf'];
$model = new MdlUser();
$vues_erreur=Validation::val_inscription($username,$password,$confirm,$vues_erreur);
if($model->existUser($username)){
$vues_erreur[]="Username already taken";
}
if(empty($vues_erreur)){
$hash= password_hash($password,PASSWORD_DEFAULT);
$model->singUp($username,$hash);
$vues_erreur= array();
}
else{
require($rep.$vues['singUp']);
}
$_REQUEST['action']=null;
$this->reinit();
}
public function Connexion(array $vues_erreur){
global $rep,$vues,$dataView;
$username=$_POST['login'];
$password=$_POST['mdp'];
$vues_erreur=Validation::val_connexion($username,$password,$vues_erreur);
if(!empty($vues_erreur)){
require($rep.$vues['signIn']);
}
$model= new MdlUser();
if($model->existUser($username)){
if(password_verify($password,$model->getPasswordHash($username))){
$model->connexion($username);
$_REQUEST['action']=null;
$this->reinit();
$vues_erreur= array();
}
else{
$vues_erreur =array('username'=>$username,'password'=>$password);
require($rep.$vues['signIn']);
}
}
else{
$vues_erreur =array('username'=>$usrname,'password'=>$pwd);
require($rep.$vues['signIn']);
}
}
}
?>