php提交表单的时候报错, Undefined variable: username

<?php/*checkwhetherthepostdataisempty*/if(!empty($_POST["username"])){$username=$_POS... <?php

/* check whether the post data is empty */
if(!empty($_POST["username"]))
{
$username = $_POST["username"];
}

if(!empty($_POST["password"]))
{
$password = $_POST["password"];
}

if(!empty($_POST["repassword"]))
{
$repassword = $_POST["repassword"];
}

$sql_insert = <<<EOF
insert into users values("","$username","$password","$repassword");
EOF;
$result=mysql_query($sql_insert);
if($result){
echo "注册成功";
}else{
echo "注册失败";
}
?>

Notice: Undefined variable: username in C:\xampp\htdocs\hotel\register.php on line 20

Notice: Undefined variable: password in C:\xampp\htdocs\hotel\register.php on line 20

Notice: Undefined variable: repassword in C:\xampp\htdocs\hotel\register.php on line 20
展开
 我来答
adebug
推荐于2018-05-16 · 超过29用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:77.4万
展开全部
	//你的问题主要是表单提交的数据为空时并未进行变量赋值,以下是改进代码,供参考

$username = $_POST["username"]; //获取用户名
$password = $_POST["password"]; //获取密码
$repassword = $_POST["repassword"]; //获取确认密码

//PS:密码为啥不用md5加密下?


//这些判断比较毛糙,请根据实际做进一步改写 PS:前台也加上JS表单验证 
    if(empty($username)){
echo "用户名不能为空!"; //用户名为空直接退出执行
//echo "<script>alert('用户名不能为空');history.back();</"."script>"; //用户名为空直接退出执行
exit;
    }
    if(empty($password)){
echo "密码不能为空"; //密码为空直接退出执行
//echo "<script>alert('密码不能为空');history.back();</"."script>"; //密码为空直接退出执行
exit;
    }
    if(empty($repassword) || $password!=$repassword){
echo "两次密码输入不一致"; //确认密码为空或不等于密码,则提示并退出执行
//echo "<script>alert('两次密码输入不一致');history.back();</"."script>"; //确认密码为空或不等于密码,则提示并退出执行
exit;
    }
//PS:你的这句sql语句有问题吧? 参考语句
//$sql_insert = "insert into users(name,pass) values('$username','$password')";
//PS:用户ID一般设置为主键且自动增加,确认密码主要是为了防止用户输错密码而忘记,一般不参与入库
    $sql_insert = <<<EOF
        insert into users values("","$username","$password","$repassword");
EOF;
    $result=mysql_query($sql_insert);
    if($result){
        echo "注册成功";
    }else{
        echo "注册失败";
    }
supersgb
2013-08-14 · TA获得超过1094个赞
知道小有建树答主
回答量:1005
采纳率:0%
帮助的人:662万
展开全部
你判断空是对的,但是判断完空后,$username = $_POST["username"];这个就不会执行了。

也就是说你传了空值你的函数就会报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜遇黄蝴蝶
2013-08-14 · 超过16用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:37.3万
展开全部
$name=$_POST['username'];
$password=md5($_POST['password']);
$repass=$_POST['repassword'];

if(!$name) {
echo "<script>alert('用户名不能为空');window.history.back();</script>";
}
if(!$password) {
echo "<script>alert('密码不能为空');window.history.back();</script>";
}

那你这样获值 判断,再插入。再不行 就是你sql语句写错
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式