Et ne néglige pas l'algo ;-) Mon lien te mènera vers le meilleur tuto que je connaisse actuellement...
Y'a pas de (re)factorisation, en fait ^^' Car, avant de coder on écrit sur du papier ou on dessine ce que l'on souhaite faire et on le code directement factorisé...
Moins il y a de code mieux c'est! Et pas besoin de faire des milliers de fichiers... Un fichier par module suffit! En gros, un fichier joue un rôle...
Y'a des langages/framework où un rôle correspond à un ensemble de fichiers réunis dans un "package" mais en php, un fichier par rôle, à moins d'avoir des fichiers de 30 kilomètres! Mais dans ces cas là c'est probablement que les rôles ont mal été définis...
Tu veux un exemple?
<?php
session_start();
include 'db/database.php';
//pourquoi instancier des variables si leur source n'est pas conforme?
if(empty($_POST['email']) or empty($_POST['pass'])) echo "<div class='error'>Tous les champs sont obligatoires</div>";
else {
$email = htmlspecialchars($_POST['email']);
$pass = sha1($_POST['pass']);
$req = $db->prepare("select * from connexion where email=? and pass=?");
$req->execute(array($email, $pass));
if ($req->rowCount()) setSession($req->fetch());
else echo "<div class='error'>E-mail ou mot de passe incorrecte</div>";
}
function setSession($memberInfo) {
//On met true ou false dans isAdmin
$_SESSION['isAdmin'] = $memberInfo->statut === "admin";
$_SESSION['memberId'] = $memberInfo->id;
$_SESSION['memberName'] = $memberInfo->identifiant;
$_SESSION['memberMail'] = $memberInfo->email;
}
Tu m'en voudras pas, j'ai changer les noms de tes variables de session ;-p On utilise l'anglais, en général, par convention...