Foros del Web » Programando para Internet » PHP »

Problema con las sesiones en Internet Explorer

Estas en el tema de Problema con las sesiones en Internet Explorer en el foro de PHP en Foros del Web. Amigos de PHP!!! Estoy viendo que un script elaborado en PHP funciona en Netscape o Mozilla y no en Internet Explorer y veo las directivas ...
  #1 (permalink)  
Antiguo 28/10/2004, 19:55
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 13 años, 11 meses
Puntos: 2
Exclamación Problema con las sesiones en Internet Explorer

Amigos de PHP!!!

Estoy viendo que un script elaborado en PHP funciona en Netscape o Mozilla y no en Internet Explorer y veo las directivas de este y están corriendo perfectamente, pero por que no funciona en IE que inclusive lo que hace es devolverme al form del login...

Por que sucede esto???
__________________
Ahora T4X es
WinGFX!!!!!
  #2 (permalink)  
Antiguo 28/10/2004, 20:42
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Pues no sé..., si estás propagando la sesiones por cookies prueba a ver si viene por hay el fallo.

Un saludo.
  #3 (permalink)  
Antiguo 29/10/2004, 07:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si no indicas como estás propagando el SID (en tu configuración de PHP) y como lo haces en tu programación (¿asumes que PHP lo va hacer por tí? .. lo propagas tu a mano en tu programción? .. ) Es complicado ver que sucede..

En principio .. tal vez propages el SID en cookies y tu IE no las acepta o no se están creando por algún otro bloqueo (revisa la configuración de tu IE, firewall y demás si los usas).

Un saludo,
  #4 (permalink)  
Antiguo 29/10/2004, 08:15
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 13 años, 11 meses
Puntos: 2
Exclamación

Uhm, bueno anexando a eso me he dado cuenta que las sesiones solo funcionan por dominio y no por IP, si me hago entender...

Inclusive la seguridad del navegador no tiene que ver...
Pero si deseo propagar el SID.....

Quede sin entender..!!!
__________________
Ahora T4X es
WinGFX!!!!!
  #5 (permalink)  
Antiguo 29/10/2004, 08:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Como que las sesiones funcionan por "domino" o por "IP"?

Te refieres a que te funciona si accedes a tu página tipo: www.tal.tal . .pero no por http://200.23.32.23 por poner un ejemplo (por IP)?

Todos esos problemas podrían llegar por la cookie que se crea Si usas propagación del SID en cookies .. lo cual define en primera instanacia la configuración de PHP al respecto .. Revisa tu php.ini (o hazte un phpinfo()) ahí veras como propaga PHP el SID (o como lo podría hacer).

A partir de ahí .. tu decides como quieres propagar el SID . .puedes dejar a PHP que lo haga el sólo: por el URL o por cookies, o bien lo haces tu manualmente. Por cookies es lo más seguro.

Te invito a leer la documentación oficial sobre sesiones:
www.php.net/session

Un saludo,
  #6 (permalink)  
Antiguo 29/10/2004, 13:23
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 13 años, 11 meses
Puntos: 2
Este es el script que utilizo para autenticar usuarios y registra variables:

Archivo login.php
Código PHP:
<?
session_start
();
// Conectando a la base de datos
$host 'localhost';
$user 'user';
$pass 'pass';
$db    'base_datos';
// Estableciendo form
if(!$_POST) {
?>
<html>
<head>
<title>Formulario de prueba Login por IP</title>
<style type="text/css">
<!--
body { margin: 0px 0px 0px 0px; font-family: Tahoma; font-size: 11px; }
-->
</style>
</head>
<body>
<form action="<?=$_SERVER['PHP_SELF']?>" name="frm" method="post">
<input name="username" type="text" size="20"><br>
<input name="password" type="password" size="20"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
<?
} else {
// Trayendo variables para procesar
$username $_POST['username'];
$password $_POST['password'];
// Conectando a la Base de datos
mysql_connect($host,$user,$pass) or die('MySQL ha dicho: <br>'.mysql_error());
$stmp = ("SELECT * FROM login WHERE username='".$username."'");
$lg1 mysql_db_query($db,$stmp) or die('MySQL ha dicho: <br>'.mysql_error());
$count mysql_num_rows($lg1);
if(
$count == 0) {
     die(
'Error: este usuario no existe!<br><a href="javascript:history.back()">Haga clic aqui para volver atras</a>');
} else {
    
$m mysql_fetch_array($lg1);
    if(
$m['password'] !== $password) {
      die(
'Error: contraseña incorrecta!<br><a href="javascript:history.back()">Haga clic aqui para volver atras</a>');
     exit;
   }
   
// Si todo esta bien, creamos la sesion
   
$tSession['user'] = $m['username'];
   
$tSession['pass'] = md5($m['password']);
   
$tSession['id']     = $m['id'];
   
session_register('tSession');
  
// Enviamos mensaje de procesado
  
echo 'Su sesión ya se ha iniciado correctamente<br>';
  echo 
'Datos de la sesión: <br><br>';
  echo 
'Usuario: '.$tSession['user'].'<br>';
  echo 
'Identificador de Base de Datos: '.$tSession['id'].'<br><br>';
  echo 
'<a href="'.$_SERVER['PHP_SELF'].'?s=logout">Para cerrar la sesión haga clic aquí</a>';
}
}
if(
$s == 'logout') {
   
session_destroy();
   echo 
'Sus cookies han sido destruidas.';
}
?>
Pregunta siguiente:
Algo se encuentra bien en este script????

P.D.:
Teniendo en cuenta que en cada archivo que requiera autenticación, le coloco:
Código PHP:
<?
session_start
();
if(isset(
tSession)) {
echo 
'Su sesión esta iniciada';
} else {
header('Location: login.php');
}
?>

__________________
Ahora T4X es
WinGFX!!!!!
  #7 (permalink)  
Antiguo 29/10/2004, 15:43
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 13 años, 11 meses
Puntos: 2
Creo que funciona...

Creo que ya me funciona las variables de sesión que se transportan por el server, eso funciona iguall, tanto como un dominio como una direccion IP:

Sin embargo, dejaré el script disponible aqui en este tema...

Muchas gracias por la ayuda....
__________________
Ahora T4X es
WinGFX!!!!!
  #8 (permalink)  
Antiguo 31/10/2004, 10:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En cuanto al uso de sesiones que haces .. està desfasado .. Si ya usas los arrays superglobales como $_POST, $_SERVER .. etc, debes usarlo igualmente para las sesiones.

Me refiero a usar el array $_SESSION para el uso de sesiones en lugar de session_register()

Por lo demàs .. esto no sería correcto tampoco:
if(isset(tSession)) {
echo 'Su sesión esta iniciada';

te faltarìa el $ para referenciarte a una variable ..
if(isset($tSession)) {
echo 'Su sesión esta iniciada';

Pero .. eso es de lo más inseguro que existe en el trabajo de sesiones. Lee esta FAQ, para que veas lo importante que es usar $_SESSION (los arrays superglobales):

http://www.forosdelweb.com/f18/faqs-php-530600-post238989/

Un saludo,
  #9 (permalink)  
Antiguo 18/04/2005, 12:13
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 13 años, 11 meses
Puntos: 2
Resuelto, gracias por la ayuda!!!
__________________
Ahora T4X es
WinGFX!!!!!
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 04:32.