ildoms
Usuario Novato
Usuario Novato

Necesito ayuda en un login que cree, funciona pero no se que le pasa!

Verán, El loguea bien y define bien el rango del usuario pero cuando se actualiza la pagina el valor de la session se vuelve nulo (Se vuelve nulo mas no que se borra), Lo e probado en varios navegadores y sigue igual :S

lo que mas rabia me da es que este mismo login lo tenia una web que lo tenia alojado en un hosting de pago.

Aquí les dejo el código. Me ayudan?

<?php
session_start();
include("conectar.php");
if(trim($_POST['usuario']) != "" && trim($_POST['password']) != "") {
//variables Filtradas
$usuario = htmlentities(stripslashes(strip_tags($_POST['usuario'])));
$password = htmlentities(stripslashes(strip_tags($_POST['password'])));

$result = mysql_query("SELECT * FROM usuarios WHERE usuario='".$usuario."'");
if(mysql_num_rows($result) > 0){
$row = mysql_fetch_array($result);
if($row['contra'] == md5($password)){
$_SESSION['usuario'] = $row['usuario'];
?>
<body bgcolor="#2B495C" background="imagenes/web/fondo.png">
<p align="center"><b><font face="Tahoma" size="1" color="#FFFFFF">Bienvenido <? echo $_SESSION['usuario']; ?></font></b></p><p align="center"><a href="index.php"><b>
<font face="Tahoma" size="1" color="#FFFFFF">Continuar</font></b></a></p><SCRIPT LANGUAGE="javascript">location.href = "index.php";</SCRIPT>
</body>
<?
}else{
?>
<body bgcolor="#2B495C" background="imagenes/web/fondo.png">
<p align="center"><b><font face="Tahoma" size="1" color="#FFFFFF">¡Contraseña
incorrecta!</font></b></p>
<SCRIPT LANGUAGE="javascript">location.href = "index.php";</SCRIPT>
</body>
<?
}
}else{
?>
<body bgcolor="#2B495C" background="imagenes/web/fondo.png">
<p align="center"><b><font face="Tahoma" size="1" color="#FFFFFF">¡Usuario
incorrecto!</font></b></p>
<SCRIPT LANGUAGE="javascript">location.href = "index.php";</SCRIPT>
</body>
<?
}
}else{
?>
<body bgcolor="#2B495C" background="imagenes/web/fondo.png">
<p align="center"><b><font face="Tahoma" size="1" color="#FFFFFF">¡Debe
especificar un usuario y una contraseña!</font></b></p>
<SCRIPT LANGUAGE="javascript">location.href = "index.php";</SCRIPT>
</body>
<?
}
?>

Feedbak
Usuario habitual
Usuario habitual

Pero, ¿en el hosting de pago funcionaba?

Avatar Image
@man / @woman
@man / @woman

Debajo de $_SESSION['usuario'] = $row['usuario'];

agraga la línea: echo $row['usuario'];

para constatar si el valor de la base de datos llega a cargar la variable de sesión.

ildoms
Usuario Novato
Usuario Novato

Ya lo intente, y si aparece el valor de la consulta.Lo que pasa es que al redireccionar al index todo bien, pero cuando actualizo la web el valor de la session pasa a ser un valor vacío, es decir, nulo pero sin embargo esta sigue creada.:SYa no se ni que intentar...Busque todos los posibles archivos en donde puede que haga una interferencia con la session, y no hay nada como para que pase esto.
Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por ildoms

Busque todos los posibles archivos en donde puede que haga una interferencia con la session, y no hay nada como para que pase esto.

Es porque no la has encontrado.

Incluye en los scripts que se ejecutan ese 'echo ....' (o la variable que corresponda) para determinar dónde se pierde el valor.

ildoms
Usuario Novato
Usuario Novato

este es mi login.php

ildoms
Usuario Novato
Usuario Novato

este es mi login.php

<?phpsession_start();include("conectar.php");$lenguaje = htmlentities(stripslashes(strip_tags($_GET['lang'])));if($lenguaje == 1){$idioma = "espanol";}elseif($lenguaje == 2) {$idioma = "ingles";}else{$idioma = "espanol";}if(file_exists("idioma/".$idioma.".php")) {include("idioma/".$idioma.".php");}else{include("idioma/espanol.php");}if(isset($_SESSION["usuario"])) {$usuario = mysql_fetch_array(mysql_query("SELECT * FROM usuarios WHERE usuario='".$_SESSION['usuario']."'"));$rol = $usuario['rango'];?>                  <div align="center">                    <center>                    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="429" id="AutoNumber17">                      <tr>                        <td width="469">                        <p align="center">                        <b><font size="1" face="Tahoma" color="#C0C0C0">Mis                        mensajes | Monedero | <?                        if($rol == "Administrador" or $rol == "Reportero" or $rol == "Coordinador"){                        echo "Panel Noticias | ";                        }                        if($rol == "Administrador"){                        echo "Panel Admin | ";                        }                        ?>Ajustes | </font><a href="salir.php" style="text-decoration: none"><font size="1" face="Tahoma" color="#C0C0C0">Salir</font></a></b></td>                      </tr>                    </table>                    </center>                  </div><?php}else{?>                  <form action="validar-login.php" method="post" style="display:inline;"><div align="center">                    <center>                    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="429" id="AutoNumber17">                      <tr>                        <td width="159">                        <p align="center"><input type="text" name="usuario" size="20" class="campousuario"></td>                        <td width="160">                        <p align="center">                        <input type="password" name="password" size="20" class="campocontra"></td>                        <td width="150">                        <p align="center">                        <input type="submit" value="<? echo _entrar; ?>" name="entrar" class="campoboton"></td>                      </tr>                    </table>                    </center>                  </div></form><?php}?>

ildoms
Usuario Novato
Usuario Novato

Chicos, es algo raro. Estoy llegando a pensar que son problemas del host.

Miren, cree un archivo de pruebas para ver lo que pasaba, Sin hacer include a ninguna parte para que la session no se "cambie" (cosa rara).

En el validar usuario, cambie la redireccion hacia este archivos de pruebas en que cual puse este código:

<?
 session_start();
 include("conectar.php");
 if(isset($_SESSION['usuario'])) {
 $usuario = mysql_fetch_array(mysql_query("SELECT * FROM usuarios WHERE usuario='".$_SESSION['usuario']."'"));
 echo "Usuario: " . $_SESSION['usuario'] . "<br>";
 echo "Rango: " . $usuario['rango'];echo $usuario;
 }else{
 echo "No estas logueado";
 }
 ?>

y lo que aparece si llega siendo raro, Veran, al momento de que lo redirecciona, Este muestra como resultado de archivo de prueba:

Usuario: Array
Rango: ReporteroArray

y cuando actualizo este se me vuelve nulo, es decir:

Usuario: 
Rango:

¿Alguien que me ayude? gracias.

Es la 1era vez que me pasa esto :S

ildoms
Usuario Novato
Usuario Novato

xD, ya resolvi el problema. Era algo raro pero de igual forma lo menciono. como mi session se llamaba usuario. Yo habia creado una variable llamada de igual forma. No se en que interfería pero si lo hacia. Saludos y gracias por todo.

Avatar Image
@man / @woman
@man / @woman

Recién vuelvo a ver el tema.

Así es, hay que tener cuidado al crear las variables (en los scripts y de sesión), ya que SESSION es un array de variables públicas.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares