Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] validacion de edad en formulario

Estas en el tema de validacion de edad en formulario en el foro de PHP en Foros del Web. hola amigos, lo que quiero hacer es que cuando en un formulario de registro uno ponga una edad se inserte en una base de datos ...
  #1 (permalink)  
Antiguo 10/12/2015, 21:14
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 9 años
Puntos: 1
Exclamación validacion de edad en formulario

hola amigos, lo que quiero hacer es que cuando en un formulario de registro uno ponga una edad se inserte en una base de datos eso lo hace bien lo que no logro es que cuando esa edad sea de 5 a 12 me ingrese a una pagina para niños
Código:
<div id="apDiv4">&nbsp;
  
  <p><center>INGRESA AQUI:</center></p>
  <form method="POST" id="form2" name="form2" action=""><center><table width="299" height="307" border="0">
    <tr>
      <td><p id="texto">USUARIO:</p></td>
      <td><label for="usuario2"></label>
        <input type="text" name="usuario2" id="usuario2" /></td>
    </tr>
    <tr>
      <td><p id="texto">CONTRASEÑA:</p></td>
      <td><label for="pass2"></label>
        <input type="text" name="pass2" id="pass2" /></td>
    </tr>
        
    
    <tr>
     <td><p id="texto">EDAD:</p></td> 
      <td><select name="edad2" id="edad2">
        <option value="5" selected="selected">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
      </select></td>
    </tr>
    <tr>
      <td colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="boton-ingreso" id="boton-ingreso" value="INGRESAR" />
      <?php
	  [email protected]$_POST['usuario2'];
[email protected]$_POST['pass2'];
[email protected]$_POST['edad2'];
	  if(isset($_POST['boton-ingreso']))
	  {
		  $link = mysql_connect("localhost", "root");
mysql_select_db("usuarios", $link);
$result = mysql_query("SELECT usuario,pass,edad FROM tabla_usuarios where usuario='".$usuario2."' and pass='".$pass2."'", $link);
		if($row = mysql_fetch_array($result))
	{
	       $edad=$row['edad'];
	   
           if($edad < 13){
			   
              header("Location:formularioniño.php");   
			   
		   }
	}
	  
	       
  
	  }
	  ?>
      
      
      </td>
      </tr>
  </table>
  </center></form>
  </div>
  #2 (permalink)  
Antiguo 10/12/2015, 21:49
Avatar de Alexis88
Objetivista
 
Fecha de Ingreso: noviembre-2011
Ubicación: Lima, Perú
Mensajes: 5.431
Antigüedad: 8 años
Puntos: 930
Respuesta: validacion de edad en formulario

Tengo unas observaciones:
  1. Nunca uses la función header() después de una salida de datos. El código HTML es interpretado como una impresión de datos, por lo tanto, la función en cuestión no funcionará.
  2. Trata de no utilizar caracteres extraños como las eñes o tildes para evitar problemas por el idioma.
  3. No utilices arrobas. Con ellas solo ocultas mensajes de error o advertencias que puedes servirte para depurar el código.

Un saludo
__________________
«Laissez faire et laissez passer, le monde va de lui même»
  #3 (permalink)  
Antiguo 10/12/2015, 22:31
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 9 años
Puntos: 1
Respuesta: validacion de edad en formulario

ya saque la ñ y el header use en javascrip el location y no me funciona,necesito saber si mi codigo es correcto
  #4 (permalink)  
Antiguo 10/12/2015, 22:49
Avatar de Alexis88
Objetivista
 
Fecha de Ingreso: noviembre-2011
Ubicación: Lima, Perú
Mensajes: 5.431
Antigüedad: 8 años
Puntos: 930
Respuesta: validacion de edad en formulario

Depura tu código. Imprime la consulta, las variables que recibes. Por cierto, esas variables deberían estar dentro de la condición, no por fuera pues la primera vez que se ejecute, no habrán datos llegados por el método POST.

Por una cuestión de orden, te sugiero reestructurar tu código de esta manera:
Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST)){
  3.     //Código PHP
  4. }
  5. ?>
  6. <!-- Código HTML -->

