Foros del Web » Programando para Internet » PHP »

PHP OO Problema con Login

Estas en el tema de Problema con Login en el foro de PHP en Foros del Web. Buenos días amigos, tengo una problema en cuestión que no se que sucede, tengo un par de proyectos que he utilizado el mismo script de ...
  #1 (permalink)  
Antiguo 14/05/2013, 09:59
 
Fecha de Ingreso: junio-2006
Mensajes: 17
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Problema con Login

Buenos días amigos, tengo una problema en cuestión que no se que sucede, tengo un par de proyectos que he utilizado el mismo script de autentificación en host distintos, pero mi sorpresa que ahora quiero usar el mismo script en bluehost y no funciona, explico que es lo que pasa:

tengo dos archivos, login.php y comprobar.php, cuando acceso a login.php ingreso los datos de usuario almacenado en mi DB mysql entra en acción comprobar.php donde valida el usuario, los datos si son corrector y si ingreso un campo vacio mostrando los errores correspondientes a cada uno. Pero al rato de loguearme automaticamente me salta como si no hubiera ingresado ningun dato (justo salta a esta linea echo 'Debe especificar un usuario y password';), he realizado pruebas de poner mal el usuario y la contraseña y me bota el mismo mensaje, aunque deberia botar el error "usuario incorrecto o password incorrecto" , las variables del form si pasan .. intente pasarla por GET y si pasaban.

Ahora les dejo el script de los dos archivos a ver si me pueden dar una mano y ver que es lo que sucede, en local funciona al 100% al igual que en otros host.

Login.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Open Services</title>
<style type="text/css">
.centro {
text-align: center;
}
</style>
</head>

<body>

<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="600" border="0" align="center">
<tr>
<td><form action="comprobar.php" method="post">
<table width="600" border="0">
<tr>
<td width="203" rowspan="4"><img src="images/ingreso.jpg" width="190" height="162" /></td>
<td height="36" colspan="2" class="centro"><img src="images/Shape5_fusion_logo.png" width="247" height="96" /></td>
</tr>
<tr>
<td width="166" height="21">Usuario:</td>
<td width="217"><input type="text" name="usuario" size="20" maxlength="20" /></td>
</tr>
<tr>
<td>Contraseña:</td>
<td><input type="password" name="password" size="10" maxlength="10" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top"><input type="submit" value="Ingresar" /></td>
</tr>
</table>
</form></td>
</tr>
</table>



Comprobar.php

