Bonjour tous le monde,
J'ai un petit soucis avec le code que grafikart a donné sur le tutoriel MVC :
https://www.grafikart.fr/formations/programmation-objet-php/mvc-model-view-controller
J'ai télécharger la source, j'ai la meme BDD mais pourtant il me met des erreurs comme quoi il ne trouve pas la function 'forbidden' et quand je vais sur le p=login , il me met 3 erreur. Le code MVC de grafikart est beugé ou pas ?
Merci de votre aide
Bonjour,
Tu peux afficher un peut de code, la partie ou tu appelle les controller suivant l'uri ?
<?php
use Core\Auth\DBAuth;
define('ROOT', dirname(__DIR__));
require ROOT . '/app/App.php';
App::load();
if(isset($_GET['p'])){
$page = $_GET['p'];
}else{
$page = 'home';
}
// Auth
$app = App::getInstance();
$auth = new DBAuth($app->getDb());
if(!$auth->logged()){
$app->forbidden();
}
ob_start();
if($page === 'home'){
require ROOT . '/pages/admin/posts/index.php';
} elseif ($page === 'posts.edit'){
require ROOT . '/pages/admin/posts/edit.php';
} elseif ($page === 'posts.add'){
require ROOT . '/pages/admin/posts/add.php';
}elseif ($page === 'posts.delete'){
require ROOT . '/pages/admin/posts/delete.php';
}elseif($page === 'categories.index'){
require ROOT . '/pages/admin/categories/index.php';
} elseif ($page === 'categories.edit'){
require ROOT . '/pages/admin/categories/edit.php';
} elseif ($page === 'categories.add'){
require ROOT . '/pages/admin/categories/add.php';
}elseif ($page === 'categories.delete'){
require ROOT . '/pages/admin/categories/delete.php';
}
$content = ob_get_clean();
require ROOT . '/pages/templates/default.php';
https://uptobox.com/lgr4jnwmbfu9
Je te met mon dossier je le supprimerais une fois le sujet clos
Pour la page login :
Fatal error: require(): Failed opening required 'C:\wamp64\www\POO\app/Controller/LoginController.php' (include_path='.;C:\php\pear') in C:\wamp64\www\POO\app\Autoloader.php on line 24
Pour admin :
ça fait beacuoup d'erreurs en effet ^^, Peux-tu nous montrer ta page login stp, la partie du code en erreur.
Login.php
<?php if($errors): ?>
<div class="alert alert-danger">
Identifiants incorrects
</div>
<?php endif; ?>
<form method="post">
<?= $form->input('username', 'Pseudo'); ?>
<?= $form->input('password', 'Mot de passe', ['type' => 'password']); ?>
<button class="btn btn-primary">Envoyer</button>
</form>
index.php
<?php
define('ROOT', dirname(__DIR__));
require ROOT . '/app/App.php';
App::load();
if(isset($_GET['p'])){
$page = $_GET['p'];
}else{
$page = 'posts.index';
}
$page = explode('.', $page);
if($page[0] == 'admin'){
$controller = '\App\Controller\Admin\\' . ucfirst($page[1]) . 'Controller';
$action = $page[2];
} else{
$controller = '\App\Controller\\' . ucfirst($page[0]) . 'Controller';
$action = $page[1];
}
$controller = new $controller();
$controller->$action();
J'ai plus que c'est 2 erreurs sur la page login :
C'est bizarre car je n'ai pas du tous changer le code de grafikart ...
Salut,
Ton erreur d'offset est logique puisque quand tu souhaites te rendre sur la page login tu as "p=login"
Donc $page[0] = "login" mais $page[1] est inexistant. Tu n'as pas d'action.
Dans ce cas si $page[1] n'existe pas alors $action devra être égale à "index" par exemple