Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No se ingresan los datos

Estas en el tema de No se ingresan los datos en el foro de PHP en Foros del Web. Hola estoy lo que quiero básicamente es un sistema de usuarios pero cada que creo un usuario resulta que en la base de datos no ...
  #1 (permalink)  
Antiguo 23/01/2014, 15:01
 
Fecha de Ingreso: febrero-2008
Mensajes: 119
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta No se ingresan los datos

Hola estoy lo que quiero básicamente es un sistema de usuarios pero cada que creo un usuario resulta que en la base de datos no se guarda, en qué estoy fallando

Este es el formulario para la creación de usuarios:

Código HTML:
<html><body>
<form action="crea_user.php" method="POST">
  DNI: 
    <input type="text" name="login"><br>
Password: <input type="password" name="pass1"><br>
Repite Password: <input type="password" name="pass2"><br>
Nombre: <input type="text" name="nombre"><br>
Apellidos: <input type="text" name="apellidos" size="8"><br>
Fecha De Ingreso Al club: <input type="fechareg" name="apellidos" size="10"><br>
Fecha de tomado de datos: <input type="fechaantro" name="apellidos" size="10"><br>
Peso: <input type="text" name="peso" size="8"><br>
%Grasa: <input type="text" name="grasa" size="8"><br>
Talla: <input type="text" name="talla" size="8"><br>
Brazo Relajado: <input type="text" name="brazorel" size="8"><br>
Brazo Flexionado: <input type="text" name="brazoflex" size="8"><br>
Torax: <input type="text" name="torax" size="8"><br>
Antebrazo: <input type="text" name="antebrazo" size="8"><br>
Cadera: <input type="text" name="cadera" size="8"><br>
Cintura: <input type="text" name="cintura" size="8"><br>
Muslo Medio: <input type="text" name="muslomedio" size="8"><br>
Pantorrilla: <input type="text" name="pantorrilla" size="8"><br>
Triceps: <input type="text" name="triceps" size="8"><br>
Abdominal: <input type="text" name="abdominal" size="8"><br>
Subs: <input type="text" name="subs" size="8"><br>
Muslo Medio 2: <input type="text" name="muslomedio2" size="8"><br>
Pantorrilla 2: <input type="text" name="pantorrilla2" size="8"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="Crear">
</form>
</body></html> 

Y este es el scrpit php que los crea:

Código PHP:
<?
$server
="localhost"
$database="tambocor_miembros";
$dbpass="424595"
$dbuser="tambocor_gian"
/* Comprobamos que no existe un usuario con el mismo login ya registrado */

