我有一个简单的脚本允许用户注册帐户。在接收表单提交的脚本的以下两行中出现关于$ _POST索引未定义的警告:
$email = mysql_real_escape_string($_POST['email']);
$username = mysql_real_escape_string($_POST['username']);
我已尝试过var_dump($ _ POST),并明确定义了这些索引。此外,以下行有效,并输入您期望的信息:
$id = $this->flexi_auth->insert_user($email, $username, $password, false, false, true);
如果$_POST['email']
和$_POST['username']
确实未定义,则该行无法正常工作。在数据库中创建的用户使用在提交表单上输入的用户名和电子邮件。既然如此,为什么它会引发明显的错误警告呢?
答案 0 :(得分:2)
尝试这样的事情。
$email = '';
$username = '';
if(!empty($_POST['email']) && !empty($_POST['username'])
{
$email = mysql_real_escape_string($_POST['email']);
$username = mysql_real_escape_string($_POST['username']);
}
答案 1 :(得分:0)
它们可能是未定义的,因此可能是通知。
CodeIgniter has a function以帮助处理此问题,如果该项目不存在,则返回FALSE
:
$this->input->post('item');
所以,而不是:
$_POST['email']
您可以使用:
$this->input->post('email')
依旧......
您可能还想在创建新用户之前检查您是否拥有有效值(例如,不为空)。