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

php操作數(shù)據(jù)庫之通過步驟做一個(gè)用戶注冊(cè)

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

????1.用戶名

????2.密碼

????3.重復(fù)密碼

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

我們可以把POST記錄處理后寫入到MySQL數(shù)據(jù)庫中,即完成了用戶注。

代碼如下:

<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)我們的代碼界面沒有進(jìn)行美化。以最快的速度帶大家完成用戶注冊(cè)。

一、 判斷重復(fù)密碼

由于有重復(fù)密碼,如果用戶兩次輸入的密碼不一致也就是有沒有進(jìn)行下一步的任何意義。

在網(wǎng)頁中很多地方還是使用到了重復(fù)密碼。因?yàn)椋ε碌氖怯脩舢a(chǎn)生手誤。將密碼填寫出錯(cuò)。

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

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

二、 準(zhǔn)備好寫入的數(shù)據(jù)

我們需要把用戶的輸入數(shù)據(jù)和隱藏的數(shù)據(jù)都寫入到數(shù)據(jù)庫。

可見數(shù)據(jù)有:

變量說明
$_POST['username']用戶名
$_POST['password']密碼

我們需要把用戶名去掉兩邊的空格,這樣避免輸入不必要的這些信息。

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

不可見數(shù)據(jù)有:

變量說明
$time用戶的注冊(cè)時(shí)間
$_SERVER['REMOTE_ADDR']用戶的注冊(cè)IP

????
????1.time返回的unix時(shí)間戳

????2.REMOTE_ADDR返回的是IP地址,我們可以用ip2long將其轉(zhuǎn)為整型存儲(chǔ)。

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

三、連接數(shù)據(jù)庫、判斷錯(cuò)誤、選擇庫和字符集

1.我們使用mysqli_connect連接到數(shù)據(jù)庫服務(wù)器。

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

3.如何時(shí)存在錯(cuò)誤mysqli_error打印出所有的錯(cuò)誤,并且退出程序執(zhí)行

4.選擇數(shù)據(jù)庫并且設(shè)置字符集為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');

四、組合SQL語句

我們需要把得到的信息寫入到數(shù)據(jù)庫里面去,用戶名、密碼、創(chuàng)建時(shí)間、IP我們都得到了。

將對(duì)應(yīng)的變量插入到SQL語句中即可。組合出來的SQL語句如下:

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

而我們的創(chuàng)建表的語句如下:

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)說明):

idusernamepasswordcreatetimecreateip
用戶編號(hào)用戶名密碼創(chuàng)建時(shí)間創(chuàng)建IP

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

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

連接的資源,在這里對(duì)應(yīng)的變量是$conn。

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

SQL語句可以通過mysqli_query發(fā)送給MySQL服務(wù)器。發(fā)送成功$result則為true。否則為false。

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

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

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

mysqli_insert_id應(yīng)用場(chǎng)景:新加的一個(gè)行的數(shù)據(jù)。我們需要得到自動(dò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)閉數(shù)據(jù)庫連接

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

mysqli_close($conn);

用戶注冊(cè)的基本實(shí)現(xiàn)代碼就寫完了。我們上面講的都是代碼片段。

我們整實(shí)現(xiàn)的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);

?>


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