2023年9月20日 星期三

Android Studio - Android Java Login PHP 登入程式(一百一十三)

Android Studio - Android Java Login PHP 登入程式(一百一十三):

完成了 Android Java 的登入程式,便需要在 NAS 上的 PHP Server 編寫程式,PHP 程式主要是接收從 Android 傳送(POST)過來的資料,資料是用 JSON 格式,這 2個資料變數是 email ($_POST['email'])和 password($_POST['password']),並透過 PHP 程式連接 MySQL 資料庫,用 MySQL 連接資料庫的查詢指令,將判斷 email 帳號與密碼是否正確,然後將結果用 JSON 格式回傳到 Android。

Android PHP MySQL 連接
PHP Provided Information:
Linux 系統:Debian 2.6.12.6-arm1 版本
Apache 系統:Apache 2.2.3 版本
PHP 系統:PHP 5.2.0-8 版本
MySQL 系統:MySQL 5.0.32 版本
JSON 系統:JSON 1.2.1 版本

Login.php PHP 登入程式:

<?php

 

if ($_SERVER['REQUEST_METHOD']=='POST') {

 

    $email = $_POST['email'];

    $pass = $_POST['password'];

    require_once 'connect.php';

 

    $sql = "SELECT * FROM users WHERE email='$email' ";

    $response = mysqli_query($conn, $sql);

   

    $result = array();

    $result['login'] = array();

   

    if ( mysqli_num_rows($response) === 1 ) {

        $row = mysqli_fetch_assoc($response);

       

        if ( $pass== $row['password'] ) {

          

            $index['Name'] = $row['Name'];

            $index['email'] = $row['email'];

            $index['id'] = $row['id'];

            $index['pass'] = $row['password'];

            $index['no'] = $row['no'];

            $index['add'] = $row['address'];

 

            array_push($result['login'], $index);

 

            $result['success'] = "1";

            $result['message'] = "success";

            echo json_encode($result);

           

            mysqli_close($conn);

 

        } else {

            $result['success'] = "0";

            $result['message'] = "Worng Password";

            echo json_encode($result);

 

            mysqli_close($conn);

        }

 

    }else{

        $result['success'] = "0";

        $result['message'] = "error";

        echo json_encode($result);

        mysqli_close($conn);

    }

}

?>


user.sql 資料庫:

DROP TABLE IF EXISTS `users`;

CREATE TABLE `users` (

  `id` int(255) NOT NULL auto_increment,

  `Name` varchar(20) NOT NULL,

  `email` varchar(30) NOT NULL,

  `password` varchar(20) NOT NULL,

  `no` bigint(20) NOT NULL,

  `address` varchar(100) NOT NULL,

  PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

INSERT INTO `users` (`id`, `Name`, `email`, `password`, `no`, `address`) VALUES

(1,'a','a@a.com','0000',0,'A123 CA'),

(2,'b','b@a.com','0000',0,'A222 CA'),

(3,'c','c@a.com','0000',0,'A333 CA'),

(4, 'd', 'd@a.com', '0000', '0', 'A443 CA'),

(5, 'e', 'e@a.com', '0000', '0', 'A555 CA');


2023年 9月 20日(Wed)天氣報告
氣溫:52.0°F / 11.0°C @ 07:00
風速:每小時 3公里
降雨機會:15%
相對濕度:百分之 94%
天氣:多雲

沒有留言:

張貼留言