Ir al contenido


Foto

Validar un Formulario


  • Por favor identifícate para responder
4 respuestas en este tema

#1 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 05 septiembre 2011 - 12:32

Buenas necesito validar el siguiente formulario, para que el usuario cuando se veya a registrar en la pagina no deje campos en blanco.




php
  1. <script type="text/javascript">
  2.  
  3. function MM_validateForm() { //v4.0
  4.   if (document.getElementById){
  5.     var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  6.     for (i=0; i<(args.length-2); i =3) { test=args[i 2]; val=document.getElementById(args[i]);
  7.       if (val) { nm=val.name; if ((val=val.value)!="") {
  8.         if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
  9.           if (p<1 || p==(val.length-1)) errors ='- ' nm 'debe contener una dirección de email válida.n';
  10.         } else if (test!='R') { num = parseFloat(val);
  11.           if (isNaN(val)) errors ='- ' nm ' Debe contener un numero.n';
  12.           if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
  13.             min=test.substring(8,p); max=test.substring(p 1);
  14.             if (num<min || max<num) errors ='- ' nm ' Debe ser entre ' min ' and ' max '.n';
  15.       } } } else if (test.charAt(0) == 'R') errors  = '- ' nm ' is required.n'; }
  16.     } if (errors) alert('The following error(s) occurred:n' errors);
  17.     document.MM_returnValue = (errors == '');
  18. } }
  19. </script>
  20. body...
  21. <form id="form1" name="form1" method="post" enctype="multipart/form-data"
  22. action="registro.php">
  23.       <table width="366" border="0" align="center" cellpadding="5" cellspacing="0">
  24.         <tr>
  25.           <td colspan="2" align="left" valign="top"><label for="nombres"></label>
  26.             &iquest;Todav&iacute;a no se ha Registrado?</td>
  27.           </tr>
  28.         <tr>
  29.           <td width="30%" align="right" valign="top">Nombres</td>
  30.           <td width="70%" align="left" valign="top"><input name="nombres" type="text" id="nombres" maxlength="50" />*</td>
  31.           </tr>
  32.         <tr>
  33.           <td align="right" valign="top">Apellidos</td>
  34.           <td align="left" valign="top"><label for="apellidos"></label>
  35.             <input name="apellidos" type="text" id="apellidos" maxlength="50" />*</td>
  36.           </tr>
  37.         <tr>
  38.           <td align="right" valign="top">Email</td>
  39.           <td align="left" valign="top"><label for="email"></label>
  40.             <input name="email" type="text" id="email" maxlength="30" />*</td>
  41.           </tr>
  42.         <tr>
  43.     <td align="right" valign="top">Teléfono</td>
  44.     <td align="left" valign="top"><label for="telefono"></label>
  45.     <input name="telefono" type="text" id="telefono" maxlength="15" />*
  46.     </td>
  47.   </tr>
  48.         <tr>
  49.           <td align="right" valign="top">Nick</td>
  50.           <td align="left" valign="top"><label for="nick"></label>
  51.             <input name="nick" type="text" id="nick" maxlength="15" />*</td>
  52.           </tr>
  53.         <tr>
  54.           <td align="right" valign="top">Contrase&ntilde;a</td>
  55.           <td align="left" valign="top"><label for="contrase&ntilde;a"></label>
  56.             <input name="password" type="password" id="password" maxlength="14" />*</td>
  57.           </tr>
  58.         <tr>
  59.           <td align="right" valign="top">Sexo</td>
  60.           <td valign="top"><span class="texto">
  61.             <input type="radio" name="sexo" value="m" style="border: 0px" checked="checked" />
  62.             Masculino
  63.             <input type="radio" name="sexo" value="f" style="border: 0px"  />
  64.             Femenino </span></td>
  65.           </tr>
  66.         <tr>
  67.           <td align="right" valign="top">Fecha de Nacimiento</td>
  68.           <td valign="top"><span class="texto">
  69.             <select name="dia">
  70.               <option value="01" selected="selected">01</option>
  71.               <option value="02">02</option>
  72.               <option value="03">03</option>
  73.               <option value="04">04</option>
  74.               <option value="05">05</option>
  75.               <option value="06">06</option>
  76.               <option value="07">07</option>
  77.               <option value="08">08</option>
  78.               <option value="09">09</option>
  79.               <option value="10">10</option>
  80.               <option value="11">11</option>
  81.               <option value="12">12</option>
  82.               <option value="13">13</option>
  83.               <option value="14">14</option>
  84.               <option value="15">15</option>
  85.               <option value="16">16</option>
  86.               <option value="17">17</option>
  87.               <option value="18">18</option>
  88.               <option value="19">19</option>
  89.               <option value="20">20</option>
  90.               <option value="21">21</option>
  91.               <option value="22">22</option>
  92.               <option value="23">23</option>
  93.               <option value="24">24</option>
  94.               <option value="25">25</option>
  95.               <option value="26">26</option>
  96.               <option value="27">27</option>
  97.               <option value="28">28</option>
  98.               <option value="29">29</option>
  99.               <option value="30">30</option>
  100.               <option value="31">31</option>
  101.               </select>
  102.             /
  103.             <select name="mes">
  104.               <option value="01" selected="selected">Enero</option>
  105.               <option value="02">Febrero</option>
  106.               <option value="03">Marzo</option>
  107.               <option value="04">Abril</option>
  108.               <option value="05">Mayo</option>
  109.               <option value="06">Junio</option>
  110.               <option value="07">Julio</option>
  111.               <option value="08">Agosto</option>
  112.               <option value="09">Septiembre</option>
  113.               <option value="10">Octubre</option>
  114.               <option value="11">Noviembre</option>
  115.               <option value="12">Diciembre</option>
  116.               </select>
  117.             /
  118.             <select name="ano" id="ano">
  119.               <?php
  120.  
  121.   for($i=($fecha[ano]-15); $i>=($fecha[ano]-100); $i--) {
  122.  
  123.       echo "<option value="" . $i . "">" . $i . "</option>n";
  124.      
  125.   }
  126.  
  127. ?>
  128.               </select>
  129.             </span></td>
  130.           </tr>
  131.         <tr>
  132.           <td align="right" valign="top">Estado</td>
  133.           <td align="left" valign="top"><select name="estado" id="estado" onchange="CEstado();">
  134.             <option value="" selected>== Selecciona uno</option>
  135.             <option value="1">Amazonas</option>
  136.             <option value="2">Anzo&aacute;tegui</option>
  137.             <option value="3">Apure</option>
  138.             <option value="4">Aragua</option>
  139.             <option value="5">Barinas</option>
  140.             <option value="6">Bol&iacute;var</option>
  141.             <option value="7">Carabobo</option>
  142.             <option value="8">Cojedes</option>
  143.             <option value="9">Delta Amacuro</option>
  144.             <option value="10">Dependencias Federales</option>
  145.             <option value="11">Distrito Capital</option>
  146.             <option value="12">Falc&oacute;n</option>
  147.             <option value="13">Gu&aacute;rico</option>
  148.             <option value="14">Lara</option>
  149.             <option value="15">M&eacute;rida</option>
  150.             <option value="16">Miranda</option>
  151.             <option value="17">Monagas</option>
  152.             <option value="18">Nueva Esparta</option>
  153.             <option value="19">Portuguesa</option>
  154.             <option value="20">Sucre</option>
  155.             <option value="21">T&aacute;chira</option>
  156.             <option value="22">Trujillo</option>
  157.             <option value="23">Vargas</option>
  158.             <option value="24">Yaracuy</option>
  159.             <option value="25">Zulia</option>
  160.             </select></td>
  161.           </tr>
  162.         <tr>
  163.           <td align="right" valign="top">Direcci&oacute;n</td>
  164.           <td align="left" valign="top"><textarea name="zona" rows="5" id="zona"></textarea>*</td>
  165.           </tr>
  166.         <tr>
  167.           <td align="right" valign="top">&nbsp;</td>
  168.           <td align="left" valign="top"><p>
  169.             <input name="registrar" type="submit" id="registrar" onclick="MM_validateForm('nombres','','R','apellidos','','R','email','','RisEmail','telefonos','','RisNum','nick','','R','password','','R');return document.MM_returnValue" value="Enviar"/>
  170.           </p></td>
  171.           </tr>
  172.         </table>
  173.       </form>


Nota: Me genera que el campo Nick y contraseña, lo estoy dejando en blanco , cuando introdusco informacion en esos campos.
  • 0

#2 squall2501

squall2501

    Advanced Member

  • Miembros
  • PipPipPip
  • 82 mensajes
  • Locationen oa

Escrito 06 septiembre 2011 - 09:46

Crea una funcion para determinar si esta vacio


[java]

    function validar(){

var f=document.nombreformulario;

if(f.nombrecampo.value==0){

alert("debes llenar el campo name");
return 0;
}

    f.submit();
[/java]



Y un boton para llamar a la funcion

[java]


<input type="button" onclick="validar()" value="enviar"/>

[/java]


Si quieres puedes limpiar el formulario cada vez que la persona ingrese en el body

[java]


<body onload="document.form.reset();">

[/java]


Tambien puedes agregar a tu funcion php lo siguiente cuando reciba la informacion

[java]

<?php

if(empty($_POST)){


echo "<script>window.location='paginaformulario.php';alert('no puedes enviar campos vacios')</script>";
exit;
}

?>[/java]

Con lo cual si cualquier POST esta vacio termina la funcion y tambien puedes agregar la funcion strips para evitar inyeccion de codigo

[java]

<?php

$_POST['nombrecampo']=strip_tags($_POST['nombrecampo']);

?>

[/java]

Por ultimo si tienes dudas de lo que estas recibiendo haz un print_r($_POST); para ver todas las variables post en la pagina que te recibe las variables

  • 0

#3 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 15 septiembre 2011 - 07:21

Buenas encontre un codigo en la internet, donde tengo validacion del password , donde me vailda si el usuario lo escribio igual , en los 2 campos
(password1 y password2)

Aqui dejo de donde saque ese codigo,
http://web.ontuts.co...ascript-jquery/

Pero mi duda es sobre que como el password y los demas datos los almacenos una tabla, me imagino que tendria que colocar un campo password1 y password2 ?  para asi comparar, ya que otra forma es que no compare  y el usuario siga. y no es la idea, y pasa igual con el nick pero el validador del dreamweaver como que tiene limitantes...

  • 0

#4 squall2501

squall2501

    Advanced Member

  • Miembros
  • PipPipPip
  • 82 mensajes
  • Locationen oa

Escrito 15 septiembre 2011 - 01:20

Por lo que logro entenderte lo que quieres bes  que ademas de estar validado por javascript quieres  comparar el valor de ambos password y del nick antes de ingresarlos en la tabla

Pues simplemente compara los datos enviados

if($_POST['password1']!=$_POST['password2'])

{

echo "<script>window.location='paginaformulario.php';alert("los password no coinciden')</script>";
exit;
}
else{

->> ingresas los datos
}

Lo mismo con el nick compara con una consulta si el nick ingresado ya se encuentra  con un num_rows si es mayor a 0 entonces lo devuelves sino grabas

Te recomiendo no usar los validadores de dreamweaver es mejor que tu hagas tus propias validaciones

  • 0

#5 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 16 septiembre 2011 - 07:08

Por lo que logro entenderte lo que quieres bes  que ademas de estar validado por javascript quieres  comparar el valor de ambos password y del nick antes de ingresarlos en la tabla

Pues simplemente compara los datos enviados

if($_POST['password1']!=$_POST['password2'])

{

echo "<script>window.location='paginaformulario.php';alert("los password no coinciden')</script>";
exit;
}
else{

->> ingresas los datos
}

Lo mismo con el nick compara con una consulta si el nick ingresado ya se encuentra  con un num_rows si es mayor a 0 entonces lo devuelves sino grabas

Te recomiendo no usar los validadores de dreamweaver es mejor que tu hagas tus propias validaciones


Es necesario crear un campo llamado password1 y password2 en mi caso
  • 0




IP.Board spam blocked by CleanTalk.