Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2006, 13:38
raul123
 
Fecha de Ingreso: septiembre-2005
Mensajes: 94
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con sesiones (quiero sesiones independientes)

Hola amigos,
Leyendo varios tutoriales sobre sesiones, al final llegué a construirme un modo de autentificar usuarios para una web bastante estándar (creo). Cuando lo implemento en una página web que estoy haciendo, aparentemente funciona bien. Sin embargo, al implementar el mismo mecanismo en otra web y EJECUTAR LAS DOS WEBS A LA VEZ ocurre lo siguiente.Paso a paso:
  1. Ejecuto las dos webs. No me autentifico en en ninguna.
  1. Me autentifico en el sitio1. Puedo entrar en todas las secciones que requieren autentificación
Aquí está el problema:
  1. Sin haberme autentificado en el sitio2, puedo entrar en toda la sección autorizada.

¿Cómo definir varias sesiones independientes, que se ejecuten a la vez?

El código está aquí:


Archivo que se incluye en todas las páginas que quiero acceso restringido:
seguridad.php
Código PHP:
<?
//Inicio la sesión
session_name();
session_start("userid");
if(!(
session_is_registered("userid"))){
    
session_unset();
    
session_destroy();
    
header("Location: acceso.php");
    exit();
}

?>
Código del formulario donde se introducen datos de autentificación:
acceso.php
Código PHP:
<h4 align="center">Acceso identificado:</h4>
                      <form name="form1" method="post" action="accesoControl.php">
                        <p>&nbsp;</p>
                        <table width="80%"  border="0" align="center" cellpadding="2" cellspacing="0">
                          <tr>
                            <td width="50%"><div align="right">nombre:</div></td>
                            <td width="50%"><input name="userid" type="text" id="userid"></td>
                          </tr>
                          <tr>
                            <td width="50%"><div align="right">contrase&ntilde;a:</div></td>
                            <td width="50%"><input name="pwd" type="password" id="pwd"></td>
                          </tr>
                          <tr>
                            <td colspan="2"><div align="center">
                              <br>
                              <input name="Submit" type="submit" id="Submit" value="Entrar">
                            </div></td>
                          </tr>
                          <tr>
                            <td colspan="2">
                            <?
                                
if (isset($_GET['err'])){ ?>
                                      <div class="error">Error: Datos incorrectos</div>
                          <? }?>
                            </td>
                          </tr>
                        </table>
                      </form>


Código que recibe el formulario:
accesoControl.php
Código PHP:
<?
include("includes/conexionBBDD.php");

//Sentencia SQL para buscar un usuario con esos datos
$pwd $_POST["pwd"];
$pwd md5($pwd);
$userid $_POST["userid"];
$ssql "SELECT * FROM admin WHERE nombre='$userid' and pwd='$pwd' ";

//Ejecuto la sentencia
$rs mysql_query($ssql);

//vemos si el usuario y contrase&ntilde;a es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contrase&ntilde;a
if ($row mysql_fetch_array($rs)){
    
//usuario y contrase&ntilde;a válidos
        //defino una sesion y guardo datos
        
session_name();
        
session_start('userid');
        
//session_register("userid"); //no recomendable
        
$_SESSION["userid"]=$userid;
        
//session_encode();
        
$url="Location: admin.php?".SID;
        
header ($url);
    
}else {
    
//si no existe le mando otra vez a la portada

    
header("Location: acceso.php?err=usr");
    exit();
    
}
mysql_free_result($rs);
mysql_close($conn); 
?>

Con todo esto, en cada página restringida, pondría al principio un
include("includes/seguridad.php");


Muchas gracias por vuestra atención y perdonad las molestias.