Class user pour forum vbulletin [php5]

Contenu du snippet

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...

A voir également