使用$ _POST + = array作为默认值

问题描述

| 我正在填写一个小的联系表格,并且对提供
$_POST
的默认值有疑问。我询问默认值的原因是因为在表单中,我具有如下字段:
<input type=\"text\" name=\"fullname\" value=\"<?php echo $_POST[\'fullname\']; ?>\" />
显然,如果我不允许清除数据,我想保留提交的值。第一次加载页面时,这会产生错误,因为ѭ2s没有值。 对于我的问题:像在下一个代码示例中所做的那样,我是否应该为
$_POST
数组提供默认值?
$_POST += array(
  \'fullname\' = \'\',);
如果
$_POST[\'fullname\']
已经存在,它将被保留-如果不存在,它将在数组中创建。这样,在加载表单时,空白值将显示在输入字段中。 不用担心 我清理我的数据 感谢您的帮助     

解决方法

        即使这样做,也请将该数据放入容器中,不要修改超全局变量。创建将包含您的数据的类-然后您将使接口进行清理,操作并以适当的方式获取它。从$ _POST导入数据,然后验证(如果所有必需的值都在其中)。 至于代码:
<?php
class PostData
    {
    private $data;

    public function __construct(array $data)
        {
        $this->data = is_array($data)
            ? $data
            : array();
        }

    public function set($key,$value)
        {
        $this->data[$key] = $value;
        }

    public function get($key,$default,$escaping)
        {
        if(isset($this->data[$key]))
            {
            switch($escaping)
                {
                case \'htmlspecialchars\':
                    {
                    return htmlspecialchars($this->data[$key]);
                    break;
                    }
                case \'mysql_real_escape_string\':
                    {
                    return mysql_real_escape_string($this->data[$key]);
                    break;
                    }
                // and so on,your invention goes here
                default:
                    {
                    return $this->data[$key];
                    }
                }
            }
        else
            {
            return $default;
            }
        }
    }

$postData = new PostData($_POST);
    ,        创建函数:
function displayValue($field) {
  if(isset($_POST[$field])) {
    echo \'value=\"\' . htmlentities($_POST[$field]) . \'\"\';
  }
}
然后像这样使用:
<input type=\"text\" name=\"fullname\" <?php displayValue(\'fullname\'); ?> />
    ,        您也可以这样:
<?php echo empty($_POST[\'fullname\']) ? null : $_POST[\'fullname\']; ?>
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...