Foros del Web » Programando para Internet » PHP »

Inserta campos en blanco

Estas en el tema de Inserta campos en blanco en el foro de PHP en Foros del Web. Hola! Seguramente será una tontería pero no encuentro el fallo. Tengo un formulario que envía los datos del usuario al archivo registro.php. Este toma las ...
  #1 (permalink)  
Antiguo 04/03/2006, 08:30
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 2 meses
Puntos: 0
Inserta campos en blanco

Hola!

Seguramente será una tontería pero no encuentro el fallo.

Tengo un formulario que envía los datos del usuario al archivo registro.php. Este toma las variables y las inserta en una base de datos, pero inserta las variables en blanco, sin embargo los datos por defecto y la id sí que las inserta, así que ¿tal vez el problema es con las veriables que recibe? ¿a qué puede deberse?

Salu2 y gracias!
  #2 (permalink)  
Antiguo 04/03/2006, 08:33
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Es problema al enviar o procesar las variables. Si quieres, deja el código y lo miraremos
  #3 (permalink)  
Antiguo 04/03/2006, 09:07
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 2 meses
Puntos: 0
Formulario:

<html>
<head>
<title>Formulario de registro</title>
</head>
<form action="registro.php">
<big><big>REGISTRO</big></big><br>
NOMBRE QUE USAR&Aacute;S EN EL JUEGO:
<input name="nombre">
<input value="Registrarse" type="submit">
</p>
</form>
<br>
<a href="frm_index.php">Volver</a>
</body>
</html>

registro.php:

Código PHP:
mysql_connect("localhost","usuario","contraseña");

$contenidoselectnombre "SELECT nombre FROM basedatos.usuarios WHERE nombre='$nombre'";
$selectnombre mysql_query($contenidoselectnombre);

$contenidoselectpais "SELECT pais FROM basedatos.usuarios WHERE pais='$pais'";
$selectpais mysql_query($contenidoselectpais);

if(
$row mysql_fetch_array($selectnombre))
    {
        echo 
'ESE USUARIO YA EXISTE, ELIGE OTRO NOMBRE DISTINTO';
        echo 
'<br><br><br><a href="formregistro.html">VOLVER</a>';
    }
    else
    {
        
mysql_db_query("basedatos","insert into usuarios (id,nombre) values (NULL,'$nombre')");

        echo 
'UN E-MAIL TE HA SIDO ENVIADO, PULSA EL ENLACE QUE ENCONTRARÁS EN ÉL PARA ACTIVAR TU CUENTA!!.<BR><BR>NOTA: RECUERDA QUE DEBES TENER LAS COOKIES ACTIVADAS EN TU NAVEGADOR PARA JUGAR';
        echo 
'<br><br><br><br><a href="frm_index.php">VOLVER A A LA PÁGINA PRINCIPAL</a>';
    }
    
mysql_free_result($selectnombre
Resultado: se inserta en el campo id el número que le corresponde y en el campo nombre nada de nada ¿¿??
  #4 (permalink)  
Antiguo 04/03/2006, 09:15
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Al principio de todo, en el registro.php, pon ésta linea:

Código PHP:
<? 
$nombre 
$_GET['nombre'];
?>
No se me ocurre otra cosa...
  #5 (permalink)  
Antiguo 04/03/2006, 09:29
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 2 meses
Puntos: 0
Así sí que funciona!! Muchas gracias!

Salu2!
  #6 (permalink)  
Antiguo 04/03/2006, 09:54
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 2 meses
Puntos: 5
Cita:
<form action="registro.php" method="POST">
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #7 (permalink)  
Antiguo 04/03/2006, 11:01
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
También es cierto. Buena observación, xyyy7

El problema era que pasabas de una página a la otra sin procesar las variables. Entonces o bien podías poner un POST para mandarlas a registro.php, o bien un GET para obtenerlas desde registro.php.

Última edición por david_M_G; 04/03/2006 a las 13:21
  #8 (permalink)  
Antiguo 05/03/2006, 05:38
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 2 meses
Puntos: 0
La cuestión es que e smuy raro porque en otros formularios en los que el <form action="registro.php" method="POST"> estaba puesto sí me recibía las variables sin ponerles $_POST[variable] solo con $variable. Pero al cambiar los archivos a otro host tengo que ponerles el $_POST[variable] para que funcione.

¿Esto a qué se debe? Que coñazo ahora poner todas las variables con el $_POST :P

Gracias!
  #9 (permalink)  
Antiguo 05/03/2006, 07:08
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
El nuevo host tendrá el PHP.INI configurado de otra manera. De todos modos, no entiendo cómo hacías llegar las variables desde el formulario hasta registro.php

No hace falta que pongas $_POST en todas las variables, solo en el formulario

Cita:
<form action="registro.php" method="POST">
  #10 (permalink)  
Antiguo 05/03/2006, 07:31
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 2 meses
Puntos: 0
Ese es el problema que aun poniendo el <form action="registro.php" method="POST"> en el formulario si no le pongo $_POST a las variables en registro.php no las recibe.

Sin embargo esos mismos archivos ejecutados en otro host o en mi pc en local sí que funcionan.

Como es que el nuevo host necesita que se ponga $_POST a las variable? Que raro no?

Salu2!
  #11 (permalink)  
Antiguo 05/03/2006, 09:48
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
En vez de $_POST, ¿no sería un $_GET como te dije en la primera solución?
  #12 (permalink)  
Antiguo 05/03/2006, 11:22
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 2 meses
Puntos: 0
Pero dices poniendo el method="POST" y el $_GET? Entonces estamos en las mismas que al principio que tengo que cambiar todas las variables, además eso creo que es incompatible.

Creo que tendré que hacer lo que me dijiste al principio y sin el method="POST" que sí funcionaba no?

A cambiar decenas de páginas con decenas de variables toca :(((((
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 16:22.