Bonjour,
Pour gérer son compte et son profil, le membre inscrit doit pouvoir entre autres uploader/modifier un avatar via le plugin Plupload.

Seulement,dans le fichier upload.php,lors de l'update de la bdd, j'ai besoin de l'id utilisateur donné par la variable de session $_SESSION['auth'].

Cette variable existe bien dans la page profile.php: un var_dump(session $_SESSION['auth']) donne:

C:\wamp\www\graf\profile.php:24:
object(stdClass)[1]
public 'id' => string '22' (length=2)
public 'username' => string 'johndoe' (length=6)
public 'email' => string 'john@doe.com' (length=17)
public 'password' => string '$2y$10$nwS.6PlyuH7NQnRuPdRJnuLmPSJK/gzmcWomHYz5Uk3SOkDutnLQ.' (length=60)
public 'confirmation_token' => null
public 'confirmed_at' => string '2016-11-29 12:27:40' (length=19)
public 'reset_token' => null
public 'reset_at' => null
public 'remember_token' => null
public 'avatar' => string 'John-Doe.png' (length=12)

Mais je n'arrive pas à la transmettre à upload.php. Éclairez-moi svp.

profile.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
    if(session_status() == PHP_SESSION_NONE){ session_start(); }
    require_once('inc/functions.php'); 
    require_once('inc/db.php');
    reconnect_from_cookie();
?><!DOCTYPE html>
<html > 
<head>
	<meta charset="utf-8"/>
	<title>Profil Membre</title>
	<link href="css-up/style.css" rel="stylesheet" type="text/css"  />
	<script src="js-up/jquery-1.11.3.js" type="text/javascript" ></script>
</head>
<body>
	<div id="plupload">        
		<div id="droparea">
			<p>Déposez vos fichiers ici</p>
			<span class="or">ou</span>
			<a href="#" id="browse">Parcourir</a>
		</div>
		<div id="filelist">
			<?php foreach(glob('uploads/*.*') as $v):?>
			<div class="file">                
				<img src="<?php  echo $v; ?>">
				<?php  echo basename($v); ?>                
				<div class="actions">
                    <a href="<?php  echo basename($v) ?>" class="del">&times;</a>
				</div>
			</div>
			<?php endforeach; ?>
		</div>
	</div>    
    <script src="js-up/plupload/plupload.full.min.js" type="text/javascript" ></script>
    <script src="js-up/plupload/moxie.js" type="text/javascript" ></script>
    <script src="js-up/main.js" type="text/javascript" ></script> 
</body>
</html>
main.js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
    //var sessId = '<?php echo $_SESSION['auth']['id'] ; ?>';    
    var uploader = new plupload.Uploader({
		runtimes          : 'html5,flash',
		container         : 'plupload',
		browse_button     : 'browse',
		drop_element      : 'droparea',
		url               : 'upload.php',
		flash_swf_url     : 'js-up/plupload/Moxie.swf',
        multi_selection   : false,
		multipart         : true,
		urlstream_upload  : true,
		multipart_params  : {directory:'test'},
		max_file_size     : '1mb',
		resize            : {width:320,height:240,quality:90},
		filters           : [{ title: 'images', extensions:'JPEG,JPG,PNG,GIF'}]
 
	});
 
	uploader.bind('Init',function(up, params){  
		if(params.runtime!='html5'){
			$('#droparea').css('border','none').find('p,span').remove();
		}
	});
 
	uploader.bind('UploadProgress',function(up, file){
		$('#'+file.id).find('.progress').css('width',file.percent+'%');
	});
 
	uploader.init();   
 
	uploader.bind('FilesAdded',function(up,files){    
		var filelist=$('#filelist');
		for(var i in files){
			var file= files[i];
			filelist.prepend('<div id="'+file.id+'" class="file">'+file.name+' ('+plupload.formatSize(file.size)+')'+'<div class="progressbar"><div class="progress"></div></div></div>');
		}
		$('#droparea').removeClass('hover');
		uploader.start();
		uploader.refresh(); 
 
	}); 
 
	uploader.bind('Error',function(up,err){
		alert(err.message);
		$('#droparea').removeClass('hover');
		uploader.refresh();
	});
	uploader.bind('FileUploaded',function(up, file, response){    // upload terminé
		data = $.parseJSON(response.response);
		if(data.error){
			alert(data.message);
			$('#'+file.id).remove();
		}else{
			$('#'+file.id).replaceWith(data.html);
            /*
            $.ajax({
                type: "POST",
                cache: false,
                url: "upload.php",
                data: "sessId="+sessId
            }); 
            */            
		}
	});
 
	jQuery(function($){ 
		$('#droparea').bind({
			dragover:function(e){
				$(this).addClass('hover');
			},
			dragleave:function(e){
				$(this).removeClass('hover');
			}
		});
 
		$('.del').on('click',function(e){	
			e.preventDefault();
			var elem =$(this);
			if(confirm('Voulez-vous vraiment supprimer cette image ?')){
				$.get('upload.php', {action:'delete',file:elem.attr('href')});
				elem.parent().parent().slideUp();
			}
			return false;
 
		});
 
	});
upload:php;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php 
    if(session_status() == PHP_SESSION_NONE){ session_start();  }
 
	if(isset($_GET['action']) && $_GET['action']== 'delete'){
		unlink('uploads/'.$_GET['file']);
		die();
	}
    require_once('inc/functions.php'); 
    require_once('inc/db.php');
    reconnect_from_cookie();
 
    $extensions_allowed = array('.JPEG','.jpg', '.PNG','.GIF' ); 
    $extension = strrchr($_FILES['file']['name'], '.');  
    if(!in_array($extension, $extensions_allowed))  {      
        alert('Seuls les fichiers au format png, gif, jpg ou jpeg sont autorisés ');        
    }else{        
        $file=$_FILES['file'];    
        $name=$file['name'];
        if(filesize($file['tmp_name']) > 1000000){
            die('{"error":true, "message": "Le fichier est trop volumineux. Veuillez télécharger une image inférieure à  1 Mo."}');
        }        
		if(file_exists('uploads/'.$name)){
            die('{"error":true, "message": "L\'image existe déjà"}');
        }  
 
        $name = strtr($name,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','~');        
        $name = preg_replace('/([^.a-zA-Z0-9]+)/i', '-', $name);        
        $u = mt_rand(0,1000000)."_".$name;
        move_uploaded_file( $_FILES['file']['tmp_name'],'uploads/'.$u );
 
        //Cette requête marche
		$pdo->prepare("UPDATE users SET avatar=? WHERE id=22 ")->execute([$u]) ;  
        $pdo = null;		
		/* Celle-ci ne marche pas
        $pdo->prepare("UPDATE users SET avatar=? WHERE id='$sessId' ")->execute([$u]) ;
        $pdo = null;
        */
        $v='uploads/'.$u;
        $html='<div class="file"><img src="'.$v.'" />'.basename($v).'<div class="actions"><a href="'.basename($v).'" class="del" >&times;</a></div></div>';
        $html=str_replace('"','\\"',$html);
        die('{"error":false, "html": "'.$html.'"}');
 
    }
 
?>