Foros del Web » Programando para Internet » PHP »

sesiones php

Estas en el tema de sesiones php en el foro de PHP en Foros del Web. Bueno perdon que moleste de nuevo pero creo que tengo un problema saben hago un pequeño sistema web y para acceder a el hago que ...
  #1 (permalink)  
Antiguo 25/02/2010, 09:59
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
sesiones php

Bueno perdon que moleste de nuevo pero creo que tengo un problema saben hago un pequeño sistema web y para acceder a el hago que se loguen y comienzen una session por lo que averigue por ahiy viendo manuales realice la codificacion ahora bien cual es mi problema que al loguear al usuario lo busco en una BD y obtengo sus datos y los mando por la session para poder recuperarlos despues en los lugares que necesite esa informacion el problema es que un mismo usuario puede tener dos opciones como usuario simple o como un colaborador que modifica o hace registros nuevos.
Cuando ese usuario u otro ingresa al registro con el mismo nivel aparece la info del otro usuario y eso es un problema.
A continuacion coloco el código y haber si alguien me puede ayudar con esto me esta matando:
index.php
Código PHP:
<center><h1>Autentificación para Ingresar</h1> </center>
<form name="form" id="third" class="niceform" action="control.php" method="POST"> 
<? if ($_GET["errorusuario"]=="si"){?> 
<h2>Datos incorrectos</h2>
<? }else{?> 
<h2>Introduce tu clave de acceso</h2>
<? }?>
 Usuario :
<input type="Text" name="usuario" size="15" maxlength="50">
Password :
<input type="password" name="contrasena" size="12" maxlength="50"> <br><br>
<input type="Submit" class="buttonSubmit" value="ENTRAR">
</form>
control.php
Código PHP:
<? 
  
include("conectar.php");
  
$link=Conectarse();
  
$a=$_POST["usuario"];
  
$b=$_POST["contrasena"];
  
$result=mysql_query("select nombres,pass,tipo_usuario,paterno,materno,email from usuarios WHERE nombres='$usuario' and pass='$contrasena'",$link);
  while(
$row mysql_fetch_array($result)) 
  {
     
$uno=$row["nombres"];$dos=$row["pass"];$tres=$row["tipo_usuario"];
     
$cuatro=$row["paterno"];$cinco=$row["materno"];$seis=$row["email"];          
  } 
  if ((
$b==$dos) && ($tres=="admin"))
  {
    
session_start();
    
session_register("autentificado_a","uno","dos","tres","cuatro","cinco","seis");
    
$autentificado_a "SI";
    
header ("Location: index_admin.php"); 
  }
  else if((
$b==$dos) && ($tres=="colaborador"))
  {
    
session_start();
    
session_register("autentificado_c","uno","dos","tres","cuatro","cinco","seis");
    
$autentificado_c "SI";
    
header ("Location: index_colaborador.php");
  }
  else if ((
$b==$dos) && ($tres=="usuario"))
  {
    
session_start();
    
session_register("autentificado_u","uno","dos","tres","cuatro","cinco","seis");
    
$autentificado_u "SI";
    
header ("Location: index_usuario.php");
  }
  else 
  {
    
header("Location: index.php?errorusuario=si");  
  }
  
mysql_free_result($result);
  
mysql_close($link);
?>
y para comprobar si el usuario esta en el menu que le corresponde coloco este php en cada página que quiero que vea, estas seguridades son tres dependiendo si es el admin, colaborador o usuario.pongo el ejemplo de seguridad de usuario aunque tecnicamente las tres son iguales
seguridad_u.php
Código PHP:
<?
//Inicio la sesión
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado_u"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}
?>
Según investigue no existiria problema si cada ususario entra al sistema desde una pc para cada uno.
Pero si varios usuarios quieren usar la misma máquina solo obtiene info de uno.

haber si alguien me corrige el codigo o que hago mal...
  #2 (permalink)  
Antiguo 25/02/2010, 11:09
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Respuesta: sesiones php

Hola amigo,
probablemente tu estas entrando en el mismo pc, mismo navegador, etc... por lo tanto la sesion se te queda pegada, debes destruirla, esto hazlo creando una pagina "salir.php" y dentro de ella ponle que destruya la sesion autentificado_X que has creado...

Luego prueba logearte nuevamente, probablemente ahora tendras los datos correctamente.

Saludos.
__________________
ChilenoCesar Looking for something new...
  #3 (permalink)  
Antiguo 25/02/2010, 12:34
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: sesiones php

humm.. gracias hago la prueba...

Bueno coloque este código

salir.php
Código PHP:
<? 
session_start
(); 
session_destroy(); 
?>
ciertamente me cierra la sesion el problema aun continua lo que quiero decir es que deseo abrir en una máquina mas de una sesion con diferentes usuarios con mi código anterior no es posible ya que se repiten datyos no se que hago mal..??? si alguien pudiera ayudarme estaría muy agradecido

Última edición por otacon3784; 25/02/2010 a las 14:30
  #4 (permalink)  
Antiguo 01/03/2010, 06:44
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: sesiones php

Bueno estuve revisando el codigo el fin de semana y al ver algo de info mas no se si sería necesario crear variables de sesion cosa que cuando quiera que multiples usuarios vean sus cuentas en una sola pc no tengan problemas de contenido es decir que las cuentas se mezclen entre si.
Si esa opcion es viable me gustaría que me aconsejen o me indiquen como hacerlo pues el concepto es teórico y unapoyo me vendría bien
  #5 (permalink)  
Antiguo 01/03/2010, 09:20
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: sesiones php

Hola.
Soy novato en esto de php, pero estoy usando también sesiones y uso el siguiente código para cerrarlas:
Código:
<?php  
	session_start();  
	$_SESSION = array();  
	session_destroy();  
	header ("Location: lapaginaquequieras.html"); 
?>
Ah y te recomiendo que uses un sólo método para recoger datos, generalmente el mas seguro es $_POST. Lo digo porque en el primer código que pusiste tienes $_GET (index.php) y luego tienes $_POST para recuperar datos.

Suerte :)

Etiquetas: sesiones
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 15:55.