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:
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 <?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">×</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>
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
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; }); });
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" >×</a></div></div>'; $html=str_replace('"','\\"',$html); die('{"error":false, "html": "'.$html.'"}'); } ?>
Partager