Foros del Web » Programando para Internet » PHP »

problema con session

Estas en el tema de problema con session en el foro de PHP en Foros del Web. .... hola amigos del foro .. cuando cierro mi sesion he intento logiarme nuevamente .. el sistema no me reconoce el usuario ni contraseña .. ...
  #1 (permalink)  
Antiguo 07/04/2009, 14:50
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta problema con session

.... hola amigos del foro .. cuando cierro mi sesion he intento logiarme nuevamente .. el sistema no me reconoce el usuario ni contraseña .. de ninguno de los usuarios ..

Código PHP:
<?php
//Por medio de esta función inicializo la sesion
session_start();

//Por medio de esta función destruir la sesion
session_destroy();

//Redireccionamiento
header("Location:index.php");
exit();     
?>
pero si elimino la opcion de cerrar sesion no hay ningun problema ...

que sera .. ??
__________________
"La vida sigue su curso, tú toma parte de ella."
  #2 (permalink)  
Antiguo 07/04/2009, 14:58
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con session

Como haces el login?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/04/2009, 15:07
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta Respuesta: problema con session

asi es como apturo los datos ..

Código PHP:
<form action="../usuario/control_acceso.php" name="login" method="post">
      <
table width="170" border="0" align="center">
        <
tr>
          <
td width="65%"><div align="left" class="tituloazul">
              <
div align="right">Usuario:</div>
          </
div></td>
          <
td width="35%"><input name="usuario" type="text" class="abstract" id="usuario" size="10" maxlength="15" /></td>
        </
tr>
        <
tr>
          <
td><div align="left" class="tituloazul">
              <
div align="right">Contrase&ntilde;a:</div>
          </
div></td>
          <
td><input name="contrasena" type="password" class="abstract" id="contrasena" size="10" maxlength="15" /></td>
        </
tr>
        <
tr>
          <
td colspan="2"><div align="right">
              <
input name="Input2" type="image" src="../img/boton_enviar.png"  align="absbottom"/>
          </
div></td>
        </
tr>
        <
tr>
          <
td colspan="2"><div align="right"><a href="../usuario/olvido_contrasena.php" class="ciudades"><strong>olvido su contrase&ntilde;?</strong></a></div></td>
        </
tr>
        <
tr>
          <
td colspan="2"><div align="left" class="abstract">
              <
div align="right" class="Estilo3"><a href="../registro/procedimiento.php"><img src="../img/botonRegistrePagoMini.png" width="95" height="23" border="0"></a></div>
          </
div></td>
        </
tr>
      </
table>
    </
form

este el control de acceso
Código PHP:
<?php 

//Archivo de conexion
require("../connect.php");

//Define checkLogin($login, $password)

    
$usuario $_POST['usuario'];
    
$contrasena $_POST['contrasena'];

    
$registros "IdUsuario, nombres, apellidos, email, kind, usuario, contrasena";
    
$where "usuario = '".$usuario."' AND contrasena = '".$contrasena."'";
    
$customer $sql->seleccionar('regusuario'$registros$where);
             
    if(
$customer)
        {
         
$customer// devuelve un arreglo si  la autenticación es verdadera
    
}else
        {
         
$customer 0// devuelve 0 si  la autenticación es falsa
    
}//Fin del if

    
if($customer)
    {
        
setcookie ("login_user"$_POST['usuario'], time()+3600);
        
setcookie ("login_pass"$_POST['contrasena'], time()+3600);

        include(
"../usuario/index.php");
    }else{
        include(
"../usuario/error2.php");
    }
//Fin del else
?>

Ya probe y en el control de acceso no se genera el error .. el error esta es aqui
en el Index

Código PHP:
<?php 

//Archivo de conexion
require("../connect.php");

//Por medio de esta función inicializo la sesion
session_start();

// Registro de variables de sesión

    
$_SESSION[IdUsuario] = $idusuario;
    
$_SESSION[usuario] = $usuario;
    
$_SESSION[contrasena] = $contrasena;

