PHP - como evitar varias sesiones en una misma maquina

 
Vista:
sin imagen de perfil

como evitar varias sesiones en una misma maquina

Publicado por jhean carlos (114 intervenciones) el 09/08/2013 00:24:34
como estan quisiera saber como puede evitar que dos usuarios o mas ingresen a la misma maquina con diferentes usuarios al mismo sistema.

tengo ya diseñado una session pero quisiera saber si se puede modificar aca o hay otras opciones
AL INGRESAR A MI INDEX DE LOGIN INGRESO USUARIO Y PASSWORD LUEGO SE DIRECCIONA CON POST PARA HABILITAR LA SESSION CON ESAS VARIABLES Y UTILIZARLO EN TODAS MIS VENTANAS.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
include("coneccion_bd.php");
$dato1=$_POST['username'];
$dato2=$_POST['password'];
$registros=mysql_query("select *
					   from usuarios
					   where login='$dato1'and password='$dato2' and vigente='SI'" )or die("error: ".mysql_error());
$nfilas=mysql_num_rows($registros);
if($nfilas!=0)
{
			$registro=mysql_fetch_row($registros);
			session_start();
			$_SESSION['codigo']				=$registro[0];
			$_SESSION['nombre']				=$registro[1];
			$_SESSION['apellido_pat']		=$registro[2];
			$_SESSION['apellido_mat']		=$registro[3];
			$_SESSION['login_u']			=$registro[4];
			$_SESSION['password_u']			=$registro[5];
			$_SESSION['tipo']				=$registro[6];
			$_SESSION['tramo']				=$registro[7];
			$_SESSION['nom_completo']		=$registro[8];
			$_SESSION['departamento']		=$registro[9];
			$_SESSION['cargo']				=$registro[10];
			$_SESSION['ACT']=$dato1;
 
			switch($_SESSION['tipo'])
			{
				case 'USUARIO':
					header("Location:menu_usuario.php");
					break;
				case 'ADMINISTRADOR':
					header("Location:menu_admin.php");
					break;
				case 'ADMIN-SIST':
					header("Location:menu_sist.php");
					break;
				case 'INVITADO':
					header("Location:menu_4.php");
					break;
			}
}
else
{
	$registros=mysql_query("select *
					   from usuarios
					   where login='$dato1'and password='$dato2' and vigente='NO'" )or die("error: ".mysql_error());
	$nfilas=mysql_num_rows($registros);
	if($nfilas!=0)
	{
		header("Location:../blocked.html");
	}
	else
	{
		header("Location:../index.html");
	}
}
mysql_close($conexion);
?>


ESPERO QUE ME PUEDAN DAR UNA MANITO SI HAY ALGO QUE NO SE ENTIENDA O FALTE ESPERO QUE ME DIGAN
GRACIAS!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como evitar varias sesiones en una misma maquina

Publicado por xve (6935 intervenciones) el 09/08/2013 11:17:34
Hola jhean, la verdad es que los servidores web no están pensados para ello, sino para todo lo contrario... soportar el máximo de usuarios simultáneamente.

No se muy bien como puedes controlarlo, la ya que no sabes exactamente cuando un usuario ha finalizado la sesión.

Las variables de sesión, son por usuario, por lo que no las puedes compartir entre diferentes usuarios.

La única manera que se me ocurre, es que utilices un archivo de texto o una base de datos donde indiques que hay un usuario conectado, pero no se muy bien como sabrás si un usuario sale de tu web si cierra el navegador, o se queda sin conexión de red.

Porque razón no quieres que se conecten dos o mas usuarios simultáneamente?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como evitar varias sesiones en una misma maquina

Publicado por jhean carlos (114 intervenciones) el 09/08/2013 15:30:36
bueno creo que no me explique bien todos pueden ingresar al servidor no importa la cantidad de personas para hacer las consultas necesarias.

pero cuando un usuario en un entorno web ingresa a su sesion otro podria ingresar por alguna razon en la misma maquina y abrir el mismo sistema que ya tiene un usuario activa su session

Lo que me refiero mi sistema esta diseñado para que un usuario x ingrese a una region o departamento que solo el ve y no le interesa ver otros departamentos.

lo que note es cuando un usuario x ingresa a su departamento que le corresponde va verificando modificado etc.

otro usuario puede entrar en la misma maquina por x razones ahi tenemos 2 sesiones activas y eso afecta a mi sesion de usuario ya no sabe que departamento tiene que mostrar y las modificaciones se rrayan en el sistema.

por eso quiero evitar que un usuario ingrese a la misma maquina ya que otro usuario ya esta en el sistema.

quisiera que salga un aviso que diga, ya hay otro usuario con su sesión abierta, tiene que cerrar lo para ingresar nuevamente.

eso seria lo que necesito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como evitar varias sesiones en una misma maquina

Publicado por xve (6935 intervenciones) el 10/08/2013 08:50:26
Hola Jhean, haber si te he entendido bien...

Es como si yo entro a mi correo de gmail, y dejo mi ordenador con la sesión iniciada, y posteriormente entra otro usuario. Ese nuevo usuario, visualizara mis correo de gmail, ya que no he cerrado la sesión.

El problema, es que el ordenador no sabe que persona esta en frente con el teclado, por lo que no podrás mostrar el mensaje al que haces referencia, no?

Si en un ordenador, con un navegador, un usuario inicia sesión, tu creas las variables de $_SESSION.
Si otro usuario hace login en la misma maquina con el mismo navegador, se reemplaza el contenido de las variables de $_SESSION.

No se muy bien si te sirve... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar