Я хочу иметь комету как iframe на моей странице, но когда сеанс изменяет информацию в iframe, это не так, и я сделал дамп переменной $_SESSION
в iframe и не менялся.
Мой вопрос: как обновить переменную $_SESSION
в комету iframe при изменении клиентской $_SESSION
?
Большое спасибо ^ _ ^
обновить с помощью кода:
клиент:
<?php session_start(); if(!isset($_SESSION['count'])) $_SESSION['count'] = 0; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Test Comet</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type='text/javascript' src='../js/jquery.js'></script> <script type="text/javascript"> function test_function(msg){ $('p').html(msg) } $('div').click(clickMe); function clickMe(event){ $.ajax({ url: 'addSess.php' }) } </script> </head> <body> <p>This is a test</p> <div>click me</div> <iframe src="output.php" width="0" height="0" style="display: none;"></iframe> </body> </html>
комета iframe (output.php):
<?php session_start(); ob_start(); echo 'hello'; flush_buffers(); while(true){ echo "<script>window.parent.test_function('".time().' session: '.$_SESSION['count']."');</script>"; flush_buffers(); sleep(1); } function flush_buffers(){ ob_end_flush(); ob_flush(); flush(); ob_start(); } ?>
в<?php session_start(); ob_start(); echo 'hello'; flush_buffers(); while(true){ echo "<script>window.parent.test_function('".time().' session: '.$_SESSION['count']."');</script>"; flush_buffers(); sleep(1); } function flush_buffers(){ ob_end_flush(); ob_flush(); flush(); ob_start(); } ?>
addSess.php:
<?php session_start(); if(!isset($_SESSION['count'])) $_SESSION['count'] = 0; $_SESSION['count']++; echo $_SESSION['count']; ?>
еще одна вещь, которую я заметил, это то, что ее замораживание браузера от перехода на мой сайт, как только я закрываю клиента, все остальное загружает