1.製作会员登入系统
(1)资料库密码栏位给多记忆体>>因为要进行编码
正常来说密码不应该查询的到,很危险(忌讳!!)
(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体验差,请做到输入时就已告知帐号重複
利用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