国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP開(kāi)發(fā)基礎(chǔ)教學(xué)之實(shí)作一個(gè)用戶註冊(cè)

我們做一個(gè)最簡(jiǎn)單的註冊(cè)頁(yè)面。註冊(cè)頁(yè)面中有三個(gè)參數(shù):

  • 使用者名稱

  • #重複密碼

使用者寫好三個(gè)參數(shù)後,點(diǎn)選提交的時(shí)候向connect.php頁(yè)面中傳入POST記錄。

我們可以把POST記錄處理後寫入到MySQL資料庫(kù)中,也就是完成了使用者註。

程式碼如下:

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

為了更快的表現(xiàn)我們的程式碼介面沒(méi)有進(jìn)行美化。以最快的速度帶大家完成用戶註冊(cè)。


一、判斷重複密碼

#由於有重複密碼,如果使用者兩次輸入的密碼不一致也就是有沒(méi)有進(jìn)行下一步的任何意義。

在網(wǎng)頁(yè)中很多地方還是使用到重複密碼了。因?yàn)?,害怕的是使用者產(chǎn)生手誤。將密碼填寫出錯(cuò)。

使用者在輸入密碼的時(shí)候可能在左右兩邊多打兩個(gè)空格。因此,我們會(huì)使用trim將密碼和重複密碼的兩邊去掉空格。

if(trim($_POST['password']) != trim($_POST['repassword'])){
    exit('兩次密碼不一致,請(qǐng)返回上一頁(yè)');
}

二、 準(zhǔn)備好寫入的資料

#我們需要把使用者的輸入資料和隱藏的資料都寫入資料庫(kù)。

可見(jiàn)資料有:

說(shuō)明$_POST['username']?? ?使用者名稱? ?#$_POST['password']?? ??
變數(shù)




密碼
#########
  • 我們需要把使用者名稱去掉兩邊的空格,這樣避免輸入不必要的這些資訊。

  • 在mysql這一章我們講過(guò),使用者的密碼不要讓包括公司內(nèi)部人員可見(jiàn)。保證密碼是不可逆向的。在初級(jí)階段大家學(xué)習(xí)MD5即可。以後我們?cè)俳檀蠹移渌募用芊绞健?

不可見(jiàn)資料有:


變數(shù)
說(shuō)明
$time
用戶的註冊(cè)時(shí)間
$_SERVER['REMOTE_ADDR']?
#用戶的註冊(cè)IP ??
  • time回傳的unix時(shí)間戳記

  • REMOTE_ADDR回傳的是IP位址,我們可以用ip2long將其轉(zhuǎn)為整數(shù)儲(chǔ)存。

$username = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$time = time();
$ip = ip2long($_SERVER['REMOTE_ADDR']);

三、連接資料庫(kù)、判斷錯(cuò)誤、選擇庫(kù)和字元集

  • 我們使用mysqli_connect連接到資料庫(kù)伺服器。

  • 如果有錯(cuò)誤,使用mysqli_errno得到錯(cuò)誤號(hào)碼

  • 如何時(shí)存在錯(cuò)誤mysqli_error列印所有的錯(cuò)誤,並且退出程式執(zhí)行

  • 選擇資料庫(kù)並且設(shè)定字元集為utf8.

//連接數(shù)據(jù)庫(kù)
$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');

四、組合SQL語(yǔ)句

我們需要把得到的資訊寫入到資料庫(kù)裡面去,使用者名稱、密碼、建立時(shí)間、IP我們都得到了。

將對(duì)應(yīng)的變數(shù)插入SQL語(yǔ)句中即可。組合出來(lái)的SQL語(yǔ)句如下:

$sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')";

而我們的建立表格的語(yǔ)句如下:

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;

表格的格式(欄位對(duì)應(yīng)說(shuō)明):

id
username
#password
createtime
createip
使用者編號(hào)

使用者編號(hào)
使用者名稱?

??密碼?

建立時(shí)間
#######建立IP?######? ? ? ??##################

五、發(fā)送語(yǔ)句,判斷狀態(tài)

#mysqli_query我們?cè)谏厦嬲f(shuō)過(guò),需要傳入兩個(gè)參數(shù):

  • 連接的資源,在這裡對(duì)應(yīng)的變數(shù)是$conn。

  • 傳送的SQL語(yǔ)句。在上面已經(jīng)準(zhǔn)備好了$sql。

SQL語(yǔ)句可以透過(guò)mysqli_query傳送給MySQL伺服器。發(fā)送成功$result則為true。否則為false。

成功的話,我們就可以提示使用者註冊(cè)成功啦。

有些情況下,可能還需要使用到mysqli_insert_id()。在這裡把自增的主鍵ID印出來(lái)。

大家記得這個(gè)知識(shí)點(diǎn),避免以後需要的時(shí)候忘記了。

mysqli_insert_id應(yīng)用場(chǎng)景:新加的一個(gè)行的資料。我們需要得到自動(dòng)成長(zhǎng)的ID值,將這個(gè)ID值插入到另一個(gè)表格裡面去時(shí)。就需要用到這個(gè)函數(shù)。

$result = mysqli_query($conn,$sql);
if($result){
    echo '注冊(cè)成功';
}else{
    echo '注冊(cè)失敗';
}
echo '當(dāng)前用戶插入的ID為'.mysqli_insert_id($conn);

六、關(guān)閉資料庫(kù)連線

#將資源變數(shù)傳到mysqli_close這個(gè)函數(shù)裡面即可。

mysqli_close($conn);

用戶註冊(cè)的基本實(shí)作程式碼就寫完了。我們上面講的都是程式碼片段。

我們整個(gè)實(shí)作的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', '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);
?>


#
繼續(xù)學(xué)習(xí)
||
<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>
提交重置程式碼