初始化未从POST调用的变量

时间:2014-03-25 00:14:54

标签: php forms post

我正在学习如何编写PHP代码,我有两个页面:rates.html和rates.php。我们的任务是它,所以我们只需要运行rates.php,不再需要使用rates.html。我解决这个问题的方法如下:

if (empty($_POST['txtInput'])){
    $inputCurrency = 0;
    $outputCurrency = 0;
    $txtInput = '';
} else {
    $inputCurrency = $_POST['inputCurrency'];
    $outputCurrency = $_POST['outputCurrency'];
    $txtInput = $_POST['txtInput'];
}

输入和输出货币以下拉列表的形式生成,txtInput是用户想要转换的数字。

唯一的问题是,当用户在字段中提交没有任何输入的表单时,我的页面会抛出错误消息。该页面加载以下代码:

if ( empty($txtInput) ) {
    $error_message = 'Input is a required field.'; }
else if ( !is_numeric($txtInput) )  {
    $error_message = 'Input must be a valid number.'; }
else if ( $txtInput <= 0 ) {
    $error_message = 'Input must be greater than zero.'; }
else {
    $error_message = ''; }

有没有办法让首先加载的页面上没有抛出标志?任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

包装你的逻辑应该只在if块中提交表单时运行,if块检查表单是否通过POST提交:

if ('POST' === $_SERVER['REQUEST_METHOD']) {
    // Form submitted.  Put form logic here.
}