Posted By

Navegante on 06/30/06


Tagged

php register variables globals


Versions (?)

Who likes this?

2 people have marked this snippet as a favorite

nicolaspar
koyotebr


Registrar variables globales


 / Published in: PHP
 

Esta funcion toma valores del espacio global $HTTP*VARS desde un array en la llamada a la funcion, y si existen y tienen contenido, las registra como globales para que puedan ser accedidas a continuación. Debe recibir una lista de elementos en la llamada a la funcion. El primero de estos valores deberá ser el método desde el que obtener los valores para las variables (GET, POST, COOKIE, SESSION, FILES, ENV, o SERVER). El resto de elementos de la lista son los nombres de las variables que deberíamos de haber recibido.

  1. /**
  2. * Registrar variables globales
  3. *
  4. * Esta funcion toma valores del espacio global $HTTP_*_VARS desde un array
  5. * en la llamada a la funcion, y si existen y tienen contenido, las registra
  6. * como globales para que puedan ser accedidas a continuación.
  7. * Debe recibir una lista de elementos en la llamada a la funcion.
  8. * El primero de estos valores deberá ser el método desde el que obtener
  9. * los valores para las variables (GET, POST, COOKIE, SESSION, FILES, ENV, o SERVER).
  10. * El resto de elementos de la lista son los nombres de las variables que
  11. * deberíamos de haber recibido.
  12. *
  13. * P.ej.:
  14. * $nombre_clase->registraParametro(GET,nombre,password)
  15. * haria lo siguiente:
  16. * $nombre = $_GET['nombre'];
  17. * $password = $_GET['password'];
  18. * global $nombre,password;
  19. *
  20. */
  21. function registraParametro()
  22. {
  23. $num_args = func_num_args();
  24. $vars = array();
  25. if ($num_args >= 2)
  26. {
  27. $method = strtoupper(func_get_arg(0));
  28. if (($method != 'SESSION') && ($method != 'GET') && ($method != 'POST') && ($method != 'SERVER') && ($method != 'COOKIE') && ($method != 'ENV') && ($method != 'FILE'))
  29. {
  30. die('The first argument of variable_register must be one of the following: GET, POST, SESSION, SERVER, COOKIE, ENV or FILE');
  31. }
  32. switch ($method)
  33. {
  34. case 'FILE':
  35. for ($i = 1; $i < $num_args; $i++)
  36. {
  37. $parameter = func_get_arg($i);
  38. if (isset($_FILES[$parameter]))
  39. {
  40. global ${$parameter};
  41. ${$parameter} = $_FILES[$parameter];
  42. }
  43. }
  44. break;
  45. case 'POST':
  46. for ($i = 1; $i < $num_args; $i++)
  47. {
  48. $parameter = func_get_arg($i);
  49. if (isset($_POST[$parameter]))
  50. {
  51. global ${$parameter};
  52. ${$parameter} = $_POST[$parameter];
  53. }
  54. }
  55. break;
  56. case 'GET':
  57. for ($i = 1; $i < $num_args; $i++)
  58. {
  59. $parameter = func_get_arg($i);
  60. if (isset($_GET[$parameter]))
  61. {
  62. global ${$parameter};
  63. ${$parameter} = $_GET[$parameter];
  64. }
  65. }
  66. break;
  67. case 'SESSION':
  68. for ($i = 1; $i < $num_args; $i++)
  69. {
  70. $parameter = func_get_arg($i);
  71. if (isset($_SESSION[$parameter]))
  72. {
  73. global ${$parameter};
  74. ${$parameter} = $_SESSION[$parameter];
  75. }
  76. }
  77. break;
  78. case 'COOKIE':
  79. for ($i = 1; $i < $num_args; $i++)
  80. {
  81. $parameter = func_get_arg($i);
  82. if (isset($_COOKIE[$parameter]))
  83. {
  84. global ${$parameter};
  85. ${$parameter} = $_COOKIE[$parameter];
  86. }
  87. }
  88. break;
  89. case 'REQUEST':
  90. for ($i = 1; $i < $num_args; $i++)
  91. {
  92. $parameter = func_get_arg($i);
  93. if (isset($_REQUEST[$parameter]))
  94. {
  95. global ${$parameter};
  96. ${$parameter} = $_REQUEST[$parameter];
  97. }
  98. }
  99. break;
  100. }
  101. } else {
  102. die('You must specify at least two arguments');
  103. }
  104. }

Report this snippet  

You need to login to post a comment.