- <?php
-
- mysql_connect('****', '****', '****');
-
- define('TABLE_PREFIX', '');
- define('DEFAULT_LANGUE', 0);
-
- /**
- * @brief une class de connexion a Vbulletin
- */
- class User{
- /**
- * @param $session l'id de session (generalement : $_COOKIE['bbsessionhash'])
- */
- public function __construct($session){
- $this->session=$session;
-
- $r=mysql_query('SELECT * FROM forum.'.TABLE_PREFIX . 'session
- WHERE sessionhash = "' .mysql_real_escape_string($session).'"') or die(mysql_error());
- $info=mysql_fetch_assoc($r);
-
- if ($info==false){
- $this->id=0;
- $this->logued=0;
- $this->ip=ip2long($_SERVER['REMOTE_ADDR']);
- $this->langue=DEFAULT_LANGUE;
- }else{
- $this->id=$info['userid'];
- $this->logued=$info['loggedin'];
- $this->ip=ip2long($info['host']);
- $this->langue=$info['languageid'];
-
- $info=mysql_query('SELECT 1 FROM forum.'.TABLE_PREFIX . 'administrator WHERE userid='.$this->id) or die(mysql_error()) ;
- if (mysql_num_rows($info)==0){
- $this->admin=false;
- }else{
- $this->admin=true;
- }
- }
- }
- /**
- * @brief dit si on est logue ou non
- * @return boolean
- */
- public function islogued(){return $this->logued!=0;}
- /**
- * @brief dit si on est admin ou non
- * @return boolean
- */
- public function isadmin(){return $this->admin;}
- /**
- * @brief renvoie l'id
- * @return integer
- */
- public function getid(){return $this->id;}
- /**
- * @brief renvoie l'ip
- * a utiliser avec long2ip si on veut un format texte
- * @return integer
- */
- public function getIp(){ return $this->ip; }
- /**
- * @brief renvoie la langue
- * @return integer
- */
- public function getLangue(){ return $this->langue; }
- //! la session
- private $session;
- //! l'id du user dans la table user
- private $id;
- //! dit si le user est logue
- private $logued;
- //! la langue du user
- private $langue;
- //! son ip au format numerique
- private $ip;
- }
-
- $u=new User($_COOKIE['bbsessionhash']);
-
- echo 'ip : '.$u->getip().'<br/>';
- echo 'langue : '.$u->getlangue().'<br/>';
-
- if ($u->islogued()){
- echo 'id : '.$u->getId().'<br/>';
- if ($u->isAdmin()){
- echo 'Admin';
- }
- }else{
- echo 'non logue';
- }
- ?>
<?php
mysql_connect('****', '****', '****');
define('TABLE_PREFIX', '');
define('DEFAULT_LANGUE', 0);
/**
* @brief une class de connexion a Vbulletin
*/
class User{
/**
* @param $session l'id de session (generalement : $_COOKIE['bbsessionhash'])
*/
public function __construct($session){
$this->session=$session;
$r=mysql_query('SELECT * FROM forum.'.TABLE_PREFIX . 'session
WHERE sessionhash = "' .mysql_real_escape_string($session).'"') or die(mysql_error());
$info=mysql_fetch_assoc($r);
if ($info==false){
$this->id=0;
$this->logued=0;
$this->ip=ip2long($_SERVER['REMOTE_ADDR']);
$this->langue=DEFAULT_LANGUE;
}else{
$this->id=$info['userid'];
$this->logued=$info['loggedin'];
$this->ip=ip2long($info['host']);
$this->langue=$info['languageid'];
$info=mysql_query('SELECT 1 FROM forum.'.TABLE_PREFIX . 'administrator WHERE userid='.$this->id) or die(mysql_error()) ;
if (mysql_num_rows($info)==0){
$this->admin=false;
}else{
$this->admin=true;
}
}
}
/**
* @brief dit si on est logue ou non
* @return boolean
*/
public function islogued(){return $this->logued!=0;}
/**
* @brief dit si on est admin ou non
* @return boolean
*/
public function isadmin(){return $this->admin;}
/**
* @brief renvoie l'id
* @return integer
*/
public function getid(){return $this->id;}
/**
* @brief renvoie l'ip
* a utiliser avec long2ip si on veut un format texte
* @return integer
*/
public function getIp(){ return $this->ip; }
/**
* @brief renvoie la langue
* @return integer
*/
public function getLangue(){ return $this->langue; }
//! la session
private $session;
//! l'id du user dans la table user
private $id;
//! dit si le user est logue
private $logued;
//! la langue du user
private $langue;
//! son ip au format numerique
private $ip;
}
$u=new User($_COOKIE['bbsessionhash']);
echo 'ip : '.$u->getip().'<br/>';
echo 'langue : '.$u->getlangue().'<br/>';
if ($u->islogued()){
echo 'id : '.$u->getId().'<br/>';
if ($u->isAdmin()){
echo 'Admin';
}
}else{
echo 'non logue';
}
?>