Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
- class Member {
- private $CI;
- private $user=array();
- /**
- * Constructeur
- * Crée la classe et stocke l'instance de code Igniter pour les appels ultérieurs
- *
- * @todo Ajouter une verrification des lib session et database?
- * @access public
- * @return nothing
- */
- public function __construct()
- {
- $this->CI =& get_instance();
- }
- /**
- * Connect
- * Tente de connecter un utilisateur avec les données fournies
- *
- * @access public
- * @param login
- * @param password
- * @return true/false
- */
- public function connect($login, $password)
- {
- $sql='SELECT id, pseudo, IF(password=\''.$this->_encode_password($password).'\',1,0) AS correctpass FROM '.$this->CI->db->protect_identifiers('members', TRUE).' WHERE pseudo='.$this->CI->db->escape($login).' LIMIT 1;';
- $query = $this->CI->db->query($sql);
- if ($query->num_rows() == 1)
- {
- $row=$query->row_array();
- if($row['correctpass']==1){
- $this->user=$row;
- $this->CI->session->set_userdata('user_id', $this->user['id']);
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- }
- /**
- * Disonnect
- * Tente de déconnecter l'utilisateur courrant
- *
- * @access public
- * @return true/false
- */
- public function disconnect()
- {
- return $this->CI->session->unset_userdata('user_id');
- }
- /**
- * is_connected
- * Teste si l'user courrant est connecté ou non
- *
- * @access public
- * @return true/false
- */
- public function is_connected()
- {
- if($this->CI->session->userdata('user_id')===false)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- /**
- * register
- * Enregistre l'utilisateur en verrifiant les données
- *
- * @param username
- * @param password
- * @param email
- * @access public
- * @return true/false
- */
- public function register($username, $password, $email)
- {
- $insertdata = array(
- 'pseudo' => $username ,
- 'password' => $this->_encode_password($password) ,
- 'email' => $email,
- 'registerdate' => time()
- );
- return $this->CI->db->insert('members', $insertdata);
- }
- /**
- * changePassword
- * Change le mot de passe de l'utilisateur en controlant l'ancien
- *
- * @param id
- * @param oldpassword
- * @param newpassword
- * @access public
- * @return true/false
- */
- public function changePassword($id, $oldpassword, $newpassword)
- {
- if($this->_is_password_correct($id, $oldpassword)){
- $updatedata = array(
- 'password' => $this->_encode_password($newpassword)
- );
- return $this->CI->db->update('members', $updatedata, 'id='.$id);
- }
- return false;
- }
- /**
- * _is_username_used
- * Verrifie si un username est valide
- *
- * @param username
- * @access public
- * @return true/false
- */
- public function _is_username_used($username)
- {
- $sql='SELECT id FROM '.$this->CI->db->protect_identifiers('members', TRUE).' WHERE pseudo='.$this->CI->db->escape($username).' LIMIT 1;';
- $query = $this->CI->db->query($sql);
- if ($query->num_rows() == 0 )
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- /**
- * _is_email_used
- * Verrifie si un email est utilisé ou non
- *
- * @param email
- * @access public
- * @return true/false
- */
- public function _is_email_used($email)
- {
- $sql='SELECT id FROM '.$this->CI->db->protect_identifiers('members', TRUE).' WHERE email='.$this->CI->db->escape($email).' LIMIT 1;';
- $query = $this->CI->db->query($sql);
- if ($query->num_rows() == 0 )
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- /**
- * _is_password_correct
- * Verrifie si le mot de passe est correct pour cet user
- *
- * @param id
- * @param password
- * @access public
- * @return true/false
- */
- public function _is_password_correct($id, $password)
- {
- $sql='SELECT IF(password=\''.$this->_encode_password($password).'\',1,0) AS correctpass FROM '.$this->CI->db->protect_identifiers('members', TRUE).' WHERE id='.$id.' LIMIT 1;';
- $query = $this->CI->db->query($sql);
- if ($query->num_rows() == 1)
- {
- $row=$query->row_array();
- if($row['correctpass']==1){
- return true;
- }
- }
- return false;
- }
- /**
- * _encode_password
- * Encode le password en utilisant un salt
- *
- * @access public
- * @param password
- * @return encrypted password
- */
- private function _encode_password($password)
- {
- return md5($password.$this->CI->config->item('encryption_key'));
- }
- }
- /* End of file Member.php */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement