- 登錄功能同注冊功能一樣,都是使用 post 方法,在執行 sql 語句時,同樣要使用 "select * from 表名 where 鍵名 = 參數" 的查詢方式,不同的是:
- 注冊使用查詢語句是為了判斷注冊用的字段值是否重復 ? 注冊失敗 : 注冊成功;
- 登錄使用查詢語句是為了查詢表中是否有那個字段的值 ? 登錄成功 : 登錄失敗;
- 另一個相同的地方是都用到了 mysql_num_rows($result) 的sql 語句,都用它來做一件事,那就是通過它來確定返回的值是否為 1,根據返回這個值,來進行判斷是否成功:
- 注冊時,使用 $row = mysql_num_rows($result); 如果 $row=1,手機號存在,注冊失敗;
- 登錄時,使用 $row = mysql_num_rows($result); 如果 $row=1,手機號存在,登錄成功;
這個接口同樣分為 5 步走:
連接服務器;
$link = mysql_connect("localhost","root","root") or die ("連接服務器失敗".mysql_error());
//防止中文亂碼
mysql_query("SET NAMES UTF8");
連接數據庫;
mysql_select_db("test",$link) or die("選擇數據庫失敗".mysql_error());
執行sql語句;
//參數 $tel = $_POST["tel"]; $pwd = $_POST["pwd"]; //根據條件查詢 $insert = "select * from t_user where user_phone = '$tel' and user_password = '$pwd'"; $result = mysql_query($insert);
根據執行的結果,寫兩種不同的結果並以JSON方式返回;
//判斷是否可以查詢出要登錄的手機號,還是使用 mysql_num_rows()返回的值是否為 1,就是1條數據,因此這個$row就是返回的一整條數據 $row = mysql_num_rows($result); if($row == 1){ //定義一個數組 $array = array(); /* * 如果等於1,說明查詢成功,也就是登錄成功,說明這個用戶是存在的,就需要把對應的數據返回給一個數組 * 為什么要用 while 語句呢?因為登錄一次只查詢一條語句,while(){}語句,只執行一次 */ while($row = mysql_fetch_array($result)){ //把返回的數據從 $row 中取出存入 $array中,一般是要把所有的字段都儲存在 數組中 $array["user_id"] = $row["user_id"]; $array["user_phone"] = $row["user_phone"]; $array["user_name"] = $row["user_name"]; $array["user_sex"] = $row["user_sex"]; $array["user_password"] = $row["user_password"]; $array["user_header"] = $row["user_header"]; } //把上面的數組以 json 格式返回 $json = json_encode(array( "resultCode"=>200, "message"=>"登錄成功!", "data"=>$array )); echo($json); }else{ $json = json_encode(array( "resultCode"=>500, "message"=>"登錄失敗!" )); echo($json); }
關閉服務器;
mysql_close($link);
任何接口在讓客戶端使用時,都要進行測試,同樣使用 Rest Client,參數同注冊時一樣:
唯一不同的是,登錄需要返回查詢的結果,也就是是否登錄成功的消息需要返回給客戶端:
有個問題不太明白,返回的 “message”為什么是"\u767b\u5f55\u6210\u529f\uff01" ????
有知情的大俠能不能指點一下,非常感謝!
巳找到解決辦法:http://www.cnblogs.com/baiyygynui/p/6653869.html