$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(
mysql_num_rows($result)){
echo 
"El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pass1!=$pass2) {
echo 
"Los passwords deben coincidir<br>";
echo 
'Clica <a href="form.php">aquí</a> para volver al formulario';
} else {
$pass1=crypt($pass2"semilla"); 

/* Encripatmos el password, con la clave "semilla" que debeis sustituirpor la que mas os guste. Hay otros metodos de encriptacion, mirad en php.net si quereis conocerlos. */

$query="INSERT INTO usuarios (login, nombre, apellidos,  password,  fechareg, fechaantro, peso, grasa, talla, brazorel, brazoflex, torax, antebrazo, cadera, cintura, muslomedio, pantorrilla, triceps, abdominal, subs, muslomedio2, pantorrilla2, email) VALUES ('$login','$nombre','$apellidos','$pass1','$fechareg,'$fechaantro,'$peso,'$grasa,'$talla,'$brazorel,'$brazoflex,'$torax,'$antebrazo,'$cadera,'$cintura','$muslomedio','$pantorrilla','$triceps','$abdominal','$subs','$muslomedio2','$pantorrilla2','$email')";

$result=mysql_db_query($database,$query,$link);
if(
mysql_affected_rows($link)){
echo 
"Miembro creado correctamente";
} else {
echo 
"Error creando al miembro";
/* Cierre del else */
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */
/* Cierre del else que corresponde a if(mysql_num_rows...) */
?>
Se supone que después de eso deberia guardarse los datos enviados a la bd pero no se crea ni una sola fila, ya he intentado varias veces y aún no funciona

El usuario de la bd tiene todos los privilegios y cada columna ya esta creada, no sé en que falla.
Este es el comando que ejecuto en SQL para crear la tabla
Código:
CREATE table usuarios (
id TINYINT(4) AUTO_INCREMENT,
nombre TEXT,
apellidos TEXT,
login VARCHAR(40),
password VARCHAR(20),
fechareg VARCHAR(40),
fechaantro VARCHAR(40),
peso VARCHAR(40),
grasa VARCHAR(40),
talla VARCHAR(40),
brazorel VARCHAR(40),
brazoflex VARCHAR(40),
torax VARCHAR(40),
antebrazo VARCHAR(40),
cadera VARCHAR(40),
cintura VARCHAR(40),
muslomedio VARCHAR(40),
pantorrilla VARCHAR(40),
triceps VARCHAR(40),
abdominal VARCHAR(40),
subs VARCHAR(40),
muslomedio2 VARCHAR(40),
pantorrilla2 VARCHAR(40),
email TEXT,
UNIQUE (id) );

PD: Como offtopic, cuando tengo todos mis archivos en el servidor solo se pone "localhost" para conectar al servidor o tengo que poner la dirección larga? Ya que cuando pongo la dirección larga no conecta pero cuando pongo localhost si acepta la conexión
  #2 (permalink)  
Antiguo 23/01/2014, 15:26
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: No se ingresan los datos

ya debuqueaste tu codigo? estas seguro que llega a la parte del insert?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 23/01/2014, 15:36
Avatar de Sidus  
Fecha de Ingreso: enero-2014
Ubicación: Puebla
Mensajes: 32
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: No se ingresan los datos

Después del valúes los campos se escriben de esta forma VALUES (".$login.",'".$nombre."','".$apellidos."','".$pas s1."','".$fechareg."' ... fijate bien en las comillas simples y dobles. si a un persiste tu error , imprime la variable que contiene toda tu consulta echo $query; de esta forma podras visualizar si te esta enviando valores a tu BD.
  #4 (permalink)  
Antiguo 23/01/2014, 16:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 119
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: No se ingresan los datos

Cita:
Iniciado por Sidus Ver Mensaje
Después del valúes los campos se escriben de esta forma VALUES (".$login.",'".$nombre."','".$apellidos."','".$pas s1."','".$fechareg."' ... fijate bien en las comillas simples y dobles. si a un persiste tu error , imprime la variable que contiene toda tu consulta echo $query; de esta forma podras visualizar si te esta enviando valores a tu BD.
Al imprimir $query me inidica que se están guardando campos pero todos estan en blanco, crees que sea un error en mi form.html?

este es mi form mas resumido:

Código HTML:
<html><body>
<form action="crea_user.php" method="POST">
Login: <input type="text" name="login"><br>
Password: <input type="password" name="pass1"><br>
Repite Password: <input type="password" name="pass2"><br>
Nombre: <input type="text" name="nombre"><br>
Apellidos: <input type="text" name="apellidos"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="Crear">
</form>
</body></html> 

Y este es crea_user.php
Código PHP:
<?
$server
="localhost"/* Nuestro server mysql */
$database="tambocor_miembros"/* Nuestra base de datos */
$dbpass="424595"/*Nuestro password mysql */
$dbuser="tambocor_gian"/* Nuestro user mysql */
/* Primero comprovamos que no existe un usuario con el mismo login ya registrado */

$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(
mysql_num_rows($result)){
echo 
"El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pass1!=$pass2) {
echo 
"Los passwords deben coincidir<br>";
echo 
'Clica <a href="form.php">aquí</a> para volver al formulario';
} else {
$pass1=crypt($pass2"semilla"); 

/* Encripatmos el password, con la clave "semilla" que debeis sustituirpor la que mas os guste. Hay otros metodos de encriptacion, mirad en php.net si quereis conocerlos. */

$query="INSERT INTO usuarios (login, nombre, apellidos, password, email) VALUES ('$login','$nombre','$apellidos','$pass1','$email')";

$result=mysql_db_query($database,$query,$link);
if(
mysql_affected_rows($link)){
echo 
"Usuario introducido correctamente";
} else {
echo 
"Error introduciendo el usuario";
/* Cierre del else */
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */
/* Cierre del else que corresponde a if(mysql_num_rows...) */
echo $query;
?>
Pienso que se pierden los valores de las variables en algún momento pero no se en donde
  #5 (permalink)  
Antiguo 23/01/2014, 16:48
 
Fecha de Ingreso: febrero-2008
Mensajes: 119
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: No se ingresan los datos

Cita:
Iniciado por Sidus Ver Mensaje
Después del valúes los campos se escriben de esta forma VALUES (".$login.",'".$nombre."','".$apellidos."','".$pas s1."','".$fechareg."' ... fijate bien en las comillas simples y dobles. si a un persiste tu error , imprime la variable que contiene toda tu consulta echo $query; de esta forma podras visualizar si te esta enviando valores a tu BD.
Muchas gracias por tu ayuda, ya resolvi mi problema, me faltaba nombrar en las variables que deberian ser provenientes del formulario anterior con la sentencia $_POST
  #6 (permalink)  
Antiguo 23/01/2014, 17:15
Avatar de Sidus  
Fecha de Ingreso: enero-2014
Ubicación: Puebla
Mensajes: 32
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: No se ingresan los datos

No es error en el form es en el script php por que estas enviando valores a traves del metodo POST pero te falta recibir esos valores que estas enviando en tu formulario por eso no te esta enviando nada a tu base de datos.
te quedaria a si :

$login=$_POST['login']; (acá obtienes el nombre que le diste a tu caja de texto)
$password=$_POST['lpass2'];
$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$email=$_POST['email'];

y en tu consulta seria algo asi :
$query="INSERT INTO usuarios (login, nombre, apellidos, password, email) VALUES (".$login.",'".$password."','".$nombre."','".$apel lidos."','".$email."') ";

despues imprimes de nuevo la variable $query que contiene tu consulta y te tiene que mostrar
los datos que ingresaste en tus casas de texto.
  #7 (permalink)  
Antiguo 23/01/2014, 17:17
Avatar de Sidus  
Fecha de Ingreso: enero-2014
Ubicación: Puebla
Mensajes: 32
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: No se ingresan los datos

:) que bien que lo resolviste me tarde en contestar

Etiquetas: bases-de-datos-general, mysql, select, sql, tabla
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:37.