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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.