-1

如果在我的注册表单中发送空帖子,我会收到错误消息

注意:未定义索引:第 34 行 /opt/lampp/htdocs/user/register.php 中的术语

在第 34 行我有这个

$terms = trim($_POST["terms"]);

并以我的形式

<p>
<input type="checkbox" name="terms" id="terms"> I have read and accept the conditions of use
</p>

这就是所有的验证表格

if(!empty($_POST))
{
        $errors       = array();
        $terms        = trim($_POST["terms"]);
        $captcha      = md5($_POST["captcha"]);
    $name         = trim($_POST["name"]);

    if($terms == "")
    {
        $errors[] = lang("ACCOUNT_SPECIFY_NAME");
    }

    //End data validation
    if(count($errors) == 0)
    {   
            //Construct a user object
            $user = new User($username,$password,$email,$name,$lastname);

            //Checking this flag tells us whether there were any errors such as possible data duplication occured
            if(!$user->status)
            {
                if($user->username_taken) $errors[] = lang("ACCOUNT_USERNAME_IN_USE",array($username));
                if($user->email_taken)    $errors[] = lang("ACCOUNT_EMAIL_IN_USE",array($email));   
                if($user->email_blocked)  $errors[] = lang("ACCOUNT_EMAIL_BLOCKED");        
            }
            else
            {
                //Attempt to add the user to the database, carry out finishing  tasks like emailing the user (if required)
                if(!$user->userCakeAddUser())
                {
                    if($user->mail_failure) $errors[] = lang("MAIL_ERROR");
                    if($user->sql_failure)  $errors[] = lang("SQL_ERROR");
                }
            }
    }
}

?>

为什么我收到此警报消息?

谢谢

4

2 回答 2

0

这不是一个错误,而是一个通知,如果它不是关键的,可以忽略它。

if(isset($_POST['terms']))$terms = trim($_POST["terms"]);

isset()PHP 中的函数确定变量是否已设置且不为 NULL。它返回一个布尔值,也就是说,如果设置了变量,则返回 true,如果变量值为 null,则返回 false。

您也可以使用关闭通知

error_reporting(E_ALL ^ E_NOTICE);

在脚本的开头..

于 2012-11-02T14:50:11.437 回答
0

尝试替换这个:

if(!empty($_POST))

有了这个:

if(!empty($_POST["terms"]))

您需要确保数组$_POST具有包含关键术语的值

编辑:

尝试这个:

$terms        = empty($_POST["terms"]) ? null : trim($_POST["terms"]);
$captcha      = empty($_POST["captcha"]) ? null : md5($_POST["captcha"]);
$name         = empty($_POST["name"]) ? null : trim($_POST["name"]);

而不是这个:

$terms        = trim($_POST["terms"]);
$captcha      = md5($_POST["captcha"]);
$name         = trim($_POST["name"]);
于 2012-11-02T14:49:13.423 回答