1. 程式人生 > 其它 >「新手教程」PHP 簡易的註冊服務的實現及若干問題的解決【包含程式碼】

「新手教程」PHP 簡易的註冊服務的實現及若干問題的解決【包含程式碼】

@

目錄

模組介紹

通過這個模組可以完成簡易的網站的註冊驗證
·檢測使用者名稱是否存在於資料庫當中
·向資料庫中插入新使用者的資訊
·檢測該使用者是否完成了註冊並進行反饋


程式碼說明

<?php

/*----------------------------------------------
 *
 *  模組用途:用於網站的註冊驗證
 *  建立日期:2021-04-01
 *  編輯人員:William Kuang
 *
 *  輸入變數:-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
 *      username           使用者名稱
 *      passwd             密碼
 *      telephone          手持電話號碼
 *      email              電子郵件地址
 *  -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
 *
 *  註冊內容:-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
 *      username           使用者名稱
 *      passwd             密碼
 *      station_inventor   站點保有量
 *      telephone          手持電話號碼
 *      email              電子郵件地址
 *  -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
 *
 *  業務流程:-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
 *  1.通過 loginconn.php 連結資料庫
 *  2.獲取註冊資訊
 *  3.向MySQL查詢使用者名稱是否存在
 *  3.1 存在:反饋已存在
 *  3.2 不存在:繼續
 *  4.向資料庫表內插入使用者資訊
 *  5.關閉資料庫,斷開連結
 *  6.跳轉至登入頁面
 *  -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
 *
----------------------------------------------*/
//Connect to datebase
include 'loginconn.php';

//Get information from the posted form
$username = $_POST['username'];
$passwd = $_POST['passwd'];
$StationIn = '0';
$telephone = $_POST['telephone'];
$email = $_POST['email'];

//向資料庫查詢該使用者輸入的使用者名稱是否存在於資料庫當中
$sql_che = "SELECT * FROM 'basicinfo' WHERE username = '$username'";
$sql_che_r = $link->query("select * from basicinfo where username ='{$username}'");
$row = mysqli_fetch_assoc($sql_che_r);
if ($row > 0) { //判斷是否已存在
    echo "該使用者已存在,兩秒後跳轉";
    header('Refresh: 2; url=../register.php');
} else {
	//該使用者不存在
    $sql = "INSERT INTO basicinfo(username,passwd,station_inventor,tel,email) VALUES('$username','$passwd','$StationIn','$telephone','$email')";
    //向資料庫寫入使用者基本資訊
    $stmt = mysqli_query($link,$sql);
    //向資料庫查詢該使用者是否成功新增
    $sql_che = "SELECT * FROM 'basicinfo' WHERE username = '$username'";
    $sql_che_r = $link->query("select * from basicinfo where username ='{$username}'");
    $row = mysqli_fetch_assoc($sql_che_r);
    if ($row > 0) { 
    //判斷是否成功新增
        echo "使用者新增成功,兩秒後跳轉至登入頁面";
        header('Refresh: 2; url=../index.php');
    } else {
        echo "使用者新增失敗,兩秒後跳轉至註冊頁面";
        header('Refresh: 2; url=../register.php');
    }
}
?>

若干問題的解決

php-cgi not found & 502 bad gateway

首先來說,千萬別使用系統自帶的php,系統自帶的簡直就是個坑

簡單地來說,就是得要重新下載安裝一個

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install php

完成之後,重啟Apache

sudo apachectl restart

這時候,我們要在PHPStorm裡面新增我們剛才的版本,就可以了
這樣問題就解決了。

PS:如果你的PHP檔案內部出現了一些錯誤,同樣的也會導致502報錯


502 bad gateway

剛才已經說了一種解決方案了,還有一個

前往道etc資料夾裡
點選這個 php.ini.default,開啟並編輯
找到openssl這行,把前面的分號去掉並儲存即可。

PS:如果你不能夠儲存,就請先將該檔案複製到桌面上,然後用編輯器開啟編輯並儲存。然後再覆蓋到原先的資料夾裡面,這個時候只需要輸入你的電腦密碼就可以了。完成之後千萬別忘記關閉Apache服務再啟動Apache服務。(有的時候重啟並不太奏效,這裡還是推薦兩步操作)


PHP CORS 跨域請求

這個我目前的解決方法就是,將後端和前端放到同一個根目錄下這樣在使用服務的時候就不會出現跨域的錯誤了。(當然了,我這個個人的小專案還可以這樣搞,專案在稍稍大一點就不太行了,這裡要是有大佬能解答一下就更好了。)