X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fmanagedaction.php;h=4caf977210f3d6b9897b5114ca4806c6ce6ea281;hb=346e34e543be179967a704b813883d4d12784fa2;hp=278131b7a6461db41501a8ad417ccfa09fc52874;hpb=1ee79dc3791162f7ef9b92befaef597328266ce1;p=quix0rs-gnu-social.git diff --git a/lib/managedaction.php b/lib/managedaction.php index 278131b7a6..4caf977210 100644 --- a/lib/managedaction.php +++ b/lib/managedaction.php @@ -64,9 +64,38 @@ class ManagedAction extends Action $this->showPage(); } + /** + * If this is extended in child classes, they should + * end with 'return parent::handlePost();' - and they + * should only extend this function if what they do + * cannot be handled in ->doPost() + */ protected function handlePost() { // This will only be run if the Action has the property canPost==true assert($this->canPost); + + // check for this before token since all POST and FILES data + // is losts when size is exceeded + if (empty($_POST) && $_SERVER['CONTENT_LENGTH']>0) { + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s MiB) due to its current configuration.', + 'The server was unable to handle that much POST data (%s MiB) due to its current configuration.', + round($_SERVER['CONTENT_LENGTH']/1024/1024,2)); + throw new ClientException($msg); + } + + $this->checkSessionToken(); + return $this->doPost(); + } + + /** + * Do Post stuff. Return a string if successful, + * describing what has been done. Always throw an + * exception on failure, with a descriptive message. + */ + protected function doPost() { + return false; } }