Bonjour à tous,
Voilà j'ai récupéré un script sur internet permettant d'insérer dans une base de donnée sql, un fichier.
Dans ce code se trouve une classe FileFromDB et une fonction UPLOAD(). Dans la fonction j'ai besoin de récupérer la variable $ref que j'ai déclarée tout au début en global pour pouvoir pointer sur la bonne case dans ma base de données. (Et accessoirement je l'ai même redéclarer dans la fonction, on sait jamais...)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 <?php $ref = @$_POST['reference_projet']; global $ref; echo $ref; // premier test /* Connexion à une base ODBC avec l'invocation de pilote */ $dsn = 'mysql:dbname=bdd;host=localhost'; $user = 'root'; $password = ''; try { $PDO = new PDO($dsn, $user, $password); } catch (PDOException $e) { echo 'Connexion échouée : ' . $e->getMessage(); } class FileFromDB { private $filename; public function __construct($filename) { $this->filename = $filename; } public function upload($file) { global $PDO; global $ref; echo "référence ".$ref; // deuxieme test $stmt = $PDO->prepare('UPDATE file SET name = ?, type = ?, data_figure = ? WHERE ref = "$ref"'); $stmt->bindParam(1, $this->filename); $stmt->bindParam(2, $file['type']); $stmt->bindParam(3, fopen($file['tmp_name'], 'rb'), PDO::PARAM_LOB); return $stmt->execute(); } } $message = null; if (isset($_FILES['myFile'])) { $File = new FileFromDB($_FILES['myFile']['name']); $File->upload($_FILES['myFile']); $message = 'Votre fichier a bien été ajouté'; } ?> <html> <head> <title>Upload</title> </head> <body> <form method="post" enctype="multipart/form-data"> <?php echo $message; ?> <fieldset> <legend>Charger un fichier</legend> <p> <label for="myFile">Fichier</label> <input type="file" id="myFile" name="myFile" /> </p> <p> <input type="reset" value="Annuler" /> <input type="submit" value="Envoyer" /> </p> </fieldset> </form> </body> </html
Vous remarquerez que j'ai une ligne echo "reference :".$ref; que j'ai annoté //deuxieme test
j'ai ajouté ceci juste pour voir si j'arrive à afficher $ref, évidemment non quand je clique sur envoyer je n'affiche pas $ref.
Par contre le premier echo $ref correspondant au premier test fonctionne (tout en haut) !
C'est donc que la variable lorsque je clique sur ENVOYER n'est pas récupérée dans la classe FileFromDB et donc nomplus dans la fonction UPLOAD().
Voilà tout j'espère avoir été suffisamment clair, et j'espère que vous pourrez m'aider !
très cordialement,
globolite
Partager