for i in *.html; do mv "$i" "${i%.html}.php" ;done
include与require不同之处
include引导文件丢失可以正常显示,require报错
include_once和require_once重复引用只引用一次不冲突
baixiu--
- admin
- api //功能,存放功能页面 如 ajax调用的获取头像的avatar.php
- inc //存放公共部分文件夹
- 各个页面.php
- static
- assets (存放插件)
- css
- img
- vender //存放各类框架api?
- upload (存放上传文件)
- ----config.php //存放配置文件
- ----function.php //存放公共方法
- ----index.php
存放配置项,配置常量,如数据库配置
<?php
//数据库主机
define('XIU_DB_HOST','localhost');
//数据库用户
define('XIU_DB_USER', 'root');
//数据库密码
define('XIU_DB_PASS','linbihui');
//数据库表
define('XIU_DB_NAME','baixiu');
使用require_once引入
$_SERVER['REQUEST_METHOD']==='POST' or 'GET'
empty($_POST['name']) or isset($_GET['name']);
$bian=$_GET['name'];
if(!bian)
$conn=mysqli_connect('host','user','password','tablename');
if(!$conn){
exit(<h1>数据库连接失败<h1>);
}
$query=mysqli_query($conn,'query sentence');
if(!$query){
//查询失败
}
$result=mysqli_fetch_assoc($query);
使用关联数组承接一条数据,使用枚举数组承接多条关联数组数据
if(!$result['name']){
//查询数据不匹配
}
使用绝对路径,从根目录开始
/ 根目录
./ 当前目录和写是一样的
../ 返回上一层
跳转页面
header('Location:/admin/(绝对路径)');
$GLOBALS['message'];
//使用方法$message
-
echo
可以输出字符串串和变量,也可以同时输出多个,用逗号隔开
-
print
和echo一样,但是不支持多个输出
-
print_r打印关于变量易于理解的信息,也是一个函数,一定要加(),一般不用,数组用
-
die(退出)
等同于exit():输出一个字符串或一个值并且退出当前脚本,也可以不输出
-
exit
输出一个字符串,可以输出字符串,也可以不输出
-
printf
可以输出一个整数,也可以什么也不输出
printf函数输出格式化的字符串 printf(format,arg1,arg2++) printd(format:格式化的字符串,arg为若干个函数) //例子 $num=5; $location='树上'; $format='有%d只猴子在%s上'; printf($format,$num,$loction); %.2f //小数点后取两位
-
sprintf和printf一样,但是有返回结果没有输出。
使用之前一定要开始
session_start();
设置session
$_SESSION['name']=key;
会话控制跳转,封装成方法
这里session存了变量信息
可以传递到其他页面使用
function xiu_current_user(){
if(empty($_SESSION['current_login_user'])){
header('Location:/admin/login.php');
exit();
}
return $_SESSION['current_login_user'];
}
novalidate 取消验证
aoto-complete='off';
关闭浏览器的操作
action="<?php echo $_SERVER['PHP_SELF']; ?>"
<?php if (isset($message)): ?>
<div class="alert alert-danger">
<strong>错误!</strong> <?php echo $message; ?>
</div>
<?php endif ?>
<script>
$(function($){
//做什么时候做什么事情
//在email栏失去焦点的时候,验证邮箱,失败先不操作,成功去发送ajax请求并获取数据渲染html页面
$('.email').on('blur',function(){
//获取当前输入的邮箱
var value=$(this).val();
var reg=/[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-z]+){1,2}/;
//如果邮箱无效就不发送ajax请求
//空或者不满足邮箱格式
if(!value||!reg.test(value)){
//返回之前需要判断是否原来有用户的头像的话就要切换会默认的,变化方法是一样的
$('.avatar').fadeOut(function(){
$(this).attr('src','/static/assets/img/default.png').on('load',function(){
$(this).fadeIn();
})
});
return;
}
//是正确的邮箱,发送ajax
$.get('api操作url',{键值对},function(res){
//是否拿到返回数据
if(!res){
return;
}
//先隐藏,隐藏结束后开始回调函数,先加载图片使用load方法,结束以后在回调方法中让当前元素显示出来
$('.avatar').fadeOut(
function(){
$(this).attr('src',res).on('load',function(){
$(this).fadeIn();
});
}
);
});
});
});
</script>
- 引入animate.css文件
- 在需要产生动画的元素上添加属性如 抖动属性添加 animate shack
-
引入nprogress的js和css问价
-
页面加载设置进度条
<script>NProgress.start()</script> 内容 <script>NProgress.end()</script>
-
ajax请求发起加载进度条,可以放在公共方法处
$(document) .ajaxStart(function () { NProgress.start() }) .ajaxStop(function () { NProgress.done() })
点击退出功能返回到登录页面,并删除session
退出按钮的href上设置get的url?action=logout请求
跳转回登录页面通过判断信息是否删除
unset($_SESSION['name']);