2010-02-24 16 views
6

clase de un tema raro, bien aquí está mi configuración ...PHP session_start está colgando

  1. llamadas domain.com se lee de un iframe en sub.domain.com
  2. sub.domain.com marcas una llamada AJAX a sub.domain.com/call.php~~V~~singular~~3rd
  3. sub.domain.com devuelve llamada AJAX a domain.com

También conocido como largo de votación

Ahora, ev Todo funciona perfectamente cuando no hay datos de sesión (cierro el navegador y reinicio la página). Sin embargo, una vez que vuelva a cargar la página y sus datos de sesión, call.php hace una start_session() y se cuelga allí.

He intentado casi todo y no puedo resolver esto. Intenté destruir la sesión, desarmar todas las variables de la sesión, modificar algunas configuraciones ini, y nada funcionó.

Aquí está el código de call.php donde los datos de sesión es ...

session_start(); 

     $sql = ("SELECT userid FROM status WHERE typing = '".mysql_real_escape_string($userid)."'"); 
     $result = mysql_query($sql); 

     if ($result && mysql_num_rows($result) > 0) { 
      $row = mysql_fetch_array($result); 
      $typing_id = $row['userid']; 
      if (!empty($typing_id)) { 
       if (isset($_SESSION['typing2'])) { 
        unset($_SESSION['typing2']); 
       } 
      } else { 
       $typing_id = "-1"; 
      } 
     } else { 
      $typing_id = "-1"; 
      if (isset($_SESSION['typing'])) { 
       unset($_SESSION['typing']); 
      } 
     } 

     if ($_SESSION['typing'] != $typing_id && !isset($_SESSION['typing2']) || $initialize == "1") { 
      $typing = array('typing_id' => $typing_id); 
     } 

     if ($typing_id == "-1") { 
      $_SESSION['typing2'] = "-1"; 
     } else { 
      $_SESSION['typing'] = $typing_id; 
     } 

¿Alguien tiene alguna idea? Estaba pensando que podría tener que ver con el dominio, pero no estoy seguro.

Gracias!

+2

Bienvenido a SO Chris. Es poco probable que obtenga _any_ respuestas útiles sin proporcionar ejemplos de código. No hay suficientes datos aquí para hacer que esta pregunta responda. Es probable que se cierre como "no es una pregunta real". Sugiero que proporcione muchos más detalles cuando y si decide volver a publicarlo. – hobodave

Respuesta

7

De hecho, me di cuenta (después de horas y horas de depuración y de investigación) que el problema es causado porque la sesión de PHP se bloquea Luego, cuando se carga la nueva página, no funcionará hasta que se agote el tiempo de la sesión anterior. Un session_write_close() lo arreglará.

+0

Me acabas de ahorrar mucho tiempo. Gracias. – richo

Cuestiones relacionadas