11497 sujets

JavaScript, DOM et API Web HTML5

Bonjour.

J'essaie d'implémenter le plugin uploadify de jQuery pour le chargement d'images dans un intranet qui sera utilisé avec Safari. Globalement, ça fonctionne bien. Le seul problème, c'est que comme l'accès à cet intranet est limité, j'utilise une session pour vérifier à chaque page que le visiteur s'est loggé correctement. Et c'est la que ça coince : on dirait que uploadify détruit le cookie de session.

Si j'observe l'évolution du cookie de page en page depuis le départ, je vois qu'il disparait lorsque j'accède à celle où se trouve uploadify, et ce avant même d'avoir tenté de charger une image.
Mais si je tente quand même le chargement et que j'affiche les infos de session (nom, id et variable), toutes ces infos apparaissent sans problème, donc je peux transmettre le nom, l'id et la variable de session au script qui gère le chargement de l'image afin de tenter de restaurer la session et son cookie.

Au prochain chargement de page, l'image a bien été chargée correctement, mais la session n'existant plus, je suis réexpédié automatiquement vers la page de connexion de l'intranet, conformément à mon script de gestion des connexions.

Le code JS de la page où se trouve le uploadify :

<script type="text/javascript" src="inclu/jquery.min.js"></script>
<script type="text/javascript" src="uploadify/jquery.uploadify.min.js"></script>
<script type="text/javascript">
//<![CDATA[
	$(function()
	{
		$('#fichier').uploadify({
			'formData'	: {'<?php echo session_name();?>' : '<?php echo session_id();?>', 'gestion' : '<?php echo $_SESSION['gestion'];?>', 'cotemodif' : 'n/a', 'fiche' : 'n/a'},
			'swf'		: 'uploadify/uploadify.swf',
			'uploader'	: 'uploadify/uploadify.php',
			'onUploadSuccess' : function(file, data, response)
			{
				alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
			},
			'onUploadStart' : function(file)
			{
				$("#fichier").uploadify("settings", "formData", {"cotemodif" : document.getElementById("cotemodif").value, "fiche" : document.getElementById("fiche").value});
			}
		});
	});
//]]>
</script>


Le script de uploadify.php :

$session_name = session_name();
if(!isset($_POST[$session_name]))
{
	exit;
}
else
{
	session_start();
	session_id($_POST[$session_name]);
}
include("../inclu/connexion.php");

if(!empty($_FILES))
{
echo $session_name." "; // affichage du nom de la session
echo $_POST[$session_name]." "; // affichage de l'identifiant de la session
echo $_POST['gestion']." "; // affichage de la variable de la session transmise en POST
	$_SESSION['gestion'] = $_POST['gestion'];
echo $_SESSION['gestion']." "; // affichage de la variable de la session après l'avoir réinjectée dans la session

$file = pathinfo($_FILES['Filedata']['name']);
$extension = ".".$file['extension'];
$dest_fichier = $_FILES['Filedata']['name'];
move_uploaded_file($_FILES['Filedata']['tmp_name'], "../visuels/".$dest_fichier);
}


Résultat de l'alert : The file toto.jpg was successfully uploaded with a response of true: PHPSESSID b09156bef4fd7277353151e11d2dab3f Louis Louis
Donc, on voit bien que le nom, l'id et la variable de session ont bien été transmis à uploadify.php où je tente de restaurer la session.
Mais ça ne marche pas.

D'où ma question : comment faire pour que ma session soit préservée ?

Merci d'avance
Cordialement