XoopsModules25x /
oledrion
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 The XOOPS Project http://sourceforge.net/projects/xoops/ |
||
| 16 | * @license http://www.fsf.org/copyleft/gpl.html GNU public license |
||
| 17 | * @author Hervé Thouzard (http://www.herve-thouzard.com/) |
||
| 18 | * @version $Id: download.php 12290 2014-02-07 11:05:17Z beckmi $ |
||
| 19 | */ |
||
| 20 | |||
| 21 | /** |
||
| 22 | * Téléchargement de fichier après passage d'une commande (et validation de celle-ci) |
||
| 23 | */ |
||
| 24 | require_once 'header.php'; |
||
| 25 | error_reporting(0); |
||
| 26 | @$xoopsLogger->activated = false; |
||
|
0 ignored issues
–
show
|
|||
| 27 | |||
| 28 | $download_id = isset($_GET['download_id']) ? $_GET['download_id'] : ''; |
||
| 29 | |||
| 30 | // TODO: Permettre au webmaster de réactiver un téléchargement |
||
| 31 | |||
| 32 | if (xoops_trim($download_id) == '') { |
||
| 33 | oledrion_utils::redirect(_OLEDRION_ERROR13, OLEDRION_URL, 5); |
||
| 34 | } |
||
| 35 | |||
| 36 | // Recherche dans les caddy du produit associé |
||
| 37 | $caddy = null; |
||
| 38 | $caddy = $h_oledrion_caddy->getCaddyFromPassword($download_id); |
||
| 39 | if (!is_object($caddy)) { |
||
| 40 | oledrion_utils::redirect(_OLEDRION_ERROR14, OLEDRION_URL, 5); |
||
| 41 | } |
||
| 42 | |||
| 43 | // Recherche du produit associé |
||
| 44 | $product = null; |
||
| 45 | $product = $h_oledrion_products->get($caddy->getVar('caddy_product_id')); |
||
| 46 | if ($product == null) { |
||
| 47 | oledrion_utils::redirect(_OLEDRION_ERROR15, OLEDRION_URL, 5); |
||
| 48 | } |
||
| 49 | |||
| 50 | // On vérifie que la commande associée est payée |
||
| 51 | $order = null; |
||
| 52 | $order = $h_oledrion_commands->get($caddy->getVar('caddy_cmd_id')); |
||
| 53 | if ($order == null) { |
||
| 54 | oledrion_utils::redirect(_OLEDRION_ERROR16, OLEDRION_URL, 5); |
||
| 55 | } |
||
| 56 | |||
| 57 | // Tout est bon, on peut envoyer le fichier au navigateur, s'il y a un fichier à télécharger, et s'il existe |
||
| 58 | $file = ''; |
||
| 59 | $file = $product->getVar('product_download_url'); |
||
| 60 | if (xoops_trim($file) == '') { |
||
| 61 | oledrion_utils::redirect(_OLEDRION_ERROR17, OLEDRION_URL, 5); |
||
| 62 | } |
||
| 63 | if (!file_exists($file)) { |
||
| 64 | oledrion_utils::redirect(_OLEDRION_ERROR18, OLEDRION_URL, 5); |
||
| 65 | } |
||
| 66 | |||
| 67 | // Mise à jour, le fichier n'est plus disponible au téléchargement |
||
| 68 | $h_oledrion_caddy->markCaddyAsNotDownloadableAnyMore($caddy); |
||
| 69 | |||
| 70 | $fileContent = file_get_contents($file); |
||
| 71 | // Plugins ************************************************ |
||
| 72 | $plugins = oledrion_plugins::getInstance(); |
||
| 73 | $parameters = new oledrion_parameters(array('fileContent' => $fileContent, 'product' => $product, 'order' => $order, 'fullFilename' => $file)); |
||
| 74 | $parameters = $plugins->fireFilter(oledrion_plugins::EVENT_ON_PRODUCT_DOWNLOAD, $parameters); |
||
| 75 | if (trim($parameters['fileContent']) != '') { |
||
| 76 | $fileContent = $parameters['fileContent']; |
||
| 77 | } |
||
| 78 | // ********************************************************* |
||
| 79 | // Et affichage du fichier avec le type mime qui va bien |
||
| 80 | header("Content-Type: " . oledrion_utils::getMimeType($file)); |
||
| 81 | header('Content-disposition: inline; filename="' . basename($file) . '"'); |
||
| 82 | echo $fileContent; |
||
| 83 |
If you suppress an error, we recommend checking for the error condition explicitly: