实现用户注销, 封装表单字段的原生验证方法 , 定界符heredoc, nowdoc的用法与使用
1.用户注销功能
//创建点击事件
<a href='' onclick="logout(event)">[注销]</a>
//方法实现
async function logout(ev){
ev.preventDefault();
// ev.preventDefault();
if(confirm('是否退出')){
const url = './lib/userHandle.php?action=logout';
const res = await fetch(url);
const result = await res.json();
if(result){
alert('退出成功');
location.href='index.php';
}else{
alert('系统错误,请重试');
location.href='login.php';
}
}
}
session_start();
$flag = false;
if(session_destroy()){
$flag = true;
}
echo json_encode($flag);
2. 封装表单字段的原生验证方法
const getInput = (form)=>{
return {
nackname:{
ele:form.nickname,
value:form.nickname.value.trim()
},email:{
ele:form.email,
value:form.email.value.trim()
},password:{
ele:form.password,
value:form.password.value.trim()
},rePassword:{
ele:form.rePassword,
value:form.rePassword.value.trim()
}
}
}
const isEmpty = (user)=>{
switch(true){
case user.nickname.value.length ===0:
alert('昵称不能为空');
user.nickname.ele.focus();
return false; //代码结束,不再继续执行
case user.email.value.length ===0:
alert('邮箱不能为空');
user.email.ele.focus();
return false;
case user.password.value.length===0:
alert('密码不能为空');
user.password.ele.focus();
return false;
case user.rePassword.value.length ===0:
alert('确认密码不能为空');
user.rePassword.ele.focus();
return false;
default:
return true; //拦截结束,返回true
}
}
const isPwdEqeu = (user)=>{
if(user.password.value!==user.rePassword.value){
alert('两次密码输入不一致');
user.password.focus(); //输入框
return false;
} else{
return true;
}
}
const createData = (user)=>{
return{
nickname:user.nickname.value,
email:user.email.value,
password:user.password.value
}
}
async function insertData(data){
url = './lib/userHandle.php?action=register';
const res = await fetch(url,{
method:'POST',
headers:{
'content-Type':'application/json;charset=utf-8',
},
body:JSON.stringify(data)
});
//返回数据
const result = res.json();
if(result){
aletrt('注册成功');
location.href='index.php';
}else{
alert('注册失败,请重试');
location.href='register.php';
btn.form.nickname.focus();
}
}
3. 定界符heredoc, nowdoc的用法与使用
echo <<<TIPS
<script>
alert('非法请求!')
location.href='../login.php'
<script>
TIPS;
// 定界符 heredoc 解析变量和特殊字符
$str = <<< POEM
窗前明月光, \n疑是地上霜。\n
POEM;
// 定界符 nowdoc //不会解析变量和特殊字符
$str = <<< 'POEM'
窗前明月光, \n疑是地上霜。\n
POEM;