Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Sql No reconoce los usuarios

Estas en el tema de Sql No reconoce los usuarios en el foro de Mysql en Foros del Web. Bueno, cuando registro el usuario me dice "registro exitoso" como que si ya lo hubiese creado al user, pero cuando voy a loguear me salta ...
  #1 (permalink)  
Antiguo 20/03/2010, 23:14
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 1 mes
Puntos: 0
Sql No reconoce los usuarios

Bueno, cuando registro el usuario me dice "registro exitoso" como que si ya lo hubiese creado al user, pero cuando voy a loguear me salta que el usuario no existe en la base de datos.

Adjunto ambos codigos.

REGISTRO
Código PHP:
<?
$dbhost
="mysql12.000webhost.com";   
$dbusuario="******";  
$dbpassword="****"
$db="*****"
$conexion mysql_connect($dbhost$dbusuario$dbpassword); 
mysql_select_db($db$conexion); 

function 
quitar($mensaje)
{
$mensaje str_replace("<","<",$mensaje);
$mensaje str_replace(">",">",$mensaje);
$mensaje str_replace("\'"," ",$mensaje);
$mensaje str_replace('\"',"?",$mensaje);
$mensaje str_replace("\\\\","\"",$mensaje);
return 
$mensaje;
}

if(
trim($HTTP_POST_VARS["nick"]) != ''
 
&& trim($HTTP_POST_VARS["email"]) != ''
 
&& trim($HTTP_POST_VARS["nombre"]) != ''
 
&& trim($HTTP_POST_VARS["password"]) != '' )
{
$sql "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
$result mysql_query($sql);
if (
$row =@mysql_fetch_array($result))
{
echo 
"Error, nick escogido por otro usuario";
}
else
{
$sql "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
$sql .= ")";
mysql_query($sql);
echo 
"Registro exitoso!";
}
@
mysql_free_result($result);
}
else
{
echo 
"Debe llenar como minimo los campos de email y password";
}
mysql_close();
?>

LOGIN

Código PHP:
<?
$dbhost
="mysql12.000webhost.com";   
$dbusuario="*****";  
$dbpassword="*****"
$db="*******"
$conexion mysql_connect($dbhost$dbusuario$dbpassword); 
mysql_select_db($db$conexion); 


function 
quitar($mensaje)
{
$mensaje str_replace("<","<",$mensaje);
$mensaje str_replace(">",">",$mensaje);
$mensaje str_replace("\'","'",$mensaje);
$mensaje str_replace('\"'," ",$mensaje);
$mensaje str_replace("\\\\","|",$mensaje);
return 
$mensaje;
}

if(
trim($HTTP_POST_VARS["nick"]) != ''
&& trim($HTTP_POST_VARS["password"]) != '')
{
$nickN quitar($HTTP_POST_VARS["nick"]);
$passN quitar($HTTP_POST_VARS["password"]);

$result mysql_query("SELECT password FROM usuarios WHERE nick='$nickN'");
if(
$row =@mysql_fetch_array($result))
{
if(
$row["password"] == $passN)
{
//90 dias dura la cookie
setcookie("usNick",$nickN,time()+7776000);
setcookie("usPass",$passN,time()+7776000);
?>
Ingreso exitoso, ahora sera dirigido a la pagina principal.
<SCRIPT LANGUAGE="javascript">
location.href = "default.php";
</SCRIPT>
<?
}
else
{
echo 
"Password incorrecto";
}
}
else
{
echo 
"Usuario no existente en la base de datos";
}
@
mysql_free_result($result);
}
else
{
echo 
"Debe especificar un nick y password";
}
mysql_close();
?>

Acá la tabla:

id bigint(7) No auto_increment
nick char(100) latin1_general_ci
password char(100) latin1_general_ci
nombre char(255) latin1_general_ci
email char(100) latin1_general_ci
  #2 (permalink)  
Antiguo 21/03/2010, 08:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Sql No reconoce los usuarios

Dos cosas:
1) Es muy probable que tengas un problema de uso indebido de nombres, ya que estás usando una palabra reservada como parte de los nombres de columnas (password). Normalmente esto se solucionaría (si no puedes cambiar la tabla) encerrando esas palabras entre acentos graves (`):
Código MySQL:
Ver original
  1. INSERT INTO usuarios (nick,`password`,nombre,email) VALUES (valores...)
Código MySQL:
Ver original
  1. SELECT `password` FROM usuarios WHERE nick=valor;

2) Las reglas del foro de bases de datos explicitamente dicen que no se debe poner código de programación aquí. Trata de extraer el SQL y postear sólo el SQL.
Si esto te parece demasiado estricto, te explico: No todos los que participamos de este foro usamos PHP, VB, ASP u otro lenguaje. Hay quienes solamente manejamos SQL porque nos dedicamos a la administración de bases de datos, y no a programar aplicaciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: registro, sql, usuarios
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 01:42.