/** @var $element FormElementText */ $element = $form->factory('Text', 'allowIp', 'Source IP')->setDefaultValue($_SERVER['REMOTE_ADDR'])->setValidRegExp('(^(?P<first>[1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?P<second>[1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?P<third>[1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?P<fourth>[1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])$)')->setNotNull(); /** @var $element FormElementHidden */ $element = $form->factory('Hidden', 'doKnock')->setDefaultValue(1); return $form; } ############################################################################# ### INIT ############################################################################# $error = false; $html = new Html(); $html->setTitle('Knock PHP'); $html->addStyleSheet('static/default.css'); $message = new Message(); $button = new ButtonBar(); $button->addhtml('knock', 'knock knock', 'start knocking'); $form = form(); $form->fetch(); ############################################################################# ### CHECKS ############################################################################# if (!is_readable('../local_config.php')) { $message->addError('File "local_config.php" does not exists or is not readable. Please copy from "local_config_template.php" and configure it.'); $error = true; } if (!is_writable(PATH_FS_TMP)) { $message->addError('Temporary directory "' . PATH_FS_TMP . '" is not writable.'); $error = true; } ############################################################################# ### ACTION