Je me met doucement aux classes et j'avoue que j'hésite encore pas mal
sur certaines façon de faire, pourriez-vous me donner votre avis.
J'essaye de comprendre comment agencer mes scripts et veiller à bien
séparer le code de la mise en forme.
J'essaye de mettre en place un simple formulaire d'identification.
La classe:
<?php
class Identification
{
private $user;
private $password;
private $db;
private $identification_result;
public function __construct($user, $password, $db)
{
$this->user = $user;
$this->password = $password;
$this->db = $db;
$this->identification_result = false;
$query_txt = " SELECT
cms_user.*,
cms_user_group.*
FROM
cms_user,
cms_user_group
WHERE
cms_user.login = '".mysql_real_escape_string($user)."'
AND
cms_user.my_password = '".mysql_real_escape_string($password)."'
AND
cms_user.fk_user_group = cms_user_group.idx";
//echo $query_txt;
$query = mysql_query($query_txt, $this->db->link);
if(mysql_num_rows($query) > 0)
{
$result = mysql_fetch_array($query);
$_SESSION['logged'] = 1;
$_SESSION['user_idx'] = $result['idx'];
$_SESSION['user_prenom'] = stripslashes($result['prenom']);
$_SESSION['user_nom'] = stripslashes($result['nom']);
$_SESSION['user_group_idx'] = stripslashes($result['fk_user_group']);
$_SESSION['user_group_name'] = stripslashes($result['group_name']);
$_SESSION['user_privileges'] = array('priv_site'=>$result['priv_site'], 'priv_user'=>$result['priv_user'], 'priv_structure'=>$result['priv_structure'], 'priv_files'=>$result['priv_files'], 'priv_appli'=>$result['priv_appli'], 'priv_stat'=>$result['priv_stat'], 'priv_aide'=>$result['priv_aide']);
$this->identification_result = true;
}
else
{
session_destroy();
}
}
public function check_identification()
{
return $this->identification_result;
}
}
?>
...et la page de traitement<?php
include('../includes/constants.php');
include('../includes/Db.class.php');
include('../includes/Session.class.php');
include('../classes/classes.php');
/*$current_session = new Session($db);
session_start();*/
if(!isset($_POST['action']))
{
header('location: ../../login.php?login=error');
die();
}
switch($_POST['action'])
{
case 'identification':
if(!isset($_POST['login_login']) || !isset($_POST['login_password']))
{
header('location: ../../login.php?login=error');
die();
}
$current_identification = new Identification($_POST['login_login'], $_POST['login_password'], $db);
if($current_identification->check_identification() == true)
{
header('location: ../../admin.php');
die();
}
else
{
header('location: ../../login.php?login=error');
die();
}
break;
}
?>
Il y a en plus un formulaire qui envoie en POST l'id et le mot de passe.Ceci vous parait-il correct en terme de POO.
Merci d'avance pour vos réponse.
++
santino