Page 1 sur 1

Ma session disparait sous Firefox???

Posté : 09 janv. 2011, 22:21
par wwwbillgates
Bonsoir a tous, je souhaite créer 2 sessions contenant le nom de 2 photos mais lorsque je charge la deuxieme photos alors la premiere session devien vide et inversement. Etrangement le problème ce produit uniquement sous Firefox...


Voici une partie de code de ma page d'upload (j'utilise uploadify), je précise qu'il n'y a pas de unset sur ma page qui détruirai ma session.
?>
echo @$_SESSION['temp']['photo1'];
echo @$_SESSION['temp']['photo2'];


	
		<script type="text/javascript">
		$(document).ready(function() {
			$("#fileUploadgrowl1").fileUpload({
				'uploader': '/includes/scripts/progress_bar/uploadify/uploader.swf',
				'cancelImg': '/includes/scripts/progress_bar/uploadify/cancel.png',
				'script': '/templates/pages/etape1_description_upload_photo1.php',
				'scriptData': { 'session': '<?php echo session_id(); ?>'},
				'folder': '/photos/',
				'fileDesc': 'Image Files',
				'buttonImg': '../../interface/parcourir.gif',
				'fileExt': '*.jpg;*.jpeg;*.png;*.gif',
				'auto': true,
				'multi': false,
				'simUploadLimit': 1,
				'sizeLimit': 10048576,
				onError: function (event, queueID ,fileObj, errorObj) {
					var msg;
					if (errorObj.status == 404) {
						alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
						msg = 'Could not find upload script.';
					} else if (errorObj.type === "HTTP")
						msg = errorObj.type+": "+errorObj.status;
					else if (errorObj.type ==="File Size")
						msg = fileObj.name+'<br>'+errorObj.type+' Limit: '+Math.round(errorObj.sizeLimit/1024)+'KB';
					else
						msg = errorObj.type+": "+errorObj.text;
					$.jGrowl('<p></p>'+msg, {
						theme: 	'error',
						header: 'ERREUR',
						sticky: true
					});			
					$("#fileUploadgrowl1" + queueID).fadeOut(250, function() { $("#fileUploadgrowl1" + queueID).remove()});
					return false;
				},
				onCancel: function (a, b, c, d) {
					var msg = "Cancelled uploading: "+c.name;
					$.jGrowl('<p></p>'+msg, {
						theme: 	'warning',
						header: 'l\'envoi a été interrompu',
						life:	4000,
						sticky: false
					});
				},
				onComplete: function (a, b ,c, d, e) {
					var size = Math.round(c.size/1024);
					$.jGrowl('<p></p>'+c.name+' - '+size+'KB', {
						theme: 	'success',
						header: 'Envoi effectué avec succès',
						life:	4000,
						sticky: false
					});
				}
			});
		});

		
		
		
		$(document).ready(function() {
			$("#fileUploadgrowl2").fileUpload({
				'uploader': '/includes/scripts/progress_bar/uploadify/uploader.swf',
				'cancelImg': '/includes/scripts/progress_bar/uploadify/cancel.png',
				'script': '/templates/pages/etape1_description_upload_photo2.php',
				'scriptData': { 'session': '<?php echo session_id(); ?>'},
				'folder': '/photos/',
				'fileDesc': 'Image Files',
				'buttonImg': '../../interface/parcourir.gif',
				'fileExt': '*.jpg;*.jpeg;*.png;*.gif',
				'auto': true,
				'multi': false,
				'simUploadLimit': 1,
				'sizeLimit': 10048576,
				onError: function (event, queueID ,fileObj, errorObj) {
					var msg;
					if (errorObj.status == 404) {
						alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
						msg = 'Could not find upload script.';
					} else if (errorObj.type === "HTTP")
						msg = errorObj.type+": "+errorObj.status;
					else if (errorObj.type ==="File Size")
						msg = fileObj.name+'<br>'+errorObj.type+' Limit: '+Math.round(errorObj.sizeLimit/1024)+'KB';
					else
						msg = errorObj.type+": "+errorObj.text;
					$.jGrowl('<p></p>'+msg, {
						theme: 	'error',
						header: 'ERREUR',
						sticky: true
					});			
					$("#fileUploadgrowl2" + queueID).fadeOut(250, function() { $("#fileUploadgrowl2" + queueID).remove()});
					return false;
				},
				onCancel: function (a, b, c, d) {
					var msg = "Cancelled uploading: "+c.name;
					$.jGrowl('<p></p>'+msg, {
						theme: 	'warning',
						header: 'l\'envoi a été interrompu',
						life:	4000,
						sticky: false
					});
				},
				onComplete: function (a, b ,c, d, e) {
					var size = Math.round(c.size/1024);
					$.jGrowl('<p></p>'+c.name+' - '+size+'KB', {
						theme: 	'success',
						header: 'Envoi effectué avec succès',
						life:	4000,
						sticky: false
					});
				}
			});
		});
		</script>		
		
		
		
		<br />
		Photo n°1<br /><div id="fileUploadgrowl1">erreur avec Javascript</div>
		Photo n°2<br /><div id="fileUploadgrowl2">erreur avec Javascript</div>
		<input type="hidden"  value="2" name="nb_photos"/>
		<?php

