Last active
August 29, 2015 14:10
-
-
Save NicolasBadey/6295ab2f7cf6d2fa3f71 to your computer and use it in GitHub Desktop.
Supinternet A1 correction TD3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Write File accepte un nom de fichier en paramétre et un tableau, | |
* Ici j'oblige à ce que la variable $value soit un tableau | |
*/ | |
function writeFile($file, array $value) | |
{ | |
// Vérifie si le fichier existe déjà | |
if (file_exists($file)) { | |
// Si oui on récupère son contenu | |
$data = json_decode(file_get_contents($file), true); | |
} else { | |
$data = []; | |
} | |
/** | |
* Rajoute les infos au début du tableau | |
* Si on avait voulu à la fin : $data[] = $value | |
*/ | |
array_unshift($data, $value); | |
// Insère les nouvelles données dans le fichier | |
$status = file_put_contents($file,json_encode($data)); | |
// on informe si l'opération c'est bien passé en retournant ce que retourne file_put_content | |
return $status; | |
} | |
/** | |
* ajoute un message en session | |
*/ | |
function addMessageFlash($type, $message) | |
{ | |
$types= ['success','error','alert','info']; | |
if (!in_array($type, $types)){ | |
return false; | |
} | |
// on vérifie que le type existe | |
if (!isset($_SESSION['flashBag'][$type])) { | |
//si non on le créé avec un Array vide | |
$_SESSION['flashBag'][$type] = []; | |
} | |
// on ajoute le message | |
$_SESSION['flashBag'][$type][] = $message; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// démarre la session | |
session_start(); | |
// charge le fichier des fonctions PHP | |
require_once('function.php'); | |
// Liste blanche, c'est notre routing qui correspont à nos pages | |
$routing = [ | |
'home' => [ | |
'controller' => 'home', | |
'secure'=> false | |
], | |
'inscription' => [ | |
'controller' => 'subscription', | |
'secure' => false | |
], | |
'login' => [ | |
'controller' => 'login', | |
'secure' => false | |
], | |
'404' => [ | |
'controller' => '404', | |
'secure' => false | |
], | |
]; | |
// verifions la pertinance de la page en GET | |
if (isset($_GET['page'])) { | |
$page = $_GET['page']; | |
if (!isset($routing[$page])) { | |
// la page n'existe pas | |
$page = '404'; | |
} | |
} else { | |
//page par defaut | |
$page = 'home'; | |
} | |
//check pour la sécurité | |
if ($routing[$page]['secure'] === true && !isset($_SESSION['name'])) { | |
//Met en session un message informatif | |
addMessageFlash('info', 'Veuillez-vous connecter afin d\'accéder à cette page'); | |
//redirection | |
header("location: index.php?page=login"); | |
exit; | |
} | |
?> | |
... | |
<?php | |
// Charge la page demandée | |
$fileController = $routing[$page]['controller'] . '.php'; | |
if (file_exists($fileController)) { | |
require($fileController); | |
} else { | |
echo 'File is missing'; | |
} | |
?> | |
... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment