Récupération synchrone de la variable de session
Bonjour ,
Mon principe est simple , mais je n'arrive pas à trouver la solution.
Il s'agit de 2 requêtes ajax A et B :
- La première requête A modifie une variable de session test à chaque 30 secondes
- La deuxième requête B lit la variable de session test
Le problème est que si je lance la première requete A et ensuite la deuxième B , j'aurai toujours la valeur finale de la seession modifiée en A.
Est ce qu'il y a une solution pour cela ?
voici les 2 codes sources des 2 fichiers :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<!--fancybox-->
<script type="text/javascript" src="/_com/js/photovideo/jquery-1.5.2.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
//##ajax
$.ajax({
type: "POST",
url: "/test24.php",
data: "test=test",
beforeSend: function(xhr) {
xhr.setRequestHeader( 'Set-Cookie' , 'PHPSESSID=' + '<?php echo session_id(); ?>' );
},
async: true,
success: function(data){
if(data)
{
}
}
});
//##ajax
});
function test()
{
//##ajax
$.ajax({
type: "POST",
url: "/test24.php",
data: "test=alert",
beforeSend: function(xhr) {
xhr.setRequestHeader( 'Set-Cookie' , 'PHPSESSID=' + '<?php echo session_id(); ?>' );
},
async: true,
success: function(data){
if(data)
{
alert(data);
}
}
});
//##ajax
}
</script>
<!--fancybox-->
</head>
<body>
<input name="" type="button" onClick="test() ;" />
</body>
</html> |
et le fichier test24.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?php
session_id($_COOKIE['PHPSESSID']);
session_start();
if($_POST['test'] == "test") {
$_SESSION['test'] = 10 ;
sleep(30) ;
$_SESSION['test'] = 20 ;
sleep(30) ;
$_SESSION['test'] = 30 ;
print "OK" ;
} elseif($_POST['test'] == "alert") {
print $_SESSION['test'] ;
}
?> |