These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | /* |
||
3 | You may not change or alter any portion of this comment or credits |
||
4 | of supporting developers from this source code or any supporting source code |
||
5 | which is considered copyrighted (c) material of the original comment or credit authors. |
||
6 | |||
7 | This program is distributed in the hope that it will be useful, |
||
8 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
9 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
||
10 | */ |
||
11 | |||
12 | /** |
||
13 | * oledrion |
||
14 | * |
||
15 | * @copyright {@link http://xoops.org/ XOOPS Project} |
||
16 | * @license {@link http://www.fsf.org/copyleft/gpl.html GNU public license} |
||
17 | * @author Hervé Thouzard (http://www.herve-thouzard.com/) |
||
18 | */ |
||
19 | |||
20 | /** |
||
21 | * Téléchargement de fichier après passage d'une commande (et validation de celle-ci) |
||
22 | */ |
||
23 | require_once __DIR__ . '/header.php'; |
||
24 | error_reporting(0); |
||
25 | @$xoopsLogger->activated = false; |
||
0 ignored issues
–
show
|
|||
26 | |||
27 | $download_id = isset($_GET['download_id']) ? $_GET['download_id'] : ''; |
||
28 | |||
29 | // TODO: Permettre au webmaster de réactiver un téléchargement |
||
30 | |||
31 | if (xoops_trim($download_id) == '') { |
||
32 | Oledrion_utils::redirect(_OLEDRION_ERROR13, OLEDRION_URL, 5); |
||
33 | } |
||
34 | |||
35 | // Recherche dans les caddy du produit associé |
||
36 | $caddy = null; |
||
37 | $caddy = $h_oledrion_caddy->getCaddyFromPassword($download_id); |
||
38 | if (!is_object($caddy)) { |
||
39 | Oledrion_utils::redirect(_OLEDRION_ERROR14, OLEDRION_URL, 5); |
||
40 | } |
||
41 | |||
42 | // Recherche du produit associé |
||
43 | $product = null; |
||
44 | $product = $h_oledrion_products->get($caddy->getVar('caddy_product_id')); |
||
45 | if (null === $product) { |
||
46 | Oledrion_utils::redirect(_OLEDRION_ERROR15, OLEDRION_URL, 5); |
||
47 | } |
||
48 | |||
49 | // On vérifie que la commande associée est payée |
||
50 | $order = null; |
||
51 | $order = $h_oledrion_commands->get($caddy->getVar('caddy_cmd_id')); |
||
52 | if (null === $order) { |
||
53 | Oledrion_utils::redirect(_OLEDRION_ERROR16, OLEDRION_URL, 5); |
||
54 | } |
||
55 | |||
56 | // Tout est bon, on peut envoyer le fichier au navigateur, s'il y a un fichier à télécharger, et s'il existe |
||
57 | $file = ''; |
||
58 | $file = $product->getVar('product_download_url'); |
||
59 | if (xoops_trim($file) == '') { |
||
60 | Oledrion_utils::redirect(_OLEDRION_ERROR17, OLEDRION_URL, 5); |
||
61 | } |
||
62 | if (!file_exists($file)) { |
||
63 | Oledrion_utils::redirect(_OLEDRION_ERROR18, OLEDRION_URL, 5); |
||
64 | } |
||
65 | |||
66 | // Mise à jour, le fichier n'est plus disponible au téléchargement |
||
67 | $h_oledrion_caddy->markCaddyAsNotDownloadableAnyMore($caddy); |
||
68 | |||
69 | $fileContent = file_get_contents($file); |
||
70 | // Plugins ************************************************ |
||
71 | $plugins = Oledrion_plugins::getInstance(); |
||
72 | $parameters = new Oledrion_parameters(array( |
||
73 | 'fileContent' => $fileContent, |
||
74 | 'product' => $product, |
||
75 | 'order' => $order, |
||
76 | 'fullFilename' => $file |
||
77 | )); |
||
78 | $parameters = $plugins->fireFilter(Oledrion_plugins::EVENT_ON_PRODUCT_DOWNLOAD, $parameters); |
||
79 | if (trim($parameters['fileContent']) != '') { |
||
80 | $fileContent = $parameters['fileContent']; |
||
81 | } |
||
82 | // ********************************************************* |
||
83 | // Et affichage du fichier avec le type mime qui va bien |
||
84 | header('Content-Type: ' . Oledrion_utils::getMimeType($file)); |
||
85 | header('Content-disposition: inline; filename="' . basename($file) . '"'); |
||
86 | echo $fileContent; |
||
87 |
If you suppress an error, we recommend checking for the error condition explicitly: