Une class User qui vous permet de lire les infos de Vbulletin comme :
-ip
-savoir si on est connecte
-l'id du user
-sa langue
-savoir si il est admin
Source / Exemple :
<?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';
}
?>
Conclusion :
n'oubliez pas :
-modifiez vos parametres de connexion
-c'est une class php5, alors : le premier qui me dit que ca parse error parce-qu'il utilise php4 signera ici son certificat d'innaptitude a la lecture...