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

<?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

//你的问题主要是表单提交的数据为空时并未进行变量赋值,以下是改进代码,供参考

$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 "注册失败";
    }

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-14
你判断空是对的,但是判断完空后,$username = $_POST["username"];这个就不会执行了。

也就是说你传了空值你的函数就会报错。
第2个回答  2013-08-14
$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语句写错本回答被提问者和网友采纳

php提交表单的时候报错, Undefined variable: username
\/\/你的问题主要是表单提交的数据为空时并未进行变量赋值,以下是改进代码,供参考$username = $_POST["username"]; \/\/获取用户名$password = $_POST["password"]; \/\/获取密码$repassword = $_POST["repassword"]; \/\/获取确认密码\/\/PS:密码为啥不用md5加密下?\/\/这些判断比较毛糙,请根据实际...

php为什么出错? Notice: Undefined variable: name in D:\\Program Fi...
php错误提示:Notice: Undefined variable,是设置错误造成的,解决方法如下:1、首先在电脑中,找到并打开xampp工具。2、然后在打开的页面中,点击Apache,接着把端口为8080。3、接着启动Apache服务。4、然后打开xampp工具,找到并新建PHP文件。5、然后编写php文件代码,最后保存htdocs文件夹,就可以运行PHP...

PHP出现Undefined variable
首先在 if($action=="放弃!") 这一行 上写if(!isset($action)) exit;\/\/如果没有提交表单则不运行下面的PHP 其次,你这边是PHP提交,应该使用$_POST['action']的方式获取提交的表单变量 _POST['name'],$_POST['email'],$_POST['msg']...

php 中的Undefined variable:
原因:不是错误,是警告,警告端口错误导致。解决方法:可以尝试以下方法来解决此问题。1.在计算机中找到并打开xampp工具。2.然后,在打开的页面上,单击Apache,并将端口更改为8080。3.然后启动Apache服务,如下图所示。4.然后打开xampp工具,找到并创建一个新的PHP文件。5.编写PHP文件代码,保存htdoc...

PHP代码Undefined variable是什么意思
你的$file变量未定义,在for循环之前添加语句$file = '';

PHP中Notice: Undefined variable
你的变量赋值语句是否放在if条件或者循环里面,实际没有执行哦,看起来你的代码不会出现这样的错误:\/\/ 全图像路径:$image = "E:\/wamp\/www\/uploads\/{$_GET['image']}";\/\/ 获取图像信息:$info = getimagesize($image);$fs = filesize($image); 即使$_GET没有值,那$image的值至少也有...

php Undefined variable错误 请真正的高手帮忙
php是直接可以使用变量,而不是输出,输出这个变量首先就要赋值(定义)吧?(所以要输出,首先要定义这个变量,哪怕为空呢!)。像asp是不可以直接使用的,他必须要先定义,否则不能使用,当你给php变量赋值的时候,已经算是开始使用变量了,希望你有所收获!

Undefinedvariable
Undefined variable求助。最近遇到一个Undefined variable的问题。2台不同的电脑,一台电脑安装了 PHPnow ,可以正常显示,另一台电脑手动安装 php5.3, apache2, mysql5.5 .错误地方在 foreach(.){\/\/ mysql query php .= ''.$row[ctc].'';\/\/这一行报错 } echo $php;问题在php.ini设置,...

PHP Notice: Undefined variable 错误
在$rs=mysql_fetch_array($b); 之前加上一句 $rs = array();

PHP 请问 Notice: Undefined variable
-_-|| 好长的代码,undefine variable意思就是没有定义变量,Notice只是提示而已,你这里的提示就是在第44行没有定义rs这个变量,当然PHP应该是属于动态语言,所以这里只是提示,想忽略的话可以用@,我是不晓得你的第44行在哪。。。

相似回答