1. 程式人生 > >php實現簡單的使用者註冊,登入,修改個人資訊介面

php實現簡單的使用者註冊,登入,修改個人資訊介面

1. 連線資料庫

資料庫名為eating, user表用於存放使用者的資訊

//connect_mysql.php
<?php
header("Content-type:text/html;charset=utf-8");	//定義編碼和頁面
header("Access-Control-Allow-Origin: *");	//跨域問題

session_start();	//開啟會話

$host = 'localhost'; //主機地址
//$host = '118.89.25.120';
$database = 'eating';   //資料庫名
$username = 'root'; //資料庫的使用者名稱
$password = '123456'; //資料庫的密碼
/*
 連線資料庫
 */
$link = mysqli_connect($host, $username, $password);    
mysqli_select_db($link, "eating");
mysqli_query($link,"set names 'utf8'");//編碼轉化
if (!$link) {

    die("could not connect to the database.\n" . mysqli_error($link));//診斷連線錯誤
}
?>

2. 使用者登入

  php實現使用者登入,使用者名稱為電話號碼, php後臺接受並解析前端通過http的post方法傳送的json資料, 判斷使用者是否存在,
若不存在則返回-1, 若使用者存在,則檢驗使用者名稱和密碼是否一致, 若一致則返回1, 若密碼錯誤則返回-2.

//login.php
<?php
header("Content-type:text/html;charset=utf-8");
header("Access-Control-Allow-Origin: *");   //跨域

session_start();

if(isset($_POST["button"]) && $_POST["button"] == "登入") {
    $tel = $_POST["tel"];   //使用者電話號碼
    $password = $_POST["password"]; //使用者密碼

    //include ("connect_mysql.php");
    require_once('connect_mysql.php');

    //判斷使用者是否存在
    $sql = "SELECT * FROM user WHERE user_tel = '$_POST[tel]';";

    $result = mysqli_query($link, $sql);    //執行sql語句,返回查詢後的結果集
    $rows = mysqli_num_rows($result); //返回結果集中行的數量

    if ($rows == 0) {     //使用者不存在
        $json_arr = array('success' => -1);
    }
    else {
        $sql = "SELECT password FROM user WHERE password = '$_POST[password]' AND user_tel = '$_POST[tel]'";
        $result = mysqli_query($link, $sql);
        $rows = mysqli_num_rows($result);

        if ($rows == 1) { //密碼正確
            $json_arr = array('success' => 1);

            $_SESSION["is_login"] = "true";
            $_SESSION["tel"] = $tel;
            $_SESSION["password"] = $password;
        }
        else {  //密碼錯誤
            $json_arr = array('success' => -2);
        }
    }
    $login_json = json_encode($json_arr, TRUE); //轉化為json資料
    echo $login_json;//傳送json資料
}

3. 使用者註冊

  使用者註冊帳號時使用手機號註冊,php後臺首先檢查使用者提交的資訊是否完整,若不完整則返回0;接著檢驗
使用者的手機號是否已被註冊,0若手機號已經被註冊,則向前端返回-1;若手機號沒有被註冊,則檢驗使用者兩次輸
入的密碼是否一致,若一致,則註冊成功,向前端返回1,若不一致返回-2;否則返回-3.

// register.php
<?php

header("Access-Control-Allow-Origin: *");

session_start();

if(isset($_POST["submit"]) && $_POST["submit"] == "馬上註冊") {
    $tel = $_POST["tel"];
    $password = $_POST["password"];
    $password_conf = $_POST["confirm"];
    $hometown = $_POST["hometown"];
    $tasty = $_POST["tasty"];
    $type_of_cooking = $_POST["type_of_cooking"];

    if($tel == "" || $password == "" || $password == "" || $password_conf == "" || $hometown == "" || $tasty == "" || $type_of_cooking == "") {  //使用者資訊不完整

        $json_arr = array('success' => 0);
    }
    else {
        if($password == $password_conf) {
            include "connect_mysql.php";
            //require_once('connect_mysql.php');

            $sql = "select tel from user where tel = '$_POST[tel]'"; //SQL語句
            $result = mysqli_query($link, $sql);    //執行SQL語句
            $num = mysqli_num_rows($result); //統計執行結果影響的行數
            if($num) {   //如果已經存在該使用者

                $json_arr = array('success' => -1);
            }
            else {   //不存在當前註冊使用者名稱稱

                $sql_insert = "insert into user (user_tel, password, hometown, tasty, type_of_cooking)
                      values('$_POST[tel]', '$_POST[password]', '$_POST[hometown]','$_POST[tasty]', '$_POST[type_of_cooking]')";
                $res_insert = mysqli_query($link, $sql_insert);
                //$num_insert = mysql_num_rows($res_insert);
                if($res_insert) {   //註冊成功
                    $json_arr = array('success' => 1);
                }
                else { //系統忙碌,請稍後重試
                    $json_arr = array('success' => -3);
                }
            }
        }
        else {  //密碼不一致
            $json_arr = array('success' => -2);
        }
    }
    $register_json = json_encode($json_arr, TRUE);
    echo $register_json;
}
?>

4. 修改使用者資訊

//alter_info.php
<?php

header("Content-type:text/html;charset=utf-8");
header("Access-Control-Allow-Origin: *");

session_start();

if (isset($_POST["submit"]) && $_POST["submit"] == "確認修改") {
    include "connect_mysql.php";
    //require_once('connect_mysql.php');

    $tel = $_POST['tel'];
    $new_hometown = $_POST['new_hometown']; //家鄉
    $new_tasty = $_POST['new_tasty'];   //口味
    $new_type_of_cooking = $_POST['new_type_of_cooking'];   // 品類(幹/湯)

    $sql = "UPDATE user SET hometown = '$new_hometown', tasty = '$new_tasty', type_of_cooking = '$new_type_of_cooking' 
            WHERE user_tel = '$_POST[tel]';";
    $result = mysqli_query($link, $sql);

    if ($result) {  //修改資訊成功
        $json_arr = array('success' => 1);
    }
    else {  //修改資訊失敗
        $json_arr = array('success' => 0);
    }

    $login_json = json_encode($json_arr);
    echo $login_json;
}

5. 修改密碼

//alter_password.php
<?php

header("Content-type:text/html;charset=utf-8");
header("Access-Control-Allow-Origin: *");

session_start();

if (isset($_POST["submit"]) && $_POST["submit"] == "修改密碼") {
    //include "connect_mysql.php";
    require_once('connect_mysql.php');

    $tel = $_POST['tel'];
    $old_password = $_POST['old_password'];

    $sql = "SELECT password, user_tel FROM user WHERE password = '$old_password' AND user_tel = '$tel';";
    $result = mysqli_query($link, $sql);
    $row = mysqli_num_rows($result);

    if ($row == 1) {
        $new_password = $_POST['new_password'];
        $new_password_conf = $_POST['new_password_conf'];

        if ($new_password == $new_password_conf) {
            $sql = "UPDATE user SET password = '$new_password' WHERE user_tel = '$tel';";
            $result = mysqli_query($link, $sql);

            if ($result) {  //密碼修改成功
                $arr = array('success' => 1);
            }
        }
    }
    else {  //  密碼修改失敗
        $arr['success'] = 0;
    }
    $json_arr = json_encode($arr, TRUE);
    echo $json_arr;
}