Voici ma page ou je créer ma session $_SESSION['temp']['photo1']
<?php session_start(); ?>
<!--Permet l'echange de session (firefox)-->
<?php if ($_REQUEST['session']) session_id($_REQUEST['session']); ?>
<?php
if (isset($_FILES)) {
	$tempFile = $_FILES['Filedata']['tmp_name'];
	$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
	
	
	
	$nom_photo_renomme = md5(uniqid(rand(), true)); // uniquid() Génère un identifiant unique basé sur la date et heure courante en microsecondes.
	$extension_photo = strtolower(strrchr($_FILES['Filedata']['name'], '.')); //strrchr renvoie l'extension avec le point // strtolower met l'extension en minuscule
	$nom_photo_renomme_avec_extension = $nom_photo_renomme . $extension_photo;
	
	
	
	$targetFile =  str_replace('//','/',$targetPath) . $nom_photo_renomme_avec_extension;
	
	
	
	
	$_SESSION['temp']['photo1'] = $nom_photo_renomme_avec_extension;


		
		move_uploaded_file($tempFile,$targetFile);
		echo "1";
}
?>

Et voici ma page ou je créer ma session $_SESSION['temp']['photo2']
<?php session_start(); ?>
<!--Permet l'echange de session (firefox)-->
<?php if ($_REQUEST['session']) session_id($_REQUEST['session']); ?>
<?php
if (isset($_FILES)) {
	$tempFile = $_FILES['Filedata']['tmp_name'];
	$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
	
	
	
	$nom_photo_renomme = md5(uniqid(rand(), true)); // uniquid() Génère un identifiant unique basé sur la date et heure courante en microsecondes.
	$extension_photo = strtolower(strrchr($_FILES['Filedata']['name'], '.')); //strrchr renvoie l'extension avec le point // strtolower met l'extension en minuscule
	$nom_photo_renomme_avec_extension = $nom_photo_renomme . $extension_photo;
	
	
	
	$targetFile =  str_replace('//','/',$targetPath) . $nom_photo_renomme_avec_extension;
	
	
	
	
	$_SESSION['temp']['photo2'] = $nom_photo_renomme_avec_extension;


		
		move_uploaded_file($tempFile,$targetFile);
		echo "1";
}
?>

Re: Ma session disparait sous Firefox???

Posté : 10 janv. 2011, 00:29
par xTG
Les sessions ont besoin des cookies pour fonctionner.
Je pense donc que sous firefox tes cookies ne sont pas activés. :)

Re: Ma session disparait sous Firefox???

Posté : 10 janv. 2011, 00:34
par wwwbillgates
Les sessions ont besoin des cookies pour fonctionner.
Je pense donc que sous firefox tes cookies ne sont pas activés. :)
Bonjour, merci de ton aide mais mes cookies sont activés et mes sessions fonctionnes mais se vides ensuite lorsque jen crée une autre.
J'ai un peu avancé mais en fait mon probleme viendrait de cette ligne:
<?php if ($_REQUEST['session']) session_id($_REQUEST['session']); ?>

Re: Ma session disparait sous Firefox???

Posté : 10 janv. 2011, 01:11
par xTG
Et avec ça :
<?php if ( !empty($_REQUEST['session']) ) session_id($_REQUEST['session']); ?>

Re: Ma session disparait sous Firefox???

Posté : 10 janv. 2011, 01:18
par wwwbillgates
Et avec ça :
<?php if ( !empty($_REQUEST['session']) ) session_id($_REQUEST['session']); ?>
Nan toujours pareil :(