Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Ayuda con Array

Estas en el tema de Ayuda con Array en el foro de Frameworks y PHP orientado a objetos en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/05/2010, 14:34
 
Fecha de Ingreso: julio-2009
Mensajes: 28
Antigüedad: 14 años, 8 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
  #2 (permalink)  
Antiguo 27/05/2010, 15:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ayuda con Array

Pues al parecer lo que hace es devuelve un dato del array guardado en $this->user dependiendo de la propiedad que le pides.

Saludos.
  #3 (permalink)  
Antiguo 28/05/2010, 06:31
 
Fecha de Ingreso: julio-2009
Mensajes: 28
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con Array

Efectivamente así es, muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:11.