实战:发布文章
一、跳转到添加页面
<button type="button" class="layui-btn" style="float:right;" onclick="add()">
<i class="layui-icon layui-icon-addition"></i>添加
</button>
function add(){
window.location.href='/admin/article_add.php';
}
二、判断登录状态
<?php
if(empty($_COOKIE)){
echo '<script>window.alert("请先登录");window.location.href="login.php";</script>';
return false;
}
?>
三、输出账号
<a class="fly-nav-avatar">
<cite class="layui-hide-xs"><?php echo $_COOKIE['account'] ?></cite>
</a>
四、添加文章
<form class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">文章标题</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="title" placeholder="请输入文章标题"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">图片</label>
<div class="layui-input-block layui-upload">
<button type="button" class="layui-btn" id="test1">上传图片</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="demo1" style="width:100px;" />
<p id="demoText"></p>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">详情</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="content" placeholder="请输入详情"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类</label>
<div class="layui-input-block">
<select name="class" lay-verify="required" lay-search="">
<option value="">请选择分类</option>
<option value="1">layer</option>
</select>
</div>
</div>
</form>
<?php
if(empty($_COOKIE)){
echo '<script>window.alert("请先登录");window.location.href="login.php";</script>';
return false;
}
if(!empty($_POST)){
$title = $_POST['title'];
if(empty($title)){
echo json_encode(['code'=>1,'msg'=>'请输入标题']);
return false;
}
$content = $_POST['content'];
if(empty($content)){
echo json_encode(['code'=>1,'msg'=>'请输入详情']);
return false;
}
$class = $_POST['class'];
$date = date('Y-m-d');
try{
$pdo = new PDO('mysql:host=localhost;dbname=boke', 'root' , 'root' , array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';"));
$sql = "INSERT INTO article (`title`,`img`,`content`,`date`,`class`)VALUES('{$title}','','{$content}','{$date}','{$class}');";
$stmt = $pdo->prepare($sql);
$stmt->execute();
echo json_encode(['code'=>0,'msg'=>'添加成功']);
}catch (PDOException $e){
echo json_encode(['code'=>1,'msg'=>'添加失败']);
}
return false;
}
?>
五、分类
$pdo = new PDO('mysql:host=localhost;dbname=boke2', 'root' , 'root' , array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';"));
$stmt = $pdo->prepare('SELECT * FROM class ORDER BY sort DESC,id DESC');
$stmt->execute();
$menu = $stmt->fetchAll();
<div class="layui-form-item">
<label class="layui-form-label">分类</label>
<div class="layui-input-block">
<select name="class" lay-verify="required" lay-search="">
<option value="">请选择分类</option>
<?php
foreach($menu as $menu_v){
?>
<option value="<?php echo $menu_v['id'] ?>">
<?php echo $menu_v['name'] ?>
</option>
<?php
}
?>
</select>
</div>
</div>
六、上传图片
<div class="layui-form-item">
<label class="layui-form-label">图片</label>
<div class="layui-input-block layui-upload">
<button type="button" class="layui-btn" id="test1">上传图片</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="demo1" style="width:100px;" />
</div>
</div>
</div>
layui.use(['layer','form','upload'],function(){
form = layui.form;
layer = layui.layer;
upload = layui.upload;
$ = layui.jquery;
var uploadInst = upload.render({
elem: '#test1'
,url: 'up_img.php'
,before: function(obj){
obj.preview(function(index, file, result){
$('#demo1').attr('src', result);
});
}
,done: function(res){
if(res.code > 0){
layer.msg('上传失败',{'icon':2});
}else{
layer.msg('上传成功',{'icon':1});
}
}
});
});
七、新建文件
变量 | 描述 |
---|
$_FILES | 用来获取通过 POST 方法上传文件的相关信息 |
<?php
print_r($_FILES);
?>
upload_tmp_dir = C:\Windows\temp
八、拷贝图片
函数 | 描述 |
---|
json_encode | 对变量进行 JSON 编码 |
is_dir | 检查指定的文件是否是目录 |
iconv | 字符串按要求的字符编码来转换 |
mkdir | 创建目录 |
move_uploaded_file | 将上传的文件移动到新位置 |
<?php
if ($_FILES['file']['error'] > 0){
echo json_encode(['code'=>1]);
}else{
if (!is_dir('upload/')){
$res = mkdir(iconv('UTF-8','GBK','upload/'),0777,true);
}
move_uploaded_file($_FILES['file']['tmp_name'],'upload/'.$_FILES['file']['name']);
echo json_encode(['code'=>0]);
}
?>
九、随机文件名
$date = time();
move_uploaded_file($_FILES['file']['tmp_name'],'upload/'.$date.'.'.$name[1]);
十、保存图片
<div class="layui-upload-list">
<img class="layui-upload-img" id="demo1" style="width:100px;" />
<input type="hidden" class="layui-input" id="img" name="img" />
</div>
,done: function(res){
if(res.code > 0){
layer.msg('上传失败',{'icon':2});
}else{
$('#img').val(res.data);
layer.msg('上传成功',{'icon':1});
}
}
$file = 'upload/'.$date.'.'.$name[1];
move_uploaded_file($_FILES['file']['tmp_name'],$file);
echo json_encode(['code'=>0,'data'=>$file]);
十一、添加数据
if(!empty($_POST)){
$title = $_POST['title'];
if(empty($title)){
echo json_encode(['code'=>1,'msg'=>'请输入标题']);
return false;
}
$content = $_POST['content'];
if(empty($content)){
echo json_encode(['code'=>1,'msg'=>'请输入详情']);
return false;
}
$class = $_POST['class'];
$img = $_POST['img'];
$date = date('Y-m-d');
try{
$pdo = new PDO('mysql:host=localhost;dbname=boke2', 'root' , 'root' , array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';"));
$sql = "INSERT INTO article (`title`,`img`,`content`,`date`,`class`)VALUES('{$title}','{$img}','{$content}','{$date}','{$class}');";
$stmt = $pdo->prepare($sql);
$stmt->execute();
echo json_encode(['code'=>0,'msg'=>'添加成功']);
}catch (PDOException $e){
echo json_encode(['code'=>1,'msg'=>'添加失败']);
}
return false;
}