Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/05/2004, 07:40
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si usas los arrays supergloblales POST, GET .. etc .. ya son arrays de por sí .. así que puedes usarlos en tus foreach() y así eliminar esa "globalización" de variables que haces con:

Código PHP:
while(list($nombre$val) = each ($HTTP_POST_VARS)){$$nombre $val;}
    while(list(
$nombre$val) = each ($HTTP_GET_VARS)){$$nombre $val;} 
Quedaría algo así:

Código PHP:
    foreach ($_POST as $indice=>$valor){
        if (empty(
$_POST[$indice])){
           
$_POST[$indice]='';
        }
    } 
Y luego trabajas con tus $_POST[variable] como de costumbre .. Siempre intenta usar los arrays directamente .. NO "globalices" a ser posible..

Como arrays que són .. puedes aplicar funciones de arrays como "in_array()" para ver si tal elemento está en tu array y usar un array extra para contener los campos que realmente desees validar (aplicar tu validación concreta .. En algunos casos será un "que exista y con valor .. " en otros será validar el "tipo de dato que contiene .. etc".)

Sobre tus "pregunticas":

1) .. No sé realmente, habría que ver si dice algo al respecto www.php.net en su apartado de "variable variables".

2) El "reset" mueve el puntero interno del array $HTTP_????_??? al principio .. No sé ahora concretamente .. pero a la hora de recorrer un array con algún bucle .. el puntero interno queda al final de este al ser recorrido (el foreach() creo que lo deja al principio por si sólo).

3) En las FAQ's de este foro (de las primeras) tienes una explicación al respecto y las diferencias de ambos arrays (superglobal y no global).

Te recomiendo que explores el maravilloso mundo de los "arrays" .. veras que se pueden hacer muchas cosas con ellas si las empleas correctamente.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.