Code: Select all
$_SERVER["DOCUMENT_ROOT"]
Code: Select all
session_start();
$xml_config = simplexml_load_file('config.xml');
include_once($_SERVER["DOCUMENT_ROOT"].$xml_config->roster_root_directory.'/technical_class/authentification/User.php');
[...]
Et le HTML recopié dans chaque page c'est pire que tout. À encapsuler également, et de manière urgente. Si un changement dans la gestion des sessions est relativement probable, une modif de la charte graphique par contre l'est... et aller modif chaque fichier un à un pour faire la même chose, autant se tirer une balle.
Code: Select all
if (!User::is_user_authorize(User::ADMIN_GROUP_ID)){
header('Location: unauthorized_access.php');
}
La fonction header() ne termine pas l'exécution du script, ce dernier va continuer bien que l'utilisateur n'ai pas les accès requis. Ainsi, n'importe quel utilisateur dispose des accès d'administrateur. Dans certains fichiers des doubles-vérifications empêchent d'effectuer les actions d'adminsitrations, mais on ne devrais pas avoir à vérifier deux fois la même chose.
Code: Select all
return $salt.sha1($salt.$pass.$site_salt);
Code: Select all
function to64($nb)
{
$chrs = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$buff = '';
for ($i = 0; $i < 4; $i++)
{
$buff .= $chrs[$nb & 0x3f];
$nb >>= 6;
}
return $buff;
}
function randStr($len)
{
$buff = '';
while (strlen($buff) < $len)
$buff .= to64(mt_rand());
return substr($buff, 0, $len);
}
function salt_md5()
{
return '$1$' . randStr(8) . '$';
}
function salt_sha256()
{
return '$5$' . randStr(16) . '$';
}
function salt_sha512()
{
return '$6$' . randStr(16) . '$';
}
Code: Select all
protected function execute_sql_command($sql_cmd, $is_insert){
try {
$db = $this->create_db_connexion();
Le pire c'est qu'avec PDO la connexion se ferme dès que l'objet est détruit... donc vu la manière dont tu utilises tout ça tu vas vraiment créer et fermer une connexion pour (presque) chaque requête SQL ! Pour limiter les dégâts essaye au moins d'autoriser l'utilisation des connexions persistantes, mais ça ne réglera pas le problème du chargement de fichier xml à chaque requête.