if(!
$_SESSION[usuario] || !$_SESSION[contrasena])
{
    print 
"<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=error2.php\">";
}else
{
    
// objeto de visualización de Mensajes, recibe 0 si es Admin, y el ID si es reseller

    
$regusuario $sql->seleccionar("regusuario""*""IdUsuario =".$idusuario); 
?>

?????
__________________
"La vida sigue su curso, tú toma parte de ella."
  #4 (permalink)  
Antiguo 07/04/2009, 16:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con session

En tu control de acceso incluye session_start(); debajo de <?php y modifica lo siguiente:

Código php:
Ver original
  1. if($customer) {
  2.         // Aqui crea tus variables de sesion
  3.  
  4.         setcookie ("login_user", $_POST['usuario'], time()+3600);
  5.         setcookie ("login_pass", $_POST['contrasena'], time()+3600);
  6.  
  7.         include("../usuario/index.php");
  8.     }else  {
  9.         $customer = 0; // devuelve 0 si  la autenticación es falsa
  10.         $_SESSION = array(); // Limpia la sesion
  11.         include("../usuario/error2.php");
  12.     }

Nota: En el index tienes varios errores:

Código:
    $_SESSION[IdUsuario] = $idusuario;
    $_SESSION[usuario] = $usuario;
    $_SESSION[contrasena] = $contrasena;
1- De preferencia session_start(); debe estar antes de cualquier otro codigo.
2- Las variables de sesion debes crearlas en el control de acceso, tomando nota de los siguientes dos puntos.
a)- Cuando uses matriz asociativa, encierra los indices entre comillas, dobles o sencillas: $_SESSION['contrasena']
b)- De donde obtienes $idusuario, $usuario y $contrasena ?
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 08/04/2009, 10:02
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: problema con session

Gracias triby asi debe el codigo

control de acceso
Código PHP:
<?php 

//Por medio de esta función inicializo la sesion
session_start();

//Archivo de conexion
require("../connect.php");

//Define checkLogin($login, $password)

    
$usuario $_POST['usuario'];
    
$contrasena $_POST['contrasena'];

    
$registros "IdUsuario, nombres, apellidos, email, kind, usuario, contrasena";
    
$where "usuario = '".$usuario."' AND contrasena = '".$contrasena."'";
    
$customer $sql->seleccionar('regusuario'$registros$where);

   if(
$customer) {
      
// Aqui crea tus variables de sesion
      
      
setcookie ("usuario"$_POST['usuario'], time()+3600);
      
setcookie ("contrasena"$_POST['contrasena'], time()+3600);

      include(
"../usuario/index.php");
   }else  {
      
$customer 0// devuelve 0 si  la autenticación es falsa
      
$_SESSION = array(); // Limpia la sesion
      
include("../usuario/error2.php");
    }
//Fin del else
?>
Index
Código PHP:
<?php 

//Por medio de esta función inicializo la sesion
session_start();

//Archivo de conexion
require("../connect.php");

// Registro de variables de sesión

if(!$_SESSION['usuario'] || !$_SESSION['contrasena'])
{
    print 
"<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=error2.php\">";
}else
{
    
// objeto de visualización de Mensajes, recibe 0 si es Admin, y el ID si es reseller

    
$regusuario $sql->seleccionar("regusuario","*","usuario =".$_SESSION['usuario']." AND $contrasena=".$_SESSION['contrasena']); 
?>

Pero nada .. no valida .. no entra al index .. parece que el valor de las variables de sesion no los pasa ..
__________________
"La vida sigue su curso, tú toma parte de ella."
  #6 (permalink)  
Antiguo 08/04/2009, 12:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con session

En el ejemplo que te puse, reemplaza la siguiente linea:

// Aqui crea tus variables de sesion

Por tus variables de sesion, algo asi como:
$_SESSION['id'] = $id_de_usuario;
$_SESSION['nombre'] = $nombre_de_usuario;

Solo adaptalo a tus variables y requerimientos.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 08/04/2009, 16:22
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
De acuerdo Respuesta: problema con session

... gracias triby ... quedo muy bien ..

__________________
"La vida sigue su curso, tú toma parte de ella."
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 21:19.