??? ?? ?? ??
?? ??? ?? ???? ???????. ?? ????? ? ?? ????? ????:
1. ??? ??
2. ????
???? ? ??? ??? ? ????, ??? ???? POST ???? connect.php ???? ?????.
POST ???? ???? MySQL ??????? ???? ??? ??? ?????.
??? ??? ????.
<form action="connect.php" method="post"> 用戶(hù)名:<input type="text" name="username"><br /> 密碼:<input type="password" name="password"><br /> 重復(fù)密碼:<input type="password" name="repassword"><br /> <input type="submit" value="提交"> </form>
? ?? ??? ???? ?? ?? ?????? ???? ?????. ??? ??? ??? ??? ??? ??????.
1. ???? ?? ?? ?? ???? ???? ?? ???? ? ? ??? ????? ???? ?? ?? ?? ??? ???? ?????.
????? ?? ???? ??? ???? ????? ???? ????. ???? ??? ???? ??? ?????. ????? ?? ???????.
???? ???? ?? ? ??? ???? ? ?? ??? ? ??? ? ????. ??? ??? Trim? ???? ????? ???? ????? ?? ??? ???????.
if(trim($_POST['password']) != trim($_POST['repassword'])){ exit('兩次密碼不一致,請(qǐng)返回上一頁(yè)'); }
2. ? ???? ???????? ?? ???? ??? ???? ?? ??????? ?? ???.
???? ????? ??? ?????.
1. ???? ??? ??? ?? ??? ?? ??? ??? ???? ???. ? ??.
2. mysql ??? ???? ????? ?? ???? ??? ????? ?????? ? ??? ??????. ????? ??? ? ??? ?????. ?? ????? MD5? ????. ???? ?? ??? ??? ??? ??????.
??? ?? ????? ??? ?????.
1. ???? ???? Unix ?????
2. IP ??? ip2long? ???? ?? ???? ??? ? ????.
$username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = ip2long($_SERVER['REMOTE_ADDR']);
3. ?????? ??, ?? ??, ????? ? ?? ?? ??1. mysqli_connect? ???? ??????? ?????. ??? ??.
2. ??? ??? mysqli_errno? ???? ?? ??? ?????
3. ??? ??? mysqli_error? ?? ??? ???? ???? ??? ?????
4. ??????? ???? ?? ??? utf8? ?????.
//??????? ??
$conn = mysqli_connect('localhost','root','123456789');
//??? ??? ?? ??? ????
if(mysqli_errno($conn)){ echo mysqli_error($conn); exit; } mysqli_select_db($conn,'book'); mysqli_set_charset($conn,'utf8');
4. ?? SQL ? ?? ??? ??????? ???? ???. ??? ??, ????, ?? ?? ? IP.
SQL ?? ?? ??? ???? ???. ??? SQL ?? ??? ????.
$sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')";
??? ???? ???? ???? ??? ????.
CREATE TABLE IF NOT EXISTS user ( id int(11) NOT NULL, username varchar(30) NOT NULL, password char(32) NOT NULL, createtime int(11) NOT NULL, createip int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
??? ??(?? ?? ??):
5. ???? ??? ??? ?????.
mysqli_query ??? ???? ? ?? ????? ????? ???.
1. ??? ???, ??? ?? ??? $conn???.
2. SQL ?? ???????. $sql? ??? ?? ???? ????.
mysqli_query? ?? SQL?? MySQL ??? ?? ? ????. $result? ????? ???? true???. ??? ??? ?????.
???? ????? ??? ????? ???? ??? ? ????.
?? ???? mysqli_insert_id()? ???? ? ?? ????. ??? ?? ??? ?? ? ID? ?????.
??? ??? ? ?? ??? ? ?? ???? ??? ??? ????.
mysqli_insert_id ?????? ????: ?? ??? ??? ?. ? ID ?? ?? ???? ??? ? ???? ???? ID ?? ???? ???. ? ??? ???? ???.
$result = mysqli_query($conn,$sql); if($result){ echo '注冊(cè)成功'; }else{ echo '注冊(cè)失敗'; } echo '當(dāng)前用戶(hù)插入的ID為'.mysqli_insert_id($conn);
5. ?????? ??? ????.
resource ??? mysqli_close ??? ?????.
mysqli_close($conn);
??? ??? ?? ?? ?? ??? ???????. ??? ???? ??? ?? ?????.
??? ??? connect.php ??? ??? ????.
<?php if (trim($_POST['password']) != trim($_POST['repassword'])) { exit('兩次密碼不一致,請(qǐng)返回上一頁(yè)'); } $username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = $_SERVER['REMOTE_ADDR']; $conn = mysqli_connect('localhost', 'root', '123456789'); //如果有錯(cuò)誤,存在錯(cuò)誤號(hào) if (mysqli_errno($conn)) { echo mysqli_error($conn); exit; } mysqli_select_db($conn, 'book'); mysqli_set_charset($conn, 'utf8'); $sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')"; $result = mysqli_query($conn, $sql); if ($result) { echo '成功'; } else { echo '失敗'; } echo '當(dāng)前用戶(hù)插入的ID為' . mysqli_insert_id($conn); mysqli_close($conn); ?>