Foros del Web » Programando para Internet » PHP »

Problema con sesiones en Internet Explorer

Estas en el tema de Problema con sesiones en Internet Explorer en el foro de PHP en Foros del Web. Buenas, tengo un problema con las sesiones, tengo un captcha simple de "¿Cuanto son 2+3? y creo que dos variables de sesion, numero1 y numero2, ...
  #1 (permalink)  
Antiguo 25/11/2009, 05:31
 
Fecha de Ingreso: febrero-2002
Ubicación: Sabadell
Mensajes: 253
Antigüedad: 22 años, 1 mes
Puntos: 5
Pregunta Problema con sesiones en Internet Explorer

Buenas, tengo un problema con las sesiones, tengo un captcha simple de "¿Cuanto son 2+3? y creo que dos variables de sesion, numero1 y numero2, pero a la hora de enviar el formulario en el firefox me detecta correctamente las variables de sesion numero1 y numero2 y pasa correctamente pero en explorer me cambia los números sin lógica alguna.

He estado mirando por webs y no he encontrado nada, he visto lo de que el dominio no puede llevar underscore y no lo lleva.

Espero que alguien pueda iluminarme porque llevo ya dos dias mirando y buscando y no veo nada :/

Muchisimas gracias por adelantado.
  #2 (permalink)  
Antiguo 25/11/2009, 07:17
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: Problema con sesiones en Internet Explorer

Sin código no te podemos ayudar, pon solo el código necesario y con las etiquetas correspondientes (HTML, PHP...) para que lo podamos leer.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 25/11/2009, 07:41
 
Fecha de Ingreso: febrero-2002
Ubicación: Sabadell
Mensajes: 253
Antigüedad: 22 años, 1 mes
Puntos: 5
Respuesta: Problema con sesiones en Internet Explorer

bueno es bastante basico el código osea al principio de todo hay un

session_start();

luego creo lo siguiente

$_SESSION["numero1"] = rand(1,5);
$_SESSION["numero2"] = rand(1,5);

y en el formulario que recoge las variables sigue así:

$resultado = $_SESSION["numero1"] + $_SESSION["numero2"];

Por eso no habia puesto el código porque era muy muy simple.

Al recoger las variables tambien hago un session_start(); al principio de todo.
  #4 (permalink)  
Antiguo 25/11/2009, 07:51
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: Problema con sesiones en Internet Explorer

La verdad es que no tiene sentido hacer 2 variables de sesion y luego sumarlos, lo logico sería hacer solo uno y luego comparalos con la suma de los 2 POST:
Código PHP:
session_start();
// ...
$_SESSION['resultado'] = rand(1,5) + rand(1,5)
//...
//mostrar formulario 
Obneter valores
Código PHP:
session_start();
if(
$_POST)
{
    
$resultado_post $_POST['numero1'] + $_POST['numero2'];
    if(
$resultado_post===$_SESSION['resultado'])
    {
        
$captcha true;
    }

__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #5 (permalink)  
Antiguo 25/11/2009, 08:03
 
Fecha de Ingreso: febrero-2002
Ubicación: Sabadell
Mensajes: 253
Antigüedad: 22 años, 1 mes
Puntos: 5
Respuesta: Problema con sesiones en Internet Explorer

ok pero mi problema principal es que en explorer no funcionan las sesiones con php, agradezco tu replanteamiento del código pero no me soluciona nada, espero que me puedas echar un cable con mi verdadero problema.

Y genero dos variables porque luego para el captcha tengo que mostrar las dos variables y la persona tiene que introducir simplemente el resultado, por eso genero dos variables de sesión y luego los sumo.

Te copio bien el código para que lo veas:

Código PHP:
<?php $_SESSION["numero1"] = rand(1,5);$_SESSION["numero2"] = rand(1,5);?>
<label for="captcha">* &iquest;Cuanto es <?php echo $_SESSION["numero1"];?>+<?php echo $_SESSION["numero2"];?>?</label><input tabindex="15" type="text" name="captcha" id="captcha" size="5" maxlength="2" title="Introduce la respuesta a la pregunta de seguridad."  />
  #6 (permalink)  
Antiguo 25/11/2009, 08:52
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: Problema con sesiones en Internet Explorer

Sobre las variables:
Código PHP:
$numero1 = rand(1,5);
$numero2 = rand(1,5);
$_SESSION['resultado'] = $numero1+$numero2;
//...
<?php echo $numero1?>+<?php echo $numero2?>...
¿El formulario lo envias normal o con ajax?

Haz un:
Código PHP:
session_start();
echo 
"POST<pre>";
print_r($_POST);
echo 
"</pre>";
echo 
"SESSION<pre>";
print_r($_SESSION);
echo 
"</pre>"
cuando envias el formulario a ver que te pone
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #7 (permalink)  
Antiguo 25/11/2009, 09:36
 
Fecha de Ingreso: febrero-2002
Ubicación: Sabadell
Mensajes: 253
Antigüedad: 22 años, 1 mes
Puntos: 5
Respuesta: Problema con sesiones en Internet Explorer

lo envio con ajax y si no tienen javascript por php normal, hice la prueba desactivando el javascript y usando solo php y me fallaba de la misma forma.

Estoy probando con lo nuevo que me has pasado y ahora parece que funciona correctamente el tema.

Haré unas cuantas pruebas más a ver si funciona, a lo mejor es que tiene algun problema por asignarle rands a las sesiones, porque antes probé asignando

Código PHP:
$numero1 rand(1,5);
$_SESSION["numero1"] = $numero1
No se muy bien que ocurre simplemente que al mostrar como decias

print_r($_SESSION);

Me mostraba que tenía correctamente dos variables numero1 y numero2 pero con valores distintos a los que ya tenía.

Hago pruebas y te comento :)
  #8 (permalink)  
Antiguo 25/11/2009, 09:49
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: Problema con sesiones en Internet Explorer

Probablemente sea por la cache de internet explorer, prueba a hacer esto en el php de la validacion:
Código PHP:
<?php
header
("Cache-Control: no-cache, must-revalidate");
//...
if($_POST)
//...
?>
De todas formas enviale un random por javascript al formulario PHP, ejemplo:

Código javascript:
Ver original
  1. var post_page = "tralara.php?"+Math.random()+"="+Math.random();

así nunca te cacheara el resultado, suerte :)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #9 (permalink)  
Antiguo 25/11/2009, 10:22
 
Fecha de Ingreso: febrero-2002
Ubicación: Sabadell
Mensajes: 253
Antigüedad: 22 años, 1 mes
Puntos: 5
Respuesta: Problema con sesiones en Internet Explorer

Pues sigue sin funcionar :( :( :( :( :( borro cache totalmente de explorer, pongo el header que me has dicho le paso por javascript el math.round ese y aún y así sigue sin funcionar, ya me estoy volviendo loco... porque pasa eso solo con explorer? :(
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 03:32.