elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda con formulario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con formulario  (Leído 4,733 veces)
Maties 360

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Duda con formulario
« Respuesta #10 en: 26 Julio 2007, 15:46 pm »

Buenas, gracias por todo Sanjuu^^, lo de las provincias funciona perfectamente de esta manera, pero tengo un problema con la bd,os pongo el codigo:

registrousuarios.php

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>*LE*|| Registro Nuevo Usuario</title>
</head>

<body bgcolor="#000000">
<br><br><br /><br /><br /><br /><br /><br /><br /><br />
<table border="0" cellpadding="0" cellspacing="0" align="center">
<form action="proces.php" method="get">
<tr><td><font color="white">Nick:   </font><input type="text" name="nick"><br></td></tr>
<tr><td><br><font color="white">Contraseña: </font><input type="password" name="contrasenya"></td></tr>
<tr><td><br><font color="white">Repite la contraseña: </font><input type="password" name="re-contrasenya"></td></tr>
<tr><td><br><font color="white">Email: </font><input type="text" name="email"></td></tr>
<tr><td><br><font color="white">Fecha de nacimiento: </font><input type="text" name="data" title="Formato: aaaa-mm-dd" maxlength="10"></td></tr>
<tr><td><br><font color="white">País: </font>
<select name="pais">
  <option value="1">España</option>
  <option value="2">Portugal</option>
</select></td></tr>
<tr><td><br><input type="submit" value="Continuar">&nbsp;&nbsp;&nbsp;<input type="reset" value="Borrar"></td></tr>
</form>
</table>
</body>
</html>

proces.php

Código:
<?php
switch( $_GET['pais']) {
case 1:
include ('registrousuariosespanya.php');
break;
case 2:
include ('registrousuariosportugal.php');
break;
}
?>

Ahora solo pondre el de una provincia:

registrousuariosespanya.php

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body bgcolor="#000000">
<br><br><br /><br /><br /><br /><br /><br /><br /><br />
<table align="center" border="0" cellpadding="0" cellspacing="0">
<form action="procesfinal.php" method="get">
<tr><td><font color="white">Provincia: </font>
<select name="provincies">
<option value="1">Almeria</option>
<option value="2">Barcelona</option>
<option value="3">Cadiz</option>
<option value="4">Islas Baleares</option>
<option value="5">Madrid</option>
</select></td></tr>
<tr><td><br><font color="white">Sexo: <br />&nbsp;<input type="radio" name="sexe" value="Hombre">Hombre <br>
&nbsp;<input type="radio" value="Mujer" name="sexe">Mujer</font></td></tr>
<tr><td><br><input type="submit" value="Enviar">&nbsp;&nbsp;<input type="reset" value="Borrar"></td></tr>
</form>
</table>
</body>
</html>

Y ahora el problema que tengo es que cuando envias los datos del formulario de las provincias, te lleva a este documento php:

procesfinal.php

Código:
<?php
header("Location: registrocompleto.php"); //en este documento solo te pone que se ha completado el registro
include ('conexion.php');
$provincia= $_GET['provincies'];
$sexe= $_GET['sexe'];
$nick= $_GET['nick'];
$contrasenya= $_GET['contrasenya'];
$recontrasenya= $_GET['re-contrasenya'];
$email= $_GET['email'];
$fecha= $_GET['data'];
$pais= $_GET['pais'];
$sql= "insert into usuaris (Nick,Contrasenya,ReContrasenya,Email,Pais,Neixament,Provincia,sexe) values
('$nick','$contrasenya','$recontrasenya','$email','$pais','$fecha','$provincia','$sexe')";
 mysql_query("$sql");
?>

Y el problema esta en que solo me mete en la base de datos los datos del formulario de las provincias y el sexo. Que tengo que hacer para que pueda recuperar los datos del otro formulario?¿?

Gracias y Salu2




« Última modificación: 27 Julio 2007, 00:56 am por Maties 360 » En línea

Sanjuu

Desconectado Desconectado

Mensajes: 86



Ver Perfil
Re: Duda con formulario
« Respuesta #11 en: 27 Julio 2007, 10:47 am »

En tu formulario de proces.php no incluyes por ningún lado los campos que arrastras del form anterior, por eso los pierdes, lo que deberías de hacer es usar campos hidden. Por ejemplo:

Código
  1. <input type="hidden" name="nick" value="<?php $_GET['nick']; ?>" />

De esa forma el campo está en el formulario pero no es visible para el usuario. Puedes hacer eso o guardar los datos en variables de sesión pero esto es más complicado, mejor que uses inputs hidden.

Una recomendación: no se para que es exactamente este form pero usar el metodo GET no es precisamente recomendable cuando estás manejando datos personales de gente ;)


En línea


Código
  1. if (pregunta->buscador()==NULL)
  2.     pregunta->formular_pregunta();
  3.  
Maties 360

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Duda con formulario
« Respuesta #12 en: 27 Julio 2007, 13:20 pm »

Gracias por la recomendacion^^, pero no me funciona lo que me estas diciendo...
Mira lo tengo puesto asi:

proces.php

