Bonjour, je suis présentement à mettre en place un système un système de double verification lorsqu'un utilisateur essais de se logger.
La première vérification se fait au niveau du username/password dans un table membres dans la base de donnée. La deuxième verification se fait au niveau d'un table ci_cession (table par default de la sauvegarde des session en base de donnée) dans l'onglet user_data.
Dans cet onglet, les données sauvegardé sont
// Tableau contenant les données qui seront envoyer a $this->session->set_userdata($data);
$data = array(
'alias' => $this->input->post('alias'),
'addr_ip' => $_SERVER'REMOTE_ADDR'],
'hote' => gethostbyaddr($_SERVER'REMOTE_ADDR']),
'logged' => true
);
Jusqu'à la, pas de problème, ensuite je formate l'onglet qui me retourne un tableau serialisé. J'arrive a décoder en utilisant ces deux fontions.
function _verification_double_login()
{
$q = $this->db->query('SELECT user_data FROM ci_sessions');
if($q->num_rows() > 0)
{
foreach($q->result() as $row)
{
$row = @unserialize(strip_slashes($row->user_data));
if (is_array($row))
{
array_walk_recursive($row, array(&$this, '_unescape_slashes'));
return $row;
}
return (is_string($row)) ? str_replace('{{slash}}', '\\', $row) : $row;
}
}
}
function _unescape_slashes(&$val, $key)
{
if (is_string($val))
{
$val = str_replace('{{slash}}', '\\', $val);
}
}
La où est mon problème, c'est que je n'arrive pas a valider si 'alias' dans le tableau $data est déja présent dans l'onglet user_data dans la base ci_sessions.
Avez-vous une solution ?
salut,
le mieux c'est d'utiliser les fonctions de la classe session de CodeIgniter
le guide utilisateur
Bonjour ato57,
Merci de m'avoir répondu, peut-être que vous n'avez pas tout à fait compris ce que j'essais de faire, en fait, je veux valide dans la table de la session nommé ci_session sous le champ user_data si le champ alias est déja présent. Le truc est que les information retourner par ce champ user_data de la table ci_cession sont retourné en boolean. donc j'unserialize le table. J'ai passée de long en large la doc de la session sur codeigniter. pour ce qui est du set_userdata il se charge après la verification que je veux faire. Car le table ou son alias apparait dans la table ci_session retournera false.
J'espère m'être mieux fait comprendre.
Merci! :-)
tu veux vérifier si 'alias' existe déjà dans le champ user_data de la table ci_session ou tu veux vérifier si 'alias' est le même que dans le champ user_data de ci_session ?