PHP+MySQL實現使用者登入註冊API介面

zhugehengheng發表於2015-03-26

最近在學習PHP後臺相關知識,利用PHP連線MySQL資料庫實現了一個簡單的使用者登入註冊及修改密碼的API介面,介面為標準的json輸出,本地驗證通過。功能比較簡單,不過也自己摸索了挺長時間,期間各種百度解決了各種不懂。資料庫只有name、psd和tel三個欄位,介面均設計為POST方式提交。程式碼基本都有註釋比較好理解,下面附上程式碼。

<?php
    $mysql_server_name="localhost"; //資料庫伺服器名稱
    $mysql_username="root"; // 連線資料庫使用者名稱
    $mysql_password="326699"; // 連線資料庫密碼
    $mysql_database="hello"; // 資料庫的名字
	
	 // 連線到資料庫
    $conn=mysql_connect($mysql_server_name, $mysql_username,
                        $mysql_password);
	if(!$conn) {
		echo "資料庫連線失敗!".mysql_error;
	}
	mysql_select_db($mysql_database, $conn);
	
	//獲取url引數
	$action = isset($_POST['action']) ? $_POST['action'] : '';
	$name = isset($_POST['name']) ? $_POST['name'] : '';
	$psd = isset($_POST['psd']) ? $_POST['psd'] : '';
	
	if($action=='login') {
		login($name, $psd, true);
	} else if($action=='register') {
		register($name, $psd);
	} else if($action=='modifyPsd') {
		modifyPsd($name, $psd);
	} else if($action=='showAll') {
		showAll();
	} else {
		$result = array("result"=>"error_request");
		$json = json_encode($result);
		echo $json;
	}
	
	close_conn();
	
	/*使用者登入*/
	function login($name, $psd, $normal) {
		global $conn;
		
		if($conn) {
			$result = mysql_query("select name,psd from student");
			$success = false;
			while($row = mysql_fetch_array($result)) {
				if($name == $row['name'] && $psd == $row['psd']) {
					$success = true;
				}
			}
			if($normal) {
				$login_result = array('login_result'=>$success);
				$json = json_encode($login_result);
				echo $json;
			}
		}
		return $success;
	}
	
	/*使用者註冊*/
	function register($name, $psd) {
		$tel = $_POST['tel'];		
		global $conn;
		
		if($conn) {
			//資料庫查詢
			$result = mysql_query("select name from student");
			$exist = false;
			while($row = mysql_fetch_array($result)) {
				if($name == $row['name']) {
					//註冊失敗,使用者名稱已存在;
					$exist = true;
					$register_result = array("register_result"=>false,"error_code"=>0);
					$json = json_encode($register_result);
					echo $json;
				}
			}
			
			//插入資料庫			
			if(!$exist) {
				$id = mysql_num_rows($result) + 1;
				$success = mysql_query("insert into student values('$id', '$name', '$tel', '$psd')");
				if($success) {
					//註冊成功
					$register_result = array("register_result"=>$success);
					$json = json_encode($register_result);
					echo $json;
				} else {
					//註冊失敗,資料庫插入錯誤
					$register_result = array("register_result"=>$success,"error_code"=>1);
					$json = json_encode($register_result);
					echo $json;
				}
			}			
		}
	}
	
	/*修改登入密碼*/
	function modifyPsd($name, $psd) {
		$newpsd = $_POST['newpsd'];
		global $conn;
		
		if($conn) {
			//使用者登入
			$login_result = login($name, $psd, false);
			//修改密碼
			if($login_result) {
				$success = mysql_query("update student set psd='$newpsd' where name='$name'");
				if($success) {
					//修改成功
					$modify_result = array("modify_result"=>$success);
					$json = json_encode($modify_result);
					echo $json;
				} else {
					//修改失敗,資料庫錯誤
					$modify_result = array("modify_result"=>$success,"error_code"=>1);
					$json = json_encode($modify_result);
					echo $json;
				}
			} else {
					//修改失敗,登入失敗
					$modify_result = array("modify_result"=>false,"error_code"=>2);
					$json = json_encode($modify_result);
					echo $json;
			}
		}
	}
	
	//顯示所有使用者
	function showAll() {
		global $conn;
		if($conn) {
			$result = mysql_query("select * from student");
			$success = false;
			$array_data = array();

			$total = mysql_num_rows($result);
			//$data = array("total"=>$total,"datas"=>array(array("data"=>"123","name"=>"zhugeheng"),
			//																					 array("data"=>"456","name"=>"zhaodanni")
			//																		));
																					
            while($row = mysql_fetch_array($result)) {
				$array_temp = array("name"=>$row['name'], "tel"=>$row['tel']);
				array_push($array_data, $array_temp);
			}
			$data = array("total"=>$total,"datas"=>$array_data, "result"=>true);			
			$json = json_encode($data);
			echo $json;
		
		}
	}
	
	//關閉連線
	function close_conn() {
		global $conn;
		mysql_close($conn);
	}

?>


尊重原創,轉載請註明出處:http://blog.csdn.net/zhugehengheng/article/details/44645287


相關文章