Un saludo
__________________
«Laissez faire et laissez passer, le monde va de lui même»
  #5 (permalink)  
Antiguo 11/12/2015, 07:31
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 9 años
Puntos: 1
Respuesta: validacion de edad en formulario

ya lo ordene como me dijiste el codigo y ahora como hago que funcione mi codigo??
  #6 (permalink)  
Antiguo 11/12/2015, 09:54
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 9 años, 1 mes
Puntos: 123
Respuesta: validacion de edad en formulario

Puedes utilizar el header sin problema
Pero debes seguir la recomendación que te hizo alexis88
Para que las cabeceras funcionen correctamente deben estar al principio, antes de que se imprima cualquier carácter incluido los espacios en blanco.

Por lo tanto

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST)){
  3. $usuario2[email protected]$_POST['usuario2'];
  4. $pass2[email protected]$_POST['pass2'];
  5. $edad2[email protected]$_POST['edad2'];
  6.       if(isset($_POST['boton-ingreso']))
  7.       {
  8. $link = mysql_connect("localhost", "root");
  9. mysql_select_db("usuarios", $link);
  10. $result = mysql_query("SELECT usuario,pass,edad FROM tabla_usuarios where usuario='".$usuario2."' and pass='".$pass2."'", $link);
  11.         if($row = mysql_fetch_array($result))
  12.     {
  13.            $edad=$row['edad'];
  14.        
  15.            if($edad < 13){
  16.                
  17.               header("Location:formularionino.php");  
  18.                
  19.            }
  20.     }
  21.      
  22.            
  23.  
  24. }
  25. ?>
  26. <!-- Código HTML -->

Te da algún error?
  #7 (permalink)  
Antiguo 11/12/2015, 10:08
Avatar de Alexis88
Objetivista
 
Fecha de Ingreso: noviembre-2011
Ubicación: Lima, Perú
Mensajes: 5.431
Antigüedad: 8 años
Puntos: 930
Respuesta: validacion de edad en formulario

¿Depuraste el código como te lo sugerí?

Prueba imprimiendo la consulta y los valores que recibes. Quizá no se ejecuta la redirección porque quizá pueda estar fallando la consulta o no estás recibiendo bien los valores. Solo tú puedes ver eso ya que nosotros no tenemos acceso a tus datos.
__________________
«Laissez faire et laissez passer, le monde va de lui même»
  #8 (permalink)  
Antiguo 11/12/2015, 14:24
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 9 años
Puntos: 1
Respuesta: validacion de edad en formulario

te referis a que haga esto??
echo $result;

lo puse asi y no me sale nada y tampoco el header me funciona y ya ordene el codigo php arriba del html
  #9 (permalink)  
Antiguo 11/12/2015, 15:29
Avatar de Alexis88
Objetivista
 
Fecha de Ingreso: noviembre-2011
Ubicación: Lima, Perú
Mensajes: 5.431
Antigüedad: 8 años
Puntos: 930
Respuesta: validacion de edad en formulario

Te dije que imprimieras a la consulta, no al resultado de la ejecución.

Prueba haciendo esto:
Código PHP:
Ver original
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';
  4.  
  5. echo "SELECT usuario,pass,edad FROM tabla_usuarios where usuario='".$usuario2."' and pass='".$pass2."'";
  6.  
  7. var_dump($result);

Lo primero mostrará a todos los valores llegados mediante el método POST. Lo segundo imprimirá la consulta y lo tercero mostrará el resultado de la ejecución de la consulta. Otra forma de saber si se está ejecutando la consulta es imprimiéndola y copiando/pegando dicha impresión en el phpMyadmin o la herramienta de administración de bases de datos que tengas. Una vez que la hayas pegado en el campo de ejecución de consultas SQL, pruébala y verifica si funciona. Si no funciona, al menos podrás ver en dónde está la falla.

Un saludo
__________________
«Laissez faire et laissez passer, le monde va de lui même»

Etiquetas: edad, formulario, mysql, registro, select, tabla, usuarios, validacion
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 04:03.