iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 7
2

開始

今天邊聽期末發表邊打程式,今天完成的是會員的註冊跟登入,我先打出簡易的架構,那系統流程是登入帳號,如果沒有會員就先去註冊填寫表單傳到資料庫,然後再重新登入,如果登入成功就將會員的資料存進SESSION,待會上圖先PO程式碼。

登入

登入介面

輸入帳密進行判斷,當然還沒註冊的話請先按< a>標籤的還沒註冊,下面的判斷是讓我知道有沒有註冊成功。$_GET['error']顯示帳密是否有打正確。

  <a href="./sign">還沒註冊嗎?</a>
    <form action="logcheck.php" method="post">
         <input type="text" name="account" value="" placeholder="輸入帳號">
         <input type="password" name="password" value="" placeholder="輸入密碼">
         <input type="submit" name="" value="登入">
    </form>
    <?php if ($_GET['sig_suc']!=''): ?>
        <?php echo $_GET['sig_suc'] ?>
    <?php endif; ?>
    <?php if ($_GET['error']!=''): ?>
         <?php echo $_GET['error'] ?>
    <?php endif; ?>

登入判斷

如果有先註冊的話資料表member會有資料,所以這頁面是取出資料表與輸入帳密相符的資料出來判斷,假設完全正確,就把資料存進SESSION並回傳登入成功,後來會改成直接跳轉到購物網站主頁。輸入錯誤有兩種判斷,第一個是輸入錯誤,第二個是輸入不完全。


<?php
    ini_set("display_errors", "On");
    require_once "../method/connect.php";
   $account = $_POST['account'];
   $password = $_POST['password'];
  $select = $connect -> prepare("SELECT account,password FORM member WHERE account = :acc AND password = :pw");
   $select -> execute(array(':acc' => $account,':pw' => $password));
   $result = $select -> fetch(PDO::FETCH_ASSOC) ;
      if ($result['account']==$account&&$result['password']==$password) {
           session_start();
           $_SESSION['member'] = $result;
           header("location:./?error=登入成功");
      }elseif ($result['password']!=$password||$result['account']!=$account) {
                  header("location:./?error=帳密錯誤");
      }elseif ($result['password']!=''||$result['account']!='') {
                  header("location:./?error=輸入不完全");
      }
      
 ?>
 

註冊

註冊一樣是填表單,將資料傳進資料表member。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>註冊頁面</title>
  </head>
  <body>
    <form class="" action="add.php" method="post">
        <input type="mail" name="mail" value="" placeholder="輸入註冊信箱">
        <input type="text" name="password" value=""panel placeholder="輸入密碼">
        <input type="password" name="pwcheck" value=""panel placeholder="再次輸入密碼">
        <input type="text" name="name" value="" placeholder="輸入姓名">
        <input type="number" name="phone" value="" placeholder="輸入電話">
        <input type="text" name="addr" value="" placeholder="輸入地址">
        <input type="submit" name="" value="註冊">
    </form>
  </body>
</html>

傳進資料庫

將資料寫進資料表,我是用PDO,有興趣可以玩玩看,很有趣。

<?php
     ini_set("display_errors","On");
     $account = $_POST['mail'];
     $password = $_POST['password'];
     $member = $_POST['name'];
     $phone = $_POST['phone'];
     $addr = $_POST['addr'];
     require_once "../../method/connect.php";
     $insert = $connect -> prepare("INSERT INTO member(account,password,member,phone,addr)
       VALUES(?,?,?,?,?)");
     $insert -> execute(array($account,$password,$member,$phone,$addr));
    header("location:../?sig_suc=註冊成功");
 ?>

主頁

這個頁面是購物網站的主頁面,以後會呈現商品列表,跟其他入口的連結。這次我在測試SESSION功能,以前有學過但還不是很有概念,我想我今明天會再發一篇SESSION相關的文章,畢竟跟會員系統有很大的關係。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>主頁</title>
  </head>
  <body>
    <a href="./login/">登入</a>
      <?php
        session_start();
        var_dump($_SESSION['member'])
       ?>
  </body>
</html>

總結

我先打出東西晚上再renew,我現在算是在建構系統架構,晚一點再去蒐集資料強化觀念,先這樣了

https://github.com/leo5916267/buysite/tree/master/buytobuy


上一篇
[DAY6]測試基本的PHP與MySQL連結
下一篇
[DAY8]$_SESSION與$_COOKIES
系列文
網頁設計:前端設計+後端基礎建構24

尚未有邦友留言

立即登入留言