Foros del Web » Programando para Internet » PHP »

Problema de sesiones en mi codigo...

Estas en el tema de Problema de sesiones en mi codigo... en el foro de PHP en Foros del Web. Creo que tengo un problema con las sesiones... pero el no puedo ver donde esta el error. Cuando pongo el nombre de usuario y pass ...
  #1 (permalink)  
Antiguo 03/07/2003, 09:19
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 16 años, 1 mes
Puntos: 2
Mensaje Problema de sesiones en mi codigo...

Creo que tengo un problema con las sesiones...
pero el no puedo ver donde esta el error.

Cuando pongo el nombre de usuario y pass correctos el script anda bien pero cuando lo pongo mal el script va hacia index2.php cuando deberia ir a index.php?errorusuario = si

aqui esta el codigo (index2.php y en index.php esta el formulario para logearme.....)


Código PHP:
<?php
session_start
();            //Inicio de Sesion

/*
En este bloque verifico si hay una sesion creada, si es cierto conpruebo que la variable aut
este y sea 'si' y asigno 'si' a la variable autentificado. De otro modo asigno 'no' y me fijo si
el script fue llamado desde el formulario.
*/

if(isset($_SESSION["aut"])){
      if (
$_SESSION["aut"] == "si"){                        
      
$autentificado "si";
      }
}else{
      
$autentificado "no";
      if(!isset(
$_POST["from_form"])){
      
header("Location: index.php"); //Si no viene desde el form lo mando de vuelta
      
exit;
      }
}

if (
$autentificado == "no"){
$usuario $_POST["nusuario"];
$contrasena $_POST["password"];
require (
'conexion.con');    //Archivo con configuracion de la BD
$query "SELECT * FROM usuarios WHERE nombre_usuario = '".$usuario."' and password = '".$contrasena."'"
$rs mysql_query($query);

if (
$row mysql_fetch_array($rs)){
    if (
$row["nombre_usuario"] == $usuario AND $row["password"] == $contrasena){
    
session_register("aut"); 
    
$_SESSION["aut"] = "si";
    
header("Location: index2.php"); 
    exit;
    }else{ 
    
//si no existe lo mando otra vez a la portada
    
header("Location: index.php?errorusuario=si"); 
    exit;
    }

mysql_free_result($rs); 
mysql_close(); 
}elseif (
$autentificado == "si"){

session_destroy();        //Elimino todo rastro de session

echo <<< HTML
<head>
}
?>
uso la propagacion automatica del SID

Si alguien puede ver que pasa se lo agradezco....

JmN
  #2 (permalink)  
Antiguo 03/07/2003, 11:37
Avatar de ProgramacionWeb  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona
Mensajes: 176
Antigüedad: 14 años, 6 meses
Puntos: 2
El unico problema que veo es el caso de dejar los campos vacíos:

if ($row["nombre_usuario"] == $usuario AND $row["password"] == $contrasena){

Esto seria cumplido, por lo que tendrias que poner:

if ($row["nombre_usuario"] == $usuario AND $row["password"] == $contrasena AND $usuario != ''){
__________________
Foros en los que participo:
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 14:04.