Foros del Web » Programando para Internet » PHP »

error! en sistema de login

Estas en el tema de error! en sistema de login en el foro de PHP en Foros del Web. hola; buen día. podrian checkear este codigo? es un sistema de login que no reconoce la query arroja este error; Cita: Warning: mysql_fetch_array() expects parameter ...
  #1 (permalink)  
Antiguo 29/01/2010, 09:00
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
error! en sistema de login

hola; buen día.

podrian checkear este codigo?

es un sistema de login que no reconoce la query

arroja este error;


Cita:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\xampp\htdocs\pruabaphp\zenkyu\validar_usu ario4.php on line 33
Usuario no existente en la base de datos
Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\xampp\xampp\htdocs\pruabaphp\zenkyu\validar_usu ario4.php on line 52



..les envío el codigo.


registro.php

Cita:
<?php
$query = "INSERT INTO usuarios (nombre, nombreusuario, contrase, apellidos, email) VALUES('$nombre','$username','$password','$apellid os','$email')";
mysql_query($query) or die(mysql_error());
echo "<center>El usuario <strong>$username</strong> ha sido registrado de manera satisfactoria.</center>";
echo "<center>Pincha en login para loguearte.</center>";

?>


inlogin.php:

Cita:
<form action="validar_usuario4.php" method="post">

<div class="link">Nombre_Usuario:
<input type="text" name="nombreusuario" size="15" maxlength="15" /></div>

<div class="link">password:
<input type="password" name="contrase" size="15" maxlength="15" /></div>
<div align="center"><p></p>
<button type="submit" id="submit" name="submit">
<span class="overmarked">
<span>Enviar</span>
</span>
</button>
</div>
</form>



validar_usuario4.php


Cita:
<?php
session_start();

?>
//aqui ya realize la conex [ ]

<?php
function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($_POST["nombreusuario"]) != "" && trim($_POST["contrase"]) != "")
{
// Puedes utilizar la funcion para eliminar algun caracter en especifico
//$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
//$password = $HTTP_POST_VARS["password"];
// o puedes convertir los a su entidad HTML aplicable con htmlentities
$usuario = strtolower(htmlentities($_POST["nombreusuario"], ENT_QUOTES));
$password = $_POST["contrase"];
$result = mysql_query('SELECT nombre, nombreusuario, contrase, FROM usuarios WHERE nombreusuario=\''.$usuario.'\'');


if($row = mysql_fetch_array($result)){

if($row["contrase"] == md5($password)){
$_SESSION["k_username"] = $row['nombreusuario'];
echo 'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
echo '<a href="ztodo.php">Index</a></p>';

?>
<SCRIPT LANGUAGE="javascript">
location.href = "ztodo.php";
</SCRIPT>

<?php
}else{
echo 'Password incorrecto';
}
}else{
echo 'Usuario no existente en la base de datos';
}
mysql_free_result($result);
}else{
echo 'Debe especificar un usuario y password';
}
mysql_close();
?>
  #2 (permalink)  
Antiguo 29/01/2010, 09:04
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: error! en sistema de login

Aqui hay error:

Código PHP:
Ver original
  1. $result = mysql_query('SELECT nombre, nombreusuario, contrase, FROM usuarios WHERE nombreusuario=\''.$usuario.'\'');

Ponlo asi:

Código PHP:
Ver original
  1. $result = mysql_query("SELECT nombre, nombreusuario, contrase FROM usuarios WHERE nombreusuario='".$usuario."'");
  #3 (permalink)  
Antiguo 29/01/2010, 09:05
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: error! en sistema de login

El error que te da es porque no encuentra resultados en la base de datos... asi que el problema debe estar en el registro de usuarios, donde tienes el código de registro?

Jurs, se me pasó, razón tienes Vun.
__________________
Novato hablando, corregir si es necesario...
  #4 (permalink)  
Antiguo 29/01/2010, 09:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: error! en sistema de login

Avanzamos!!!!

ahora sólo dice:


password incorrecto.!
cuando en realidad esta ok!
para mi que es el md5 y su lectura, de la query hacia la bd.
pero no encuentro el error.
he probado con todo.
  #5 (permalink)  
Antiguo 29/01/2010, 09:24
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: error! en sistema de login

Justo antes de esto:
Código PHP:
Ver original
  1. if($row["contrase"] == md5($password)){

Escribe esto:

Código PHP:
Ver original
  1. echo $row["contrase"]." -- ".md5($password)." --";

Debugeamos un poco para ver que es lo que falla! fijate porque es SEGURO que van a ser valores distintos...
  #6 (permalink)  
Antiguo 29/01/2010, 09:31
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: error! en sistema de login

f561aaf6ef0bf14d4208 -- f561aaf6ef0bf14d4208bb46a4ccb3ad --Password incorrecto


y como?
y que falla?
  #7 (permalink)  
Antiguo 29/01/2010, 09:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: error! en sistema de login

Parece que en tu base de datos, no le otorgaste el tamaño correcto para ingresar datos. Se corto la información hasta el 8.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 29/01/2010, 09:36
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: error! en sistema de login

varchar
20
none
utf8
  #9 (permalink)  
Antiguo 29/01/2010, 09:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: error! en sistema de login

Ahí tienes el problema, estás permitiendo 20 carácteres solamente. Haz que sean más carácteres.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 29/01/2010, 09:37
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: error! en sistema de login

varchar
20
none
utf8



pasara 2 veces por md5,creo.
  #11 (permalink)  
Antiguo 29/01/2010, 11:44
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: error! en sistema de login

Cuando guardas una cadena MD5 debe de ser minimo 32 caracteres, ponlo como varchar de 40 :)
__________________
٩(͡๏̯͡๏)۶ || ٩(͡๏̯͡๏)۶
  #12 (permalink)  
Antiguo 29/01/2010, 11:50
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: error! en sistema de login

Pero si el campo de contraseñas solo guarda cadenas encriptadas con md5, la cual genera 32 caracteres, no es necesario que el campo sea varchar 40, con 32 es suficiente
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #13 (permalink)  
Antiguo 29/01/2010, 12:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: error! en sistema de login

solucionado.

gracias a todos. y todas.
  #14 (permalink)  
Antiguo 29/01/2010, 14:46
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: error! en sistema de login

Cita:
Iniciado por spider_boy Ver Mensaje
Pero si el campo de contraseñas solo guarda cadenas encriptadas con md5, la cual genera 32 caracteres, no es necesario que el campo sea varchar 40, con 32 es suficiente
Más vale que sobre que no que falte
__________________
Novato hablando, corregir si es necesario...
  #15 (permalink)  
Antiguo 29/01/2010, 14:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: error! en sistema de login

Cita:
Iniciado por dasuve Ver Mensaje
Más vale que sobre que no que falte
Para base de datos pequeña eso no es un problema, pero para base de datos enormes, puede ocupar mucho espacio el tener reservado 8 caracteres de más.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 29/01/2010, 14:58
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: error! en sistema de login

hummm ya que abres el tema, cuando asignas el valor al campo, estás guardando un espacio en la memoria de ese tamaño entonces? Por eso lo mejor es asignar el tamaño justo??
__________________
Novato hablando, corregir si es necesario...
  #17 (permalink)  
Antiguo 29/01/2010, 15:13
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: error! en sistema de login

Yo había hecho una pregunta similar y mira lo que me indicaron
Cita:
Iniciado por Huesos52
Cita:
Iniciado por abimaelrc
Qué importancia tiene declarar el tamaño de la columna, ya que por ejemplo yo he hecho columnas que llevan solo nombres pequeños pero le he asignado tamaños grandes, por ejemplo, una columna que posiblemente el nombre más grande tiene 10 caracteres la he hecho con varchar(100), entonces me surge la pregunta que importancia tiene yo asignarle un numero más pequeño.
Para pequeños sistemas, la importancia es muy poca. Es mejor ser generoso en el tamaño de las columnas. Pero si te enfrentas a un sistema muy robusto con gran flujo de datos, es muy necesario realizar un dimensionamiento adecuado de la base de datos. Si tenés un varchar(100) y solo usas 10, estas ocupando un espacio mayor al requerido y si multiplicas esos "cunchos" en millones de registros verás que los espacios de los discos de almacenamiento van a ocupar mucho espacio inncesesariamente.
Mira esto
http://dev.mysql.com/doc/refman/5.0/...ing-types.html
y ten en cuenta el espacio que conlleva declarar cada tipo de dato. (storage required)
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #18 (permalink)  
Antiguo 29/01/2010, 19:20
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: error! en sistema de login

Pues entonces mejor comenzar con buenas costumbres desde ya, sino luego nos veremos enfrentados a sistemas grandes y actuaremos de acuerdo a malas costumbres que adquirimos hace mucho . Pero es solo mi opinión.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

Etiquetas: login, sitemap
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:30.