如果在我的注册表单中发送空帖,我收到错误消息
注意:未定义的索引:第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");
}
}
}
}
&GT;
为什么我收到此警报消息?
感谢
答案 0 :(得分: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"]);
答案 1 :(得分:0)
这不是错误,但如果通知和通知不重要,可以忽略它。
if(isset($_POST['terms']))$terms = trim($_POST["terms"]);
PHP中的 isset()
函数确定变量是否已设置且不是NULL。它返回一个布尔值,也就是说,如果设置了变量,它将返回true,如果变量值为null,则返回false。
您也可以使用
关闭通知error_reporting(E_ALL ^ E_NOTICE);
在您的脚本开头..