]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #2411: Show message when upload exceeds PHP limits, and show limits in Server...
authorSteve Clay <steve@mrclay.org>
Wed, 16 May 2012 15:27:25 +0000 (11:27 -0400)
committerSteve Clay <steve@mrclay.org>
Wed, 16 May 2012 15:27:25 +0000 (11:27 -0400)
engine/lib/actions.php
languages/en.php
views/default/admin/statistics/server/php.php

index c6613e6d6c863445f35c4abc898500b062cb4b85..3a7c02488c3cdd414efaeb95459b2087abba5368 100644 (file)
@@ -273,8 +273,19 @@ function validate_action_token($visibleerrors = TRUE, $token = NULL, $ts = NULL)
                } else if ($visibleerrors) {
                        register_error(elgg_echo('actiongatekeeper:tokeninvalid'));
                }
-       } else if ($visibleerrors) {
-               register_error(elgg_echo('actiongatekeeper:missingfields'));
+       } else {
+               if (! empty($_SERVER['CONTENT_LENGTH']) && empty($_POST)) {
+                       // The size of $_POST or uploaded file has exceed the size limit
+                       $error_msg = elgg_trigger_plugin_hook('action_gatekeeper:upload_exceeded_msg', 'all', array(
+                               'post_size' => $_SERVER['CONTENT_LENGTH'],
+                               'visible_errors' => $visibleerrors,
+                       ), elgg_echo('actiongatekeeper:uploadexceeded'));
+               } else {
+                       $error_msg = elgg_echo('actiongatekeeper:missingfields');
+               }
+               if ($visibleerrors) {
+                       register_error($error_msg);
+               }
        }
 
        return FALSE;
index 7b51b0c7d58a7060bc2f27c75606db7b250d89a5..ff730a01884829180185df718e251d40bfb347f8 100644 (file)
@@ -741,6 +741,9 @@ $english = array(
        'admin:server:label:mem_avail' => 'Memory available',
        'admin:server:label:mem_used' => 'Memory used',
        'admin:server:error_log' => "Web server's error log",
+       'admin:server:label:post_max_size' => 'POST maximum size',
+       'admin:server:label:upload_max_filesize' => 'Upload maximum size',
+       'admin:server:warning:post_max_too_small' => '(Note: <code>post_max_size</code> must be larger than this value to support uploads of this size)',
 
        'admin:user:label:search' => "Find users:",
        'admin:user:label:searchbutton' => "Search",
@@ -1171,6 +1174,7 @@ You cannot reply to this email.",
        'actiongatekeeper:tokeninvalid' => "We encountered an error (token mismatch). This probably means that the page you were using expired.",
        'actiongatekeeper:timeerror' => 'The page you were using has expired. Please refresh and try again.',
        'actiongatekeeper:pluginprevents' => 'A extension has prevented this form from being submitted.',
+       'actiongatekeeper:uploadexceeded' => 'The size of file(s) uploaded exceeded the limit set by your site administrator',
 
 
 /**
index 4a59b95fbd4757442164b66bdbdf30f070a14773..7c6a5138309d75aa342612c7e3eb32b503d4def6 100644 (file)
@@ -8,6 +8,15 @@ if (!$php_log) {
        $php_log = elgg_echo('admin:server:error_log');
 }
 
+$post_max_size = elgg_get_ini_setting_in_bytes('post_max_size');
+$upload_max_filesize = elgg_get_ini_setting_in_bytes('upload_max_filesize');
+
+$post_max_size_warning = '';
+if ($upload_max_filesize > $post_max_size) {
+       // @todo show a link to something like http://nigel.mcnie.name/blog/uploadmaxfilesizepostmaxsize-experimentation ?
+       $post_max_size_warning = elgg_echo('admin:server:warning:post_max_too_small');
+}
+
 ?>
 <table class="elgg-table-alt">
        <tr class="odd">
@@ -30,4 +39,12 @@ if (!$php_log) {
                <td><b><?php echo elgg_echo('admin:server:label:mem_used'); ?> :</b></td>
                <td><?php echo number_format(memory_get_peak_usage()); ?></td>
        </tr>
+       <tr class="even">
+               <td><b><?php echo elgg_echo('admin:server:label:post_max_size'); ?> :</b></td>
+               <td><?php echo number_format($post_max_size); ?></td>
+       </tr>
+       <tr class="odd">
+               <td><b><?php echo elgg_echo('admin:server:label:upload_max_filesize'); ?> :</b></td>
+               <td><?php echo number_format($upload_max_filesize) . '&nbsp; ' . $post_max_size_warning; ?></td>
+       </tr>
 </table>