We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33191
    • 15 Posts
    Bonjour,
    Je ne sais pas si je suis au bon endroit pour poster ceci, car ce topic est destiné à être une info pour ceux qui voudrait utiliser ou essaient d’utiliser l’excellent snippet et plugin associé, FileDownload et FileDownloadPlugin et qui ont infomaniak.ch comme hébergeur.
    Bien entendu ceux qui rencontre la même erreur chez un autre hébergeur pourront y remédier de la même façon.

    Après quelques recherches pour paramétrer FileDownload 2.5, je me suis retrouvé face à cette erreur :
    « MODx Parse Error »
    MODx encountered the following error while attempting to parse the requested resource:
    « PHP Parse Error »

    PHP error debug
    Error: set_time_limit() has been disabled for security reasons
    Error type/ Nr.: Warning - 2
    File: /home/www/1263ae0777d4b1e0614a6d52b51e5e45/web/modx/manager/includes/document.parser.class.inc.php(724) : eval()’d code
    Line: 154

    Parser timing
    MySQL: 0.0358 s (60 Requests)
    PHP: 0.1328 s
    Total: 0.1686 s
    Cette erreur est due au fait que infomaniak.ch a désactivé, pour des raisons de sécurité, la fonction php "set_time_limit()" et a limité le temps d’exécution d’un script à 10 sec. maxi, par défaut php limite à 30 sec (set_time_limit() permet de changer cette valeur).

    Donc pour pouvoir malgré tout utiliser FileDownload, il suffit d’aller commenter l’appel de la fonction dans FileDownloadPlugin, c’est vers la fin du script (dernier tier). voici la partie concernée :
    if($fp = @fopen($downloadFile, "r"))
    {
    while(@ob_end_clean());
    //set_time_limit(0); <--- l’appel de la fonction commentée
    ignore_user_abort(1);
    $aborted = false;
    for($rno = 0; !$aborted && (($rno < $parts) || (!$rno && !$parts)); $rno ++)
    {..etc...
    Et voilà ça fonctionne, vos visiteurs peuvent télécharger des fichiers depuis votre site smiley

    Seul inconvénient :
    Cette fonction à cet endroit dit :
    exécuter ce script sans limite de temps et en tâche de fond (ignore_user_abort(1)).
    On se retrouve, sans cet appel, à une limite de temps de 10 sec d’exécution (chez infomaniak), ce qui posera un problème avec les très gros fichiers qui demandent plus de 10 sec. de traitement, car l’exécution s’arrêtera après 10 sec et renverra une erreur fatale sad
    Il faut juste le savoir et faire avec wink

    Attention, ne pas confondre le temps d’exécution du script et le temps de téléchargement du fichier, ce n’est pas la même chose !

    En espérant que ça rendra service....
      • 11975
      • 2,542 Posts
      Salut,

      Merci de partager ton expérience et la solution.
      Tu devrais éditer le titre de ton post et le faire précéder par [Infos-Astuce] ou qq chose dans le genre.

      :-)
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 33191
        • 15 Posts
        Merci heliotrope,
        voilà qui est fait et content de pouvoir apporter un p’tit quelque chose.