Foros del Web » Programando para Internet » PHP »

Validacion funciona pero igual pasa con errores

Estas en el tema de Validacion funciona pero igual pasa con errores en el foro de PHP en Foros del Web. Holas a todos, tengo un sencillissimo script de validacion en JavaScript : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function validar ( ) {   ...
  #1 (permalink)  
Antiguo 19/04/2012, 11:59
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 2 meses
Puntos: 3
Validacion funciona pero igual pasa con errores

Holas a todos, tengo un sencillissimo script de validacion en JavaScript:

Código Javascript:
Ver original
  1. function validar() {
  2.             if (document.save_cliente.cliente_nombre.value.length == 0) {
  3.                 alert("Debes Ingresar el nombre del Cliente!")
  4.                 document.save_cliente.cliente_nombre.focus()
  5.                 return 0;
  6.             }
  7.         }

Ese script funciona bien, pero aun tener el campo vacio me guarda los datos en PHP, o sea, no evita que pase la moificacion, este es el script de guardar:

Código PHP:
Ver original
  1. elseif (isset($_REQUEST['do']) && $_REQUEST['do'] == 'save') {     
  2.             $smcFunc['db_query']('', '
  3.                 UPDATE {db_prefix}da_anuncios_clientes
  4.                 SET cliente_nombre = {string:name}, cliente_link = {string:link}, activo = {int:active}
  5.                 WHERE id = {int:cliente_id}',
  6.                 array(
  7.                     'cliente_id' => $_POST['cliid'],
  8.                     'name' => $_POST['cliente_nombre'],
  9.                     'link' => $_POST['cliente_url'],
  10.                     'active' => $_POST['cliente_activo'],
  11.                 )
  12.             );
  13.            
  14.             redirectexit('action=admin;area=manageanuncios;sa=clientes');  
  15.        }

Este es el formulario:

Código PHP:
Ver original
  1. echo '
  2.     <div id="manage_boards">
  3.         <form action="', $scripturl, '?action=admin;area=manageanuncios;sa=editcliente;do=save" name="save_cliente" method="post" accept-charset="', $context['character_set'], '" onSubmit="javascript:return validar()">
  4.            
  5.             <div class="cat_bar">
  6.                 <h3 class="catbg">
  7.                     ', isset($_GET['s']) ? $txt['manage_anuncios_edit_cliente'] : $txt['manage_anuncios_add_cliente'], '
  8.                 </h3>
  9.             </div>';
  10.            
  11.         foreach ($context['clientes'] as $cliente) {
  12.            
  13.         echo'
  14.         <input type="hidden" name="cliid" value="', $cliente['cliente']['id'], '" />
  15.         <div class="windowbg">
  16.                 <span class="topslice"><span></span></span>
  17.                 <div class="content">
  18.                     <dl class="settings">
  19.  
  20.                         <dt>
  21.                             <strong>', $txt['manage_anuncios_cliente_nombre'], ':</strong>
  22.  
  23.                         </dt>
  24.                         <dd>
  25.                             <input type="text" name="cliente_nombre" id="cliente_nombre" value="', $cliente['cliente']['name'], '" size="30" class="input_text" />
  26.                         </dd>
  27.  
  28.                         <dt>
  29.                             <strong>', $txt['manage_anuncios_cliente_url'], ':</strong>
  30.                         </dt>
  31.                         <dd>
  32.                             <input type="text" name="cliente_url" value="', $cliente['cliente']['url'], '" size="30" class="input_text" />
  33.                         </dd>
  34.                        
  35.                         <dt>
  36.                             <strong>', $txt['manage_anuncios_cliente_activo'], ':</strong><br />
  37.                         </dt>
  38.                         <dd>';
  39.                         if ($cliente['cliente']['active'] == 1)
  40.                             $checked = 'checked="checked" value="'. $cliente['cliente']['active']. '"';
  41.                         else
  42.                             $checked = 'value="0"';
  43.                            
  44.                             echo '<input type="checkbox" name="cliente_activo" ' . $checked . ' id="cliente_activo" />
  45.                         </dd>
  46.  
  47.                     </dl>';
  48.         }
  49.        
  50.         if (!isset($_GET['s']))
  51.             echo' <input type="submit" name="add" value="', $txt['manage_anuncios_cliente_save'], '" class="button_submit" />';
  52.         else
  53.             echo '<input type="submit" name="edit" value="', $txt['manage_anuncios_cliente_modify'], '" class="button_submit" />';
  54.  
  55.  
  56.     echo'   </div>
  57.             <span class="botslice"><span></span></span>
  58.         </div>
  59.         </form>
  60.     </div>
  61.     <script type="text/javascript"><!-- // --><![CDATA[
  62.         function validar() {
  63.             if (document.save_cliente.cliente_nombre.value.length == 0) {
  64.                 alert("Debes Ingresar el nombre del Cliente!")
  65.                 document.save_cliente.cliente_nombre.focus()
  66.                 return 0;
  67.             }
  68.         }
  69.     // ]]></script>';

Asi que no se que podria estar pasando aqui.

Fleon xD
  #2 (permalink)  
Antiguo 19/04/2012, 12:41
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Validacion funciona pero igual pasa con errores

Necesariamente debes validar en PHP, porque si el navegador del usuario no tiene Javascript activo entonces esa validación no se realiza.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 19/04/2012, 14:23
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Validacion funciona pero igual pasa con errores

Bueno, yo hice una chapuza, pero me funciona de momento:

Código PHP:
Ver original
  1. if (isset($_REQUEST['do']) && $_REQUEST['do'] == 'edit') { 
  2.         if ($_POST['cliente_nombre'] == '') {
  3.             echo '<script type="text/javascript">
  4.                     alert(\'Debes ingresar el nombre del cliente!.\');
  5.                     history.back();
  6.                  </script>';
  7.                  exit;
  8.         } else {
  9.             $smcFunc['db_query']('', '
  10.                 UPDATE {db_prefix}da_anuncios_clientes
  11.                 SET cliente_nombre = {string:name}, cliente_link = {string:link}, activo = {int:active}
  12.                 WHERE id = {int:cliente_id}',
  13.                 array(
  14.                     'cliente_id' => $_POST['cliid'],
  15.                     'name' => $_POST['cliente_nombre'],
  16.                     'link' => $_POST['cliente_url'],
  17.                     'active' => $_POST['cliente_activo'],
  18.                 )
  19.             );
  20.            
  21.             redirectexit('action=admin;area=manageanuncios;sa=clientes');  
  22.        }
  23.      }

Saludos.
  #4 (permalink)  
Antiguo 19/04/2012, 14:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Validacion funciona pero igual pasa con errores

Y si el usuario no tiene javascript habilitado?... no verá esa alerta, sólo una página en blanco.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: errores, formulario, igual
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 19:00.