Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2010, 14:34
Nillus
 
Fecha de Ingreso: julio-2009
Mensajes: 28
Antigüedad: 14 años, 9 meses
Puntos: 0
Ayuda con Array

Hola,
le he estado dando vueltas a este array pero por mas que me lo plantee no consigo dar con la forma en la que funciona

Les agradeceria que me lo explicaran.

Necesito que me expliquen solo la función user

éste es el array:

Código PHP:
Ver original
  1. function user($key){
  2.         switch($key){
  3.             case "id":
  4.                 $value = $this->user[0]; break;
  5.             case "name":
  6.                 $value = $this->user[1]; break;
  7.             case "password":
  8.                 $value = $this->user[2]; break;
  9.             case "rank":
  10.                 $value = $this->user[3]; break;
  11.             case "birth":
  12.                 $value = $this->user[5]; break;
  13.             case "figure":
  14.                 $value = $this->user[6]; break;
  15.             case "sex":
  16.                 $value = $this->user[7]; break;
  17.             case "mission":
  18.                 $value = $this->user[8]; break;
  19.             case "credits":
  20.                 $value = $this->user[9]; break;
  21.             case "tickets":
  22.                 $value = $this->user[10]; break;
  23.             case "ticket_sso":
  24.                 $value = $this->user[11]; break;
  25.             default:
  26.                 $value = $GLOBALS['serverdb']->result($GLOBALS['serverdb']->query("SELECT ".$key." FROM ".PREFIX."users WHERE id = '".$this->user[0]."' LIMIT 1")); break;
  27.         }
  28.         return $value;
  29.     }

y ésta es la class completa:


Código PHP:
Ver original
  1. class HoloUser {
  2.     var $id = 0; var $name = "Guest"; var $password = null; var $logged_in = false; var $ip = null; var $time = null;
  3.     var $error = 0; var $banned; var $user = array('0','Guest','null','0',null,null,null,null,null,null,null,null,null);
  4.     function HoloUser($name,$password,$updateuser=false,$rememberme=null){
  5.         $data = new index_sql;
  6.         $date = HoloDate();
  7.         if(empty($name) || empty($password)){
  8.             $this->error = 1; return false;
  9.         }
  10.         if($GLOBALS['serverdb']->num_rows($data->select1($name, $password)) < 1){
  11.             $this->error = 2; return false;
  12.         }
  13.         $id = $GLOBALS['serverdb']->result($data->select1($name, $password));
  14.         if($this->IsUserBanned($id) == true){
  15.             $row = $GLOBALS['serverdb']->fetch_row($GLOBALS['core']->select2($id));
  16.             $this->banned['reason'] = $row[0];
  17.             $this->banned['expire'] = $row[1];
  18.             $this->error = 3; return false;
  19.         }
  20.         if($this->error == 0 && !is_array($this->banned)){
  21.             $this->ip = $_SERVER['REMOTE_ADDR'];
  22.             if($rememberme == "true"){
  23.                 $token = GenerateTicket("remember");
  24.                 $GLOBALS['serverdb']->query("UPDATE ".PREFIX."users SET remember_token = '".$token."' WHERE id = '".$id."' LIMIT 1");
  25.                 setcookie("rememberme", "true", time()+60*60*24*$GLOBALS['settings']->find("site_cookie_time"), "/");
  26.                 setcookie("rememberme_token", $token, time()+60*60*24*$GLOBALS['settings']->find("site_cookie_time"), "/");
  27.             }
  28.             if($updateuser == true){ $this->updateUser($id); }
  29.             $this->user = $GLOBALS['serverdb']->fetch_row($GLOBALS['core']->select3($id)); $this->id = $id; $this->name = $this->user("name"); $this->figure = $this->user("figure"); $this->password = $password; $this->logged_in = true;
  30.         }
  31.         $this->time = time();
  32.         return true;
  33.     }
  34.     function destroy(){
  35.         @session_start();
  36.         setcookie("rememberme", "", time()-60*60*24*100, "/"); setcookie("cookpass", "", time()-60*60*24*100, "/");
  37.         setcookie("rememberme_token", "", time()-60*60*24*100, "/"); setcookie("cookpass", "", time()-60*60*24*100, "/");
  38.         $_SESSION = array();
  39.         if(isset($_COOKIE[session_name()])) { setcookie(session_name(), "", time()-60*60*24*100, "/"); }
  40.         @session_destroy();
  41.         return true;
  42.     }
  43.     function refresh(){
  44.         $GLOBALS['user'] = new HoloUser($this->name,$this->password);
  45.         $_SESSION['user'] = $GLOBALS['user'];
  46.         return true;
  47.     }
  48.     function user($key){
  49.         switch($key){
  50.             case "id":
  51.                 $value = $this->user[0]; break;
  52.             case "name":
  53.                 $value = $this->user[1]; break;
  54.             case "password":
  55.                 $value = $this->user[2]; break;
  56.             case "rank":
  57.                 $value = $this->user[3]; break;
  58.             case "birth":
  59.                 $value = $this->user[5]; break;
  60.             case "figure":
  61.                 $value = $this->user[6]; break;
  62.             case "sex":
  63.                 $value = $this->user[7]; break;
  64.             case "mission":
  65.                 $value = $this->user[8]; break;
  66.             case "credits":
  67.                 $value = $this->user[9]; break;
  68.             case "tickets":
  69.                 $value = $this->user[10]; break;
  70.             case "ticket_sso":
  71.                 $value = $this->user[11]; break;
  72.             default:
  73.                 $value = $GLOBALS['serverdb']->result($GLOBALS['serverdb']->query("SELECT ".$key." FROM ".PREFIX."users WHERE id = '".$this->user[0]."' LIMIT 1")); break;
  74.         }
  75.         return $value;
  76.     }
  77. }

Muchas gracias