Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2010, 16:04
Avatar de _cronos2
_cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Problema con bucles o echo

Hola amigos, estoy tratando de hacer una validación de un formulario con PHP, hasta ahí todo bien. Ahora lo que quiero es mostrar los errores del formulario en caso de que los haya. Voy validando cada campo y si hay un error almaceno el texto en un array. Después intento mostrarlo recorriéndolo con un bucle pero sin embargo no me funciona u.u' Dejo el código que tengo ahora:
Código PHP:
Ver original
  1. <?php
  2.   $nick = $_REQUEST['nombre'];
  3.   $puntos = $_REQUEST['puntos'];
  4.   $cx = $_REQUEST['coordx'];
  5.   $cy = $_REQUEST['coordy'];
  6.   $enviar = true;
  7.   $errores = array();
  8.   $f = ' por favor</p><br />';
  9.   $l = strlen(comentario)-1000;
  10.   if(empty($nick)){
  11.    $enviar = false;
  12.    array_push($errores, "<p class='error'>Escribe tu nombre,$f");
  13.   }
  14.   if($puntos == '0'){
  15.    $enviar = false;
  16.    array_push($errores, "<p class='error'>Indica tus puntos,$f");
  17.   }
  18.   for($i=0;$i<count($cx);$i++){
  19.    $n=$i+1;
  20.    $c=$cx[$i];
  21.    if(empty($c)){
  22.     $enviar=false;
  23.     array_push($errores, "<p class='error'>Rellena las coordenadas X de tu $n ª colonia,$f");
  24.    }
  25.    elseif(!preg_match('%^\d+$%',$c)){
  26.     $enviar=false;
  27.     array_push($errores, "<p class='error'>Introduce un número válido en las coordenadas X de tu $n ª colonia,$f");
  28.    }
  29.   }
  30.   for($i=0;$i<count($cy);$i++){
  31.    $n=$i+1;
  32.    $c=$cy[$i];
  33.    if(empty($c)){
  34.     $enviar=false;
  35.     array_push($errores, "<p class='error'>Rellena las coordenadas Y de tu $n ª colonia,$f");
  36.    }
  37.    elseif(!preg_match('%^\d+$%',$c)){
  38.     $enviar=false;
  39.     array_push($errores, "<p class='error'>Introduce un número válido en las coordenadas Y de tu $n ª colonia,$f");
  40.    }
  41.   }
  42.   if(!$enviar){
  43.    //print_r($errores);
  44.    //si pongo el print_r() sí me funciona y me pone todos
  45.    //los valores que debería haber según los errores
  46.   ?>
  47.   <h1 class="titulo">Datos</h1>
  48.   <div class="error-container">
  49.    <p class='titulo'>Los siguientes errores han ocurrido:</p>
  50.    <ul>
  51.    <?php
  52.    for($i=0;$i<count($errores);$i++){
  53.    ?>
  54.     <li><?php echo $errores[i] ?></li>
  55.    <?php
  56.    }
  57.    ?>
  58.    </ul>
  59.   </div>
Esto genera un código así:
Código HTML:
Ver original
  1. <div class="error-container">
  2.   <p class='titulo'>Los siguientes errores han ocurrido:</p>
  3.   <ul>
  4.    <li></li>
  5.    <li></li>
  6.    <!-- ... -->
  7.   </ul>
  8. </div>
Espero vuestra ayuda.
Saludos y gracias (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red