diff --git a/fluxRSS/.htaccess b/fluxRSS/.htaccess new file mode 100755 index 0000000..7ded04e --- /dev/null +++ b/fluxRSS/.htaccess @@ -0,0 +1,3 @@ +RewriteEngine on +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule . index.php [L] \ No newline at end of file diff --git a/fluxRSS/controleur/AdminControleur.php b/fluxRSS/controleur/AdminControleur.php new file mode 100755 index 0000000..6d97769 --- /dev/null +++ b/fluxRSS/controleur/AdminControleur.php @@ -0,0 +1,8 @@ +Reinit(); + break; + + case 'validationFormulaire': + $this->ValidationFormulaire($dVueEreur); + break; + + //mauvaise action + default: + $tabArticle[] = ArticleModel::getArticles(); + $dVueEreur[] = "Erreur d'appel php"; + $dataview = ['Article'=> $tabArticle]; + echo $twig->render('listArticle.html', ['tabArticle' => $dataview, 'dVueErreur'=>$dVueEreur]); + break; + } + } catch (\PDOException $e) { + //si erreur BD, pas le cas ici + $dVueEreur[] = 'Erreur PDO : ' . $e->getMessage(); + echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]); + } catch (\Exception $e2) { + $dVueEreur[] = 'Erreur : ' . $e2->getMessage(); + echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]); + } + + //fin + exit(0); + }//fin constructeur + + public function Reinit() + { + global $twig; // nécessaire pour utiliser variables globales + $dVue = [ + 'nom' => '', + 'age' => 0, + 'data' => ArticleModel::getArticles() + ]; + echo $twig->render('listArticle.html', [ + 'dVue' => $dVue + ]); + } + + public function ValidationFormulaire(array $dVueEreur) + { + global $twig; // nécessaire pour utiliser variables globales + + //si exception, ca remonte !!! + $nom = $_POST['txtNom']; // txtNom = nom du champ texte dans le formulaire + $age = $_POST['txtAge']; + \config\Validation::val_form($nom, $age, $dVueEreur); + + /* + $model = new \metier\Simplemodel(); + $data = $model->get_data(); + */ + + $dVue = [ + 'nom' => $nom, + 'age' => $age, + //'data' => $data, + ]; + + echo $twig->render('Connection.html', ['dVue' => $dVue, 'dVueEreur' => $dVueEreur]); + } +}//fin class diff --git a/fluxRSS/index.php b/fluxRSS/index.php index f109bd4..e187b78 100755 --- a/fluxRSS/index.php +++ b/fluxRSS/index.php @@ -5,7 +5,7 @@ require_once __DIR__ . '/src/config/config.php'; require __DIR__ . '/vendor/autoload.php'; -use controleur\Controleur; +use controleur\FrontControleur; //twig $loader = new \Twig\Loader\FilesystemLoader('templates'); @@ -13,6 +13,6 @@ $twig = new \Twig\Environment($loader, [ 'cache' => false, ]); -$cont = new Controleur(); +$cont = new FrontControleur(); diff --git a/fluxRSS/src/config/config.php b/fluxRSS/src/config/config.php index 96fc364..eada4ba 100755 --- a/fluxRSS/src/config/config.php +++ b/fluxRSS/src/config/config.php @@ -12,3 +12,4 @@ $rep = __DIR__ . '/fluxRSS/'; $base = 'dbrorossetto'; $login = 'rorossetto'; $mdp = 'tpphp'; +$path = '~mapoint2/Tp/routeur/Srouteur'; diff --git a/fluxRSS/src/controleur/Controleur.php b/fluxRSS/src/controleur/Controleur.php index e94eb78..7a488fe 100755 --- a/fluxRSS/src/controleur/Controleur.php +++ b/fluxRSS/src/controleur/Controleur.php @@ -3,7 +3,7 @@ namespace controleur; use model\ArticleModel; -class Controleur +class UserControleur { public function __construct() { diff --git a/fluxRSS/src/controleur/FrontControleur.php b/fluxRSS/src/controleur/FrontControleur.php index 791bfc3..1419941 100755 --- a/fluxRSS/src/controleur/FrontControleur.php +++ b/fluxRSS/src/controleur/FrontControleur.php @@ -2,14 +2,57 @@ namespace controleur; +use model\AdminModel; use vendor\AltoRouter; +use controleur\UserControleur; +use controleur\AdminControleur; +require 'AltoRouter.php'; class FrontControleur { public function __construct(){ +<<<<<<< HEAD:fluxRSS/src/controleur/FrontControleur.php $routeur = new AltoRouter(); +======= + + global $twig; + + $router = new AltoRouter(); + $router->setBasePath('~/mapoint2/Tp/routeur/Srouteur'); + $router->map('GET', '/', 'UserControler.php'); + $router->map('GET|POST','/user/[a:action]?','UserControler.php'); + $router->map('GET|POST','/admin/[a:action]?','AdminControler.php'); + + $match = $router->match(); + + if (!$match) { + $dVueEreur[] = "Page doesn't exist"; + echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]); + } + else { + $controller=$match['target'] ?? null; + $action=$match['params']['action'] ?? null; + try { + $controller = '\\controleur\\' . $controller; + $controller = new $controller; + if($controller == "\\Controler\\AdminControler.php"){ + if (!AdminModel::isAdmin()){ + echo $twig->render('Connection.html'); + } + } + if (is_callable(array($controller, $action))) { + call_user_func_array(array($controller, $action), + array($match['params'])); + } + } + catch (Error $error){ + $dVueEreur[] = "Controller doesn't exist"; + echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]); + } + } +>>>>>>> pre-master:fluxRSS/controleur/FrontControleur.php } diff --git a/fluxRSS/src/model/AdminModel.php b/fluxRSS/src/model/AdminModel.php index df3ece6..9d51182 100755 --- a/fluxRSS/src/model/AdminModel.php +++ b/fluxRSS/src/model/AdminModel.php @@ -22,4 +22,9 @@ class AdminModel } return null; } + + public static function isAdmin(): bool + { + return $_SESSION['role'] == 'admin'; + } } \ No newline at end of file