Foros del Web » Programando para Internet » PHP »

Problema al iniciar sesion

Estas en el tema de Problema al iniciar sesion en el foro de PHP en Foros del Web. Buenas amigos, tengo el siguiente problema. Tengo el tipico login con una tabla de usuarios. Me funciona todo bien excepto por lo siguiente. Hice un ...
  #1 (permalink)  
Antiguo 22/09/2016, 23:16
 
Fecha de Ingreso: marzo-2013
Mensajes: 23
Antigüedad: 11 años, 1 mes
Puntos: 0
Problema al iniciar sesion

Buenas amigos, tengo el siguiente problema. Tengo el tipico login con una tabla de usuarios. Me funciona todo bien excepto por lo siguiente.
Hice un metodo para cuando alguien trata de entrar con un usuario que ya esta logeado, cierre la sesion del usuario logeado (Guardo el session_id en la base de datos) y crea una nueva sesion. session_id($SeID); session_start(); session_destroy(); session_start();. Mas abajo lleno las variables de sesion y me voy al index. En el index tengo un echo de las variables de sesion, pero me salen que no estan definidas (Si recorde poner session_start() al principio de la pagina ). Si borro session_id($SeID); session_start(); session_destroy(); session_start(); y solo pongo un session_start(); todo funciona bien.
En que me estoy equivocando?, gracias de ante mano.
Código PHP:
Ver original
  1. require('BD.php');
  2.    
  3. if(isset($_POST['submit'])){
  4.  
  5.     $usr = mysql_real_escape_string($_POST['Usuario']);
  6.     $pas = mysql_real_escape_string($_POST['Password']);
  7.     $pas = md5($pas);
  8.    
  9.     $sql = mysql_query("SELECT * FROM usuarios WHERE User='$usr' AND Pass='$pas' LIMIT 1");
  10.    
  11.    
  12.     if(mysql_num_rows($sql) == 1){
  13.         $row = mysql_fetch_array($sql);
  14.         $Usuario1 = $row['User'];      
  15.        
  16.         if( $row['Logeado'] == 0 ){
  17.            
  18.             session_start();       
  19.             $SeID = session_id();  
  20.            
  21.             $Guardar = mysql_query("UPDATE usuarios SET Logeado='1' WHERE User='$Usuario1'");
  22.             $Guardar2 = mysql_query("UPDATE usuarios SET Session_ID='$SeID' WHERE User='$Usuario1'");
  23.             echo "L0";
  24.         }else{ //Por aca abajo tengo el error
  25.        
  26.             $SeID = $row['Session_ID'];
  27.  
  28.             session_id($SeID); 
  29.             session_start();
  30.             session_destroy();         
  31.             session_start();
  32.  
  33.             $SeID = session_id();
  34.             $Guardar = mysql_query("UPDATE usuarios SET Logeado='1' WHERE User='$Usuario1'");
  35.             $Guardar2 = mysql_query("UPDATE usuarios SET Session_ID='$SeID' WHERE User='$Usuario1'");
  36.            
  37.         }
  38.        
  39.         $_SESSION['Nombre'] = $row['User'];
  40.         $_SESSION['Tipo'] = $row['Type'];
  41.         $_SESSION['Logged'] = TRUE;
  42.         $_SESSION['RutLogin'] = $row['Rut'];
  43.         $Rut1 = $_SESSION['RutLogin'];
  44.         $_SESSION['RutDoc']  = $row['Rut'];
  45.         $_SESSION['PassLogin']  = $row['Pass'];
  46.         $_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s");
  47.  
  48.    
  49.        
  50.        
  51.         if( $_SESSION['Tipo'] == "Doctor" ){
  52.        
  53.             $sql2 = mysql_query("SELECT * FROM doctores WHERE Rut='$Rut1' LIMIT 1");
  54.             $row2 = mysql_fetch_array($sql2);
  55.            
  56.             $_SESSION['NombresDocLogin'] = $row2['Nombres'];
  57.             $_SESSION['ApellidosDocLogin'] = $row2['Apellidos'];
  58.             $_SESSION['RutDoc'] = $row2['Rut'];    
  59.  
  60.         }
  61.        
  62.         require('BDCerrar.php');
  63.         header("Location: index.php");
  64.         exit;
  65.        
  66.     }else{
  67.         require('BDCerrar.php');
  68.         header("Location: Login.php?e=1");     
  69.         exit;
  70.     }
  71. }else{
  72.     require('BDCerrar.php');
  73.     header("Location: index.php");
  74.     exit;
  75. }
  #2 (permalink)  
Antiguo 22/09/2016, 23:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al iniciar sesion

Pregunta básica: ¿ya consultas en el manual el uso correcto de cada una de las funciones que mencionas?

Es decir, no entiendo la necesidad de hacer tanta cosa ¿es completamente necesario? ¿está fundamentada tu necesidad lógica de hacerlo así?

Como consejo general te sugiero habilitar al máximo el reporte de errores: no vaya siendo que realmente estés cometiendo un error y no te enteras.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/09/2016, 04:31
 
Fecha de Ingreso: marzo-2013
Mensajes: 23
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Problema al iniciar sesion

Bueno, es que no se como hacer que no se puedan logear 2 personas con la misma cuenta. Lei aca mismo esta solucion que puse (http://www.forosdelweb.com/f18/evitar-usuario-inicie-secion-2-equipos-distintos-con-misma-cuenta-1032222/). Mi idea era que si una persona (Persona1) logea con la cuenta UserA y la Persona2 logea con la misma cuenta UserA, la pagina cierre la sesion de la Persona1.
Lo otro que e leido seria usar cookies, pero nunca las e usado y si niegan el uso de coockies el login se iria al carajo no?

Etiquetas: mysql, select, sql, tabla, usuarios, variable
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:49.