<?php
//session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','123456')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('carga')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
// 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($HTTP_POST_VARS["usuario"], ENT_QUOTES));
$password = $HTTP_POST_VARS["password"];
$result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
if($row = mysql_fetch_array($result)){
if($row["password"] == $password){
$_SESSION["k_username"] = $row['usuario'];
echo 'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
echo '<a href="ingreso.php">Ingreso</a></p>';
//Elimina el siguiente comentario si quieres que re-dirigir automáticamente a index.php
//header("Location: ingreso.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();

?>

Saludos y muchas gracias de antemano por su ayuda

Rafa
  #2 (permalink)  
Antiguo 14/05/2013, 10:05
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 15 años, 8 meses
Puntos: 28
Respuesta: Problema con Login

Todavía usando $HTTP_POST_VARS?

Cambialo a $_POST que daña la vista.
  #3 (permalink)  
Antiguo 14/05/2013, 10:21
 
Fecha de Ingreso: junio-2006
Mensajes: 17
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con Login

Cita:
Iniciado por pr0 Ver Mensaje
Todavía usando $HTTP_POST_VARS?

Cambialo a $_POST que daña la vista.
eso puede solucionar el problema?
  #4 (permalink)  
Antiguo 14/05/2013, 10:25
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 15 años, 8 meses
Puntos: 28
Respuesta: Problema con Login

No creo pero tienes que hacerlo igualmente. Estas usando HTTP_POST_VARS que está totalmente obsoleta.

Tu problema me da a mi que es de la sesión, tienes el //session_start(); comentado.

¿Como compruebas si estás autentificado en otras páginas?
  #5 (permalink)  
Antiguo 14/05/2013, 10:28
 
Fecha de Ingreso: junio-2006
Mensajes: 17
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con Login

Cita:
Iniciado por pr0 Ver Mensaje
No creo pero tienes que hacerlo igualmente. Estas usando HTTP_POST_VARS que está totalmente obsoleta.

Tu problema me da a mi que es de la sesión, tienes el //session_start(); comentado.

¿Como compruebas si estás autentificado en otras páginas?
Gracias amigo por responder, si comente session_start(); porque tambien creía que era problema se sesión que no dejaba pasar las variables para la autentificación, pero aun comentandola no pasa nada, es como que las otras sentencias no existen pasa de largo y cae en el error de como si hubiera ingresado campos vacios .. :(
  #6 (permalink)  
Antiguo 14/05/2013, 10:36
 
Fecha de Ingreso: junio-2006
Mensajes: 17
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con Login

Cita:
Iniciado por Chilectro Ver Mensaje
Gracias amigo por responder, si comente session_start(); porque tambien creía que era problema se sesión que no dejaba pasar las variables para la autentificación, pero aun comentandola no pasa nada, es como que las otras sentencias no existen pasa de largo y cae en el error de como si hubiera ingresado campos vacios .. :(
Te cuento que efectivamente era el problema de $_POST ahora me funciona correctamente , se debera a la versión del PHP ? como tu dices que ya es obsoleta capaz no la reconocia.

Gracias por todo
  #7 (permalink)  
Antiguo 14/05/2013, 17:16
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 9 años, 6 meses
Puntos: 28
Respuesta: Problema con Login

no lo creo, se debe a que tienes que actualizarte ...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Última edición por arcanisgk122; 14/05/2013 a las 17:23
  #8 (permalink)  
Antiguo 14/05/2013, 17:31
 
Fecha de Ingreso: abril-2008
Mensajes: 72
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema con Login

wenas compañeros
tengo el mismo problema o parecido
no consigo pasar las variables de sesion de una pagina a otra,
lo e probado en 2 servidores distintos y hace lo mismo , o sea nada, asi que imagino que es algo que yo hago mal pero hasta con estas 2 rutinas tan simples me falla,

la ultima prueba que hice sin respuesta,


prueba1.php
Código PHP:
<? 
session_start
();

 
 
$_SESSION[prueba]='prueba ok'
 
 
?>
  

 <a href="prueba2.php">enviar</a>
prueba2.php
Código PHP:
<?
echo $_SESSION[prueba];
?>

Plisssssssss plisssssssss un alma caritativa que me eche una mano, zanqius


por cierto, se me olvido comentar la Version de PHP 5.2.9

Última edición por eugeniobcn; 14/05/2013 a las 17:39 Razón: version de php
  #9 (permalink)  
Antiguo 15/05/2013, 00:35
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 9 años, 6 meses
Puntos: 28
Respuesta: Problema con Login

ok cuando creas seciones tienes que crear la cooky...
les explico como se hace:

primero a todo documento php que maneje o use variable de sesión tienes que ponerle esto arriba... es lo primero que tiene que aparecer:

Código PHP:
Ver original
  1. <?php
  2. @session_name('MI_SESION');
  3. ?>

después que haces esto tienes que ejecutar en algun php donde se hace la captura de la variable:
Código PHP:
Ver original
  1. $_SESSION['usuario'] = $row['usuario'];

luego para usar la variable guardada tienes que llamarla usando algo como esto:

Código PHP:
Ver original
  1. <?php echo "".$_SESSION['usuario'].""; ?>

espero que aya quedado explicado el como se implementa el uso de "session"

Tu error:

Código PHP:
Ver original 
Te Falto la ARROBA @
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #10 (permalink)  
Antiguo 15/05/2013, 04:40
 
Fecha de Ingreso: abril-2008
Mensajes: 72
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema con Login

ÓTIA
muchas gracias
consegui solucionarlo
solo necesitaba colocar la "@" delante de session_start
lo de ponerle nombre a la sesion creo que no es necesario, por lo menos funciona sin hacerlo
tampoco es necesario colocar el nombre de la variable entre comillas dentro del corchete

muhcas gracias de nuevo, hacia mucho que no programaba en php y ese detalle de la arroba se me olvido , y me estaba volviendo loco

Etiquetas: html, login, mysql, select, usuarios, variables
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 09:29.