fork download
  1. <?php
  2.  
  3. // http://es.stackoverflow.com/q/21223/127
  4. class ParametrosPOST
  5. {
  6. public $estanTodosLosParametros; // true/false si se enviaron todos
  7. private $_valores; // guarda todos los parámetros como array
  8.  
  9.  
  10. public function __construct(Array $parametros) {
  11. $this->estanTodosLosParametros = true; // Si están todos presentes en $_POST
  12.  
  13. foreach ($parametros as $valor) { //verificar que estén todos
  14. if (isset($_POST[$valor]) && !empty($_POST[$valor])) {
  15. //guardar un parámetro y valor
  16. $this->_valores[$valor] = $_POST[$valor];
  17. } else {
  18. $this->estanTodosLosParametros = false;
  19. }
  20. }
  21. }
  22.  
  23. // para poder usar $paramPOST->nombre
  24. // y que devuelva $paramPOST->_valores['nombre']
  25. public function __get($param){
  26. return array_key_exists($param, $this->_valores)
  27. ? $this->_valores[$param]
  28. : null;
  29. }
  30.  
  31. public function __set($param, $valor){
  32. return $this->_valores[$param] = $valor;
  33. }
  34.  
  35. }
  36.  
  37.  
  38. // ----------------
  39. // Ejemplo
  40.  
  41.  
  42. $_POST = array('name' => 'valentina', 'last'=>'Jerez', 'phone'=>'829837168', 'username'=>'valen',
  43. 'mail'=>'valentina0012@hotmail.com', 'password'=> 'valentina', 'state'=>1);
  44.  
  45.  
  46.  
  47.  
  48. $paramPOST = new ParametrosPOST([
  49. 'name','last','phone',
  50. 'username','mail','password',
  51. 'state'
  52. ]);
  53.  
  54. if ($paramPOST->estanTodosLosParametros) {
  55. echo "
  56. <h3>Todos los datos fueron recibidos</h3>
  57. <p>Nombre: $paramPOST->name</p>
  58. <p>Tel: $paramPOST->phone</p>
  59. ";
  60. } else {
  61. echo "<h3>Error: faltaron datos para realizar el registro</h3>";;
  62. }
Success #stdin #stdout 0s 52488KB
stdin
Standard input is empty
stdout
		<h3>Todos los datos fueron recibidos</h3>
		<p>Nombre: valentina</p>
		<p>Tel: 829837168</p>