Código:
<?php
switch( $_GET['pais']) {
case 1:
include ('registrousuariosespanya.php');
break;
case 2:
include ('registrousuariosportugal.php');
break;
}
$nick= $_GET['nick'];
$contrasenya= $_GET['contrasenya'];
$recontrasenya= $_GET['re-contrasenya'];
$email= $_GET['email'];
$fecha= $_GET['data'];
$pais= $_GET['pais'];
?>
<form action="proces.php" method="get">
<input type="hidden" name="nick" value="<?php $nick ?>" />
<input type="hidden" name="contrasenya" value="<?php $contrasenya ?>" />
<input type="hidden" name="re-contrasenya" value="<?php $recontrasenya ?>" />
<input type="hidden" name="email" value="<?php $email ?>" />
<input type="hidden" name="data" value="<?php $fecha ?>" />
<input type="hidden" name="pais" value="<?php $pais ?>" />
</form>

procesfinal.php

En este no he puesto mysql_query() porque solo queria probar si me reconocia los datos y lo he puesto de esta forma:

Código:
<?php
$provincia= $_GET['provincies'];
$sexe= $_GET['sexe'];
$nick= $_GET['nick'];
$contrasenya= $_GET['contrasenya'];
$recontrasenya= $_GET['re-contrasenya'];
$email= $_GET['email'];
$fecha= $_GET['data'];
$pais= $_GET['pais'];
$sql= "insert into usuaris (Nick,Contrasenya,ReContrasenya,Email,Pais,Neixament,Provincia,sexe) values
      ('$nick','$contrasenya','$recontrasenya','$email','$pais','$fecha','$provincia','$sexe')";

echo "$nick";
?>

No se que problema hay, porque he intentado ponerlo de varias formas y no me recoge los datos...

Gracias y Salu2
En línea

SirLanceCC


Desconectado Desconectado

Mensajes: 1.093


Ver Perfil WWW
Re: Duda con formulario
« Respuesta #13 en: 27 Julio 2007, 16:33 pm »

No quiero ser aguafiestas pero... ¿realmente vale la pena hacer esa lista tan grande? ¿que pasa si soy de un pais que no contemplaste? ¿que pasa si mi provincia no la listaste?
Yo creo que sería mejor que pusieras pais como texto y provincia como texto.
Pero solo es una sugerencia
En línea

Sanjuu

Desconectado Desconectado

Mensajes: 86



Ver Perfil
Re: Duda con formulario
« Respuesta #14 en: 27 Julio 2007, 16:49 pm »

Tienes varios fallos.

1 - el orden
2 - el action del formulario
3 - falta el boton submit
4 - echo de php para los values

Código
  1. <?php
  2. $nick= $_GET['nick'];
  3. $contrasenya= $_GET['contrasenya'];
  4. $recontrasenya= $_GET['re-contrasenya'];
  5. $email= $_GET['email'];
  6. $fecha= $_GET['data'];
  7. $pais= $_GET['pais'];
  8. ?>
  9. <form action="procesfinal.php" method="get">
  10. <input type="hidden" name="nick" value="<?php echo $nick ?>" />
  11. <input type="hidden" name="contrasenya" value="<?php echo $contrasenya ?>" />
  12. <input type="hidden" name="re-contrasenya" value="<?php echo $recontrasenya ?>" />
  13. <input type="hidden" name="email" value="<?php echo $email ?>" />
  14. <input type="hidden" name="data" value="<?php echo $fecha ?>" />
  15. <input type="hidden" name="pais" value="<?php echo $pais ?>" />
  16. <?php
  17. switch( $_GET['pais']) {
  18. case 1:
  19. include ('registrousuariosespanya.php');
  20. break;
  21. case 2:
  22. include ('registrousuariosportugal.php');
  23. break;
  24. }
  25. ?>
  26. <input type="submit" value=" Enviar datos ">
  27. </form>
  28.  

Notese que el include se ha de hacer dentro del formulario en cuestión para que envíe bien los datos.

Por cierto si no te saliera imprime la variable $sql en pantalla y la copias a ver que consulta es la que hace.
« Última modificación: 27 Julio 2007, 16:50 pm por Sanjuu » En línea


Código
  1. if (pregunta->buscador()==NULL)
  2.     pregunta->formular_pregunta();
  3.  
Maties 360

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Duda con formulario
« Respuesta #15 en: 27 Julio 2007, 20:40 pm »

Muchas gracias a todos, ahora funciona perfectamente^^.
Pero tengo varias dudas...
Como podria hacer para hacer que no se pudieran repetir los registros?¿?

Gracias y Salu2^^
En línea

Sanjuu

Desconectado Desconectado

Mensajes: 86



Ver Perfil
Re: Duda con formulario
« Respuesta #16 en: 28 Julio 2007, 14:12 pm »

Como podria hacer para hacer que no se pudieran repetir los registros?¿?

Cuando recibas un nick (o email, depende el campo que no quieras que se repita), haz una consulta a la bd por ejemplo un COUNT de los registros que contienen ese mail, si te devuelve 0 entonces permites el registro, sino pues lanzas un error
En línea


Código
  1. if (pregunta->buscador()==NULL)
  2.     pregunta->formular_pregunta();
  3.  
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda centrar formulario elementor pro
Desarrollo Web
josquinet 1 3,272 Último mensaje 30 Diciembre 2022, 17:46 pm
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines