PHP? ??? ?? ??? ?? ??????? ?????.
?? ??? ?? ???? ???????. ?? ????? ? ?? ????? ????:
1. ??? ??
2. ????
3. ???? ??
???? ? ??? ???. ???? ??? ??? ???? POST ???? connect.php ???? ?????.
POST ???? ???? MySQL ??????? ???? ??? ??? ?????.
??? ??? ????.
<form action="connect.php" method="post"> 用戶名:<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)返回上一頁'); }
2. ? ???? ?????
??? ?? ???? ??? ???? ?? ??????? ?? ???.
???? ???? ??? ????.
變量 | 說明 |
---|---|
$_POST['username'] | 用戶名 |
$_POST['password'] | 密碼 |
???? ??? ???? ??? ??? ?? ??? ??? ???? ???.
mysql ??? ????? ???? ????? ?? ???? ??? ????? ???? ? ???. ????? ??? ? ??? ?????. ?? ????? MD5? ????. ???? ?? ??? ??? ??? ??????.
??? ?? ????? ??? ?????.
變量 | 說明 |
---|---|
$time | 用戶的注冊(cè)時(shí)間 |
$_SERVER['REMOTE_ADDR'] | 用戶的注冊(cè)IP |
1. ??? ?? ??? unix ?????
2. REMOTE_ADDR? 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? ?????.
//連接數(shù)據(jù)庫 $conn = mysqli_connect('localhost','root','liwenkaihaha'); //如果有錯(cuò)誤,存在錯(cuò)誤號(hào) if(mysqli_errno($conn)){ echo mysqli_error($conn); exit; } mysqli_select_db($conn,'user'); 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;
??? ??(?? ?? ??):
id | username | password | createtime | createip |
---|---|---|---|---|
用戶編號(hào) | 用戶名 | 密碼 | 創(chuàng)建時(shí)間 | 創(chuàng)建IP |
5. ??? ??? ? ?? ??
mysqli_query ??? ???? ? ?? ????? ????? ???.
??? ???, ??? ?? ??? $conn???.
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)前用戶插入的ID為'.mysqli_insert_id($conn);
5. ?????? ??? ????.
??? ??? mysqli_close ??? ?????.
mysqli_close($conn);
??? ??? ?? ?? ?? ??? ???????. ??? ???? ??? ?? ?????.
??? ??? connect.php ??? ??? ????.
<?php if (trim($_POST['password']) != trim($_POST['repassword'])) { exit('兩次密碼不一致,請(qǐng)返回上一頁'); } $username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = $_SERVER['REMOTE_ADDR']; $conn = mysqli_connect('localhost', 'root', 'liwenkaihaha'); //如果有錯(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)前用戶插入的ID為' . mysqli_insert_id($conn); mysqli_close($conn); ?>