Salut à tous !
Je travail actuellement sur un module d'upload multiple pour un site internet. Ce module est sous flash et, pour chaque fichier ajouté, il appelle une page PHP qui va s'occuper d'inclure le fichier dans une base de données (MySQL), de déplacer le fichier en le compressant et de faire un retour au module flash.
Seulement, mon insertion dans la base de données s'effectue bien hormis une variable dont la portée semble s'arrêter à l'intérieur de mon fichier...
Voici le code :
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 <? include ("../php/connect.php3"); include ("../php/login.php3"); include ("../php/lib/jpegcompresseur.php"); $userId=$logUserId; $sql="insert into images values ('','','$userId','".time()."','".addSlashes(@$_GET['idDossier'])."','',0)"; if (isset($_FILES["Filedata"])) { if($_FILES["Filedata"]['error'] == 0){ $save_path = "../../images/galerie/"; if (isset($_GET['dossierup'])) $save_path.=$_GET['dossierup'].'/'; if (file_exists($save_path.$_FILES['Filedata']['name'])) { echo utf8_encode('Un fichier portant ce nom est déjà en attente de traitement'); } else { if ($result=$cbd->dbQuery($sql)) { $id=$cbd->dbInsertId(); if (JPEGCompresseur($_FILES["Filedata"]["tmp_name"],$save_path.$id.".jpg",850,150)) { echo utf8_encode("1"); } else { echo utf8_encode('Erreur d\'écriture'); } } else { echo utf8_encode('Impossible de créer les données correspondantes'); } } } else { switch ($_FILES["Filedata"]['error']) { case 1: echo 'Fichier trop volumineux'; break; case 2: echo 'Fichier trop volumineux'; break; case 3: echo 'Fichier incomplet'; break; case 4: echo 'Pas de fichier'; break; case 5: echo 'Erreur inconnue'; break; case 6: echo 'Erreur serveur'; //pas de dossier tmp break; case 7: echo utf8_encode('Erreur d\'écriture'); break; case 8: echo 'Extension incorrecte'; break; default: echo 'Erreur inconnue'; break; } } } else { echo utf8_encode("Pas de fichiers envoyés"); } echo utf8_encode('.'); ?>
- Le fichier "connect.php3", comme vous l'aurez deviné, contient simplement la connexion à la base de données et créé ainsi un objet : $cbd.
- Le fichier "login.php3" se charge de retrouver le cookie associé au compte utilisateur et créé plusieurs variable dont $logUserId qui contient l'identifiant de l'utilisateur.
- Enfin, le fichier "jpegcompresseur.php" est juste la définition d'une fonction "JPEGCompresseur" qui va se charger de redimensionner le fichier et le copie vers sa destination.
Tout se passe bien sauf que, quand je vais voir dans ma BD, il semblerait que la variable $userId soit égale à 0...
Je ne comprends pourtant pas. J'utilise la même disposition pour d'autres pages et ça marche parfaitement bien. J'ai essayé d'enlever mon JPEGCompresseur et mettre un simple move_uploaded_file mais ça ne marche toujours pas.
Si je met en clair dans le script
La ça fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $idUser=1;
Si quelqu'un à une idée car j'y planche depuis hier soir et rien à faire...
Merci
Partager