<?php$username   = $_POST['username'];$pwd        = $_POST['pwd'];$repeat_pwd = $_POST['repeat_pwd'];$name       = $_POST['name'];$email      = $_POST['email'];if (!empty($username)) {        // 用户填写了数据才执行数据库操作    // 调用mysqli的构造函数建立连接,同时选择使用数据库'test'    $db = @new mysqli("127.0.0.1", "root", "123456", "test");    // 检查数据库连接    if (mysqli_connect_errno()) {        echo "数据库连接失败!<br>\n";        echo mysqli_connect_error();        exit;   // 退出程序,后面的所有语句将不再执行    }
 // 查询数据库,看填写的用户名是否已经存在    $sql = "SELECT * FROM t_user WHERE f_username='$username'";    $rs = $db->query($sql);    // $rs->num_rows判断上面的执行结果是否含有记录,有记录说明用户名已经存在    if ($rs && $rs->num_rows > 0) {        echo "<font color='red' size='5'>该用户名已被注册,请换一个重试!</font><br>\n";    }
else{ // 将用户信息插入数据库的t_user表 $sql = "INSERT INTO t_user (f_username, f_password, f_name, f_email) VALUES"; $sql .= "('$username', '$pwd', '$name', '$email')"; $rs = $db->query($sql); if (!$rs) { $db->close(); // 关闭数据库连接 echo '数据记录插入失败!'; exit; } echo "<font color='red' size='5'>恭喜您注册成功!</font><br>\n";
 // 将输出重定向到register_result.php文件  header("Location: register_result.php?uid=$username");
}
 // 关闭数据库连接 $db->close();}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Registering form</title>
<style type="text/css">
body {text-align:center; font:12px/1.5 arial;background:#eeeeee;}
h1 {color:#330066;margin-top:100px;}
input{ border:solid 1px #666666;height:20;font-size: 12px;;margin:5px;}
</style><script language='javascript'><!--// 验证表单数据有效性的函数// 当函数返回true时,说明验证成功,表单数据正常提交// 当函数返回false时,说明验证失败,表单数据被终止提交function doCheck(){    var username   = document.frmRegister.username.value;    var pwd         = document.frmRegister.pwd.value;    var repeat_pwd = document.frmRegister.repeat_pwd.value;    var name        = document.frmRegister.name.value;    var email       = document.frmRegister.email.value;       if (username == '') {        alert('请输入用户名!'); return false;    }    if (pwd == '') {        alert('请输入密码!'); return false;    }    if (name == '') {        alert('请输入姓名!'); return false;    }    if (email == '') {        alert('请输入Email!'); return false;    }    if (repeat_pwd != pwd) {        alert('重复密码与密码不一致!'); return false;    }    if (pwd.length < 6 || pwd.length > 30) {        alert('密码必须在6到30个字符之间!'); return false;    }       // 验证Email的格式,如果长度小于6或者不含'@'符号和'.'符则认为格式不正确    if (email.length <= 5            || email.indexOf('@') < 1 || email.indexOf('.') < 3) {        alert('Email填写不正确!'); return false;
    }       return true;}--></script></head>
<body><h1>My Records </h1>
<hr width="1000">
<form name="frmRegister" method="post" action="login.php" onsubmit= "return doCheck();">
<table width="330" border="0" align="center" cellpadding="5" bgcolor= "#eeeeee">
<tr>
<td width="40%">用户名:</td>
<td><input name="username" type="text" id="username"> </td>
</tr>
<tr>
<td>密码:</td>
<td><input name="pwd" type="password" id="pwd"></td>
</tr>
<tr>
<td>重复密码:</td>
<td><input name="repeat_pwd" type="password" id="repeat_pwd"></td>
</tr>
<tr>
<td>姓名:</td>
<td><input name="name" type="text" id="name"></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="提交">
<input type="reset" name="reset" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>初学者 问题:
Notice: Undefined index: username in E:\web\test\login.php  on line 3Notice: Undefined index: pwd in E:\web\test\login.php on line 5Notice: Undefined index: repeat_pwd in E:\web\test\login.php on line 7Notice: Undefined index: name in E:\web\test\login.php on line 9Notice: Undefined index: email in E:\web\test\login.php on line 11

解决方案 »

  1.   

    确认有效后再使用!if($_SERVER['REQUEST_METHOD'] == "POST") {
      $username = $_POST['username'];
      $pwd = $_POST['pwd'];
      $repeat_pwd = $_POST['repeat_pwd'];
      $name = $_POST['name'];
      $email = $_POST['email'];
    }
      

  2.   

    2个办法解决这个问题
    1、你可以将notice警告关掉
    2、不要直接读取post中的内容,先用isset判断是否存在
    example:
    $username = isset($_POST['username'])?$_POST['username']:null;