Foros del Web » Programando para Internet » PHP »

Mi base de datos no guarda informacion

Estas en el tema de Mi base de datos no guarda informacion en el foro de PHP en Foros del Web. Hola, resulta que he conseguido la programación para poder generar usuarios y contraseñas dentro de mi sitio web y realmente es bueno sin embargo tengo ...
  #1 (permalink)  
Antiguo 05/01/2009, 00:02
 
Fecha de Ingreso: enero-2009
Mensajes: 12
Antigüedad: 15 años, 3 meses
Puntos: 0
Exclamación Mi base de datos no guarda informacion

Hola, resulta que he conseguido la programación para poder generar usuarios y contraseñas dentro de mi sitio web y realmente es bueno sin embargo tengo un pequeño problema y es que cuando reviso mi base de datos (mysql), no consigo obtener los siguientes datos (full_name y user_name) es decir estas dos columnas se quedan en blanco.

Puedo colocar el codigo aquí ?

aca va la primera parte de el código de la página register.php

<?php
session_start();


include ('dbc.php');


if ($_POST['Submit'] == 'Register')
{
if (strlen($_POST['email']) < 5)
{
die ("Incorrect email. Please enter valid email address..");
}
if (strcmp($_POST['pass1'],$_POST['pass2']) || empty($_POST['pass1']) )
{
//die ("Password does not match");
die("ERROR: Password does not match or empty..");

}
if (strcmp(md5($_POST['user_code']),$_SESSION['ckey']))
{
die("Invalid code entered. Please enter the correct code as shown in the Image");
}
$rs_duplicates = mysql_query("select id from users where user_email='$_POST[email]'");
$duplicates = mysql_num_rows($rs_duplicates);

if ($duplicates > 0)
{
//die ("ERROR: User account already exists.");
header("Location: register.php?msg=ERROR: User account already exists..");
exit();
}




$md5pass = md5($_POST['pass2']);
$activ_code = rand(1000,9999);
$server = $_SERVER['HTTP_HOST'];
$host = ereg_replace('www.','',$server);
mysql_query("INSERT INTO users
(`user_email`,`user_pwd`,`country`,`joined`,`activ ation_code`,`full_name`)
VALUES
('$_POST[email]','$md5pass','$_POST[country]',now(),'$activ_code','$_POST[full_name]')") or die(mysql_error());

$message =
"Thank you for registering an account with $server. Here are the login details...\n\n
User Email: $_POST[email] \n
Password: $_POST[pass2] \n
Activation Code: $activ_code \n
____________________________________________
*** ACTIVATION LINK ***** \n
Activation Link: http://$server/activate.php?usr=$_POST[email]&code=$activ_code \n\n
_____________________________________________
Thank you. This is an automated response. PLEASE DO NOT REPLY.
";

mail($_POST['email'] , "Login Activation", $message,
"From: \"Auto-Response\" <notifications@$host>\r\n" .
"X-Mailer: PHP/" . phpversion());
unset($_SESSION['ckey']);
echo("Registration Successful! An activation code has been sent to your email address with an activation link...");

exit;
}

?>

Última edición por loschapines; 05/01/2009 a las 00:21
  #2 (permalink)  
Antiguo 05/01/2009, 10:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Mi base de datos no guarda informacion

Tema trasladado a PHP.

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #3 (permalink)  
Antiguo 05/01/2009, 17:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mi base de datos no guarda informacion

No veo donde estas insertando el valor de user_name
Código PHP:
mysql_query("INSERT INTO users
(`user_email`,`user_pwd`,`country`,`joined`,`activ ation_code`,`full_name`)
VALUES
('$_POST[email]','$md5pass','$_POST[country]',now(),'$activ_code','$_POST[full_name]')"
) or die(mysql_error()); 
Y antes de isertar el registro es conveniente que verifiques el contenido de cada variable, si insertas directo desde $_POST tu base de datos sera muy vulnerable.

Cuando incluyes un elemento de array dentro de una cadena lo mas correcto es hacerlo entre llaves {} y el indice entre comillas simples:
Código PHP:
$cadena "('{$_POST['email']}', '{$_POST['full_name']}')"
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 05/01/2009, 22:58
 
Fecha de Ingreso: enero-2009
Mensajes: 12
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Mi base de datos no guarda informacion

muchisimas gracias por tu respuesta, realize los cambios que me sugeriste pero aún no consigo obtener los datos de (full_name y user_name), aca esta el código con los cambios


<?php
session_start();


include ('dbc.php');


if ($_POST['Submit'] == 'Register')
{
if (strlen($_POST['email']) < 5)
{
die ("Incorrect email. Please enter valid email address..");
}
if (strcmp($_POST['pass1'],$_POST['pass2']) || empty($_POST['pass1']) )
{
//die ("Password does not match");
die("ERROR: Password does not match or empty..");

}
if (strcmp(md5($_POST['user_code']),$_SESSION['ckey']))
{
die("Invalid code entered. Please enter the correct code as shown in the Image");
}
$rs_duplicates = mysql_query("select id from users where user_email='$_POST[email]'");
$duplicates = mysql_num_rows($rs_duplicates);

if ($duplicates > 0)
{
//die ("ERROR: User account already exists.");
header("Location: register.php?msg=ERROR: User account already exists..");
exit();
}




$md5pass = md5($_POST['pass2']);
$activ_code = rand(1000,9999);
$server = $_SERVER['HTTP_HOST'];
$host = ereg_replace('www.','',$server);
mysql_query("INSERT INTO users
(`user_email`,`user_name`,`user_pwd`,`country`,`jo ined`,`activation_code`,`full_name`)
VALUES
('{$_POST[email]}','{$_POST[user_name]}','$md5pass','{$_POST[country]}',now(),'$activ_code','{$_POST[full_name]}')") or die(mysql_error());

$message =
"Thank you for registering an account with $server. Here are the login details...\n\n
User Email: $_POST[email] \n
Password: $_POST[pass2] \n
Activation Code: $activ_code \n
____________________________________________
*** ACTIVATION LINK ***** \n
Activation Link: http://$server/activate.php?usr=$_POST[email]&code=$activ_code \n\n
_____________________________________________
Thank you. This is an automated response. PLEASE DO NOT REPLY.
";

mail($_POST['email'] , "Login Activation", $message,
"From: \"Auto-Response\" <notifications@$host>\r\n" .
"X-Mailer: PHP/" . phpversion());
unset($_SESSION['ckey']);
echo("Registration Successful! An activation code has been sent to your email address with an activation link...");

exit;
}

?>
<link href="styles.css" rel="stylesheet" type="text/css">
<?php if (isset($_GET['msg'])) { echo "<div class=\"msg\"> $_GET[msg] </div>"; } ?>
  #5 (permalink)  
Antiguo 06/01/2009, 13:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mi base de datos no guarda informacion

1- No veo las comillas simples en el indice de las variables:
"... ('{$_POST[email]}', '{$_POST[user_name]}', ...";

"... ('{$_POST['email']}', '{$_POST['user_name']}', ...";

2- Valida toda la informacion antes de insertarla en la base de datos, no veo en tu script donde validas si user_name y full_name estan vacios o tienen determinada longitud.
__________________
- León, Guanajuato
- GV-Foto
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 10:54.