Day 43、44 (PHP)

1.制作会员登入系统

(1)资料库密码栏位给多记忆体>>因为要进行编码
正常来说密码不应该查询的到,很危险(忌讳!!)
https://ithelp.ithome.com.tw/upload/images/20210808/20137684R2MjEADKNg.png

(2)第三方验证与这边无关(ex:google登入、手机验证)
第三方只是帮忙验证,自家资料库还是要新增资料

(3)编码及验证

    $passwd = '123456';

    //编码处理
    //password_hash(拿这个,使用演算法加密)
    $passwd2 = password_hash($passwd, PASSWORD_DEFAULT);
    
    //password_verify 验证(正确的,别人输入的)
    if (password_verify('1234567', $passwd2)) {
        echo 'OK';
    } else {
        echo 'XX';
    }

2.资料库资料更改唯独,就不会有重复

例:使用者帐号
但,通常使用者填完表单送出时才能验证到
UX体验差,请做到输入时就已告知帐号重复
https://ithelp.ithome.com.tw/upload/images/20210808/20137684yTwxYezR4g.png
利用AJAX


3.AJAX

(举例:看股票页面,随时更新,而不更动页面)
Read data from a web server - after the page has loaded
Update a web page without reloading the page
Send data to a web server - in the background

https://www.w3schools.com/js/js_ajax_intro.asp


4.判断帐号重复不能注册(输入完即得知)

    //1.抓帐号
    if (!isset($_GET['account'])) return;
    //2.收下资料
    $account = $_GET['account'];

    //3.引用MySQL物件
    include('bradsql.php');
    

    //4.SQL 条件式  检查 条件:拿到资料,帐号有重复 
    $sql = "SELECT account FROM member WHERE account = '{$account}'";
    $result = $mysqli->query($sql);
    $rows = $result->num_rows;
    //查出有几笔资料?
    echo $rows > 0 ? '帐号重复了,不能注册' : '';

5.判断帐号有无重复(送出後得知)

创造AJAX物件

   const xhttp = new XMLHttpRequest(); //创造AJAX物件    

onsubmit 只接受true(送出) or false(没送出)

  <form method="post" action="brad64.php" onsubmit="return cheakForm();">
  <input type="submit" value="Register" />
      var isCheckOK = false;     //1.给onsubmit的booling

      function cheakAccount() {
          isCheckOK = false;     /2.送出去(onsubmit)前都是false
      }

      function aftercheak() {
          if (this.readyState == 4 && this.status == 200) {
              getmesg = xhttp.responseText.trim();        //3.让物件的内容清乾净

              document.getElementById("mesg").innerHTML = getmesg; 
              //4.Elemen的内容'' ,如果有东西会盖上去物件的内容

              if (getmesg == 0) {                          //5.长度为0

                  isCheckOK = true;    //6.才会送出true,送出去(onsubmit)前都是false
              }
          }

      function cheakForm() {
          return isCheckOK;        //7.TURE 送出 action="brad64.php"
      }

3.会员登入、注册

影片PHP09.mp4 1:13
reg.php
login.php
newAccount.php
checkAccount.php
editAccount.php
https://ithelp.ithome.com.tw/upload/images/20210808/201376846KXQXtaLSY.png


<<:  使用PPT写代码开发弹幕射击游戏

>>:  风险曝险(Risk exposure )

Progressive Web App Notifications API (21)

什麽是 Web Notifications API? 透过 Web Notifications AP...

第 16 集:Bootstrap 客制化 Sass 架构实战范例

此篇会用三个实战范例来当作做 Sass 架构介绍的结尾。 阅读此篇内容前,建议先阅读过前两篇 Sa...

Day 6:Hello....iOS world! 建立第一个KMM专案(iOS)

Keyword:Xcode,simulator 到Day6完成第一个KMM专案的Code放在 KMM...

D9: 工程师太师了: 第5话

工程师太师了: 第5话 杂记: 我很建议大家在下班之余, 如果有些闲暇可以做side project...

消费者模型,买它到八卦它

我们通常认为一个消费者,都是想像他买了产品使用的样子。 但其实从行销系统的角度来看,这个“他”也是...