<?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
// 查询数据库,看填写的用户名是否已经存在 $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
$username = $_POST['username'];
$pwd = $_POST['pwd'];
$repeat_pwd = $_POST['repeat_pwd'];
$name = $_POST['name'];
$email = $_POST['email'];
}
1、你可以将notice警告关掉
2、不要直接读取post中的内容,先用isset判断是否存在
example:
$username = isset($_POST['username'])?$_POST['username']:null;