衢州市建设职业学校_深圳短视频seo推广_百度广告联盟logo_手机qq浏览器网页禁止访问怎么办

天津排名优化

seo综合查询推荐vsping、网站设计师哪里、永久使用、不限域名、哈尔滨嘟嘟网络科技发展有限公司

黑龙江新闻法治在线观看?

衢州市建设职业学校_深圳短视频seo推广_百度广告联盟logo_手机qq浏览器网页禁止访问怎么办

4 水果百科动态网站详细设计与实现

水果百科动态网站的详细设计与实现主要是根据前面的水果百科动态网站 的需求分析和水果百科动态网站的总体设计来设计页面并实现业务逻辑。主要从水果百科动态网站 界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 前台首页界面

当进入水果百科动态网站 的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图4-1所示。

 

图4-1 前台首页界面图

4.1.2 用户注册界面

不是水果百科动态网站 中正式用户的是可以在线进行注册的,如果你没有本水果百科动态网站 的账号的话,添加“注册”,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

 

图4-2 前台用户注册界面图

注册逻辑关键代码如下所示。

public function register()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->register($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function register($request=[],$table_name = ''){

        $username = $request['username'];

        $bol = $this->where(['username'=>$username])->find();

        if (!$bol){

            $result = self::allowField(true)->save($request);

            if ($result) {

                return ['result' => 1];

            } else {

                return ['error' => ['code' => 3000, 'message' => '注册失败']];

            }

        }else{

            return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];

        }

    }

4.1.3 用户登录界面

水果百科动态网站 中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到水果百科动态网站 的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

 

图4-3用户登录界面图

登录系统主要代码如下。

public function login()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->login($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function login($request=[],$table_name = ''){

        $username = $request['username'];

        $password = $request['password'];

        $bol = $this->where(['username'=>$username])->find();

        if ($bol){

            $password = md5($password);

            if ($request['password']==$bol['password']) {

                //添加token信息

                $access_token['create_time'] = date('Y-m-d H:i:s');

                $access_token['update_time'] = date('Y-m-d H:i:s');

$access_token['info'] = json_encode($bol);

                // $access_token['info'] = $bol;

                $access_token['token'] = md5(date('Y-m-d H:i:s'));

                $bol_token = Db::name('AccessToken')->insert($access_token);

                if ($bol_token){

                    $data['obj'] = $bol;

                    $data['obj']['token'] = $access_token['token'];

                    return ['result' => $data];

                }else{

                    return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                }

            } else {

                return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

            }

        }else{

            return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

        }

    }

4.1.4线上交流界面

用户在点击导航栏上面的留言板后,就可以搜索查看留言信息,用户根据自己的喜好可以进行交流,线上交流界面如下图4-4所示。

 

图4-4线上交流界面图

4.1.5 我的账户界面

当点击导航栏上的“我的”的时候,就会进入对应的界面查看我的账户修改密码、个人资料,我的账户界面如下图4-5所示。

 

图4-5我的账户界面图

4.1.6 水果常识详情界面

当访客点击了任意水果后将会进入该款水果的详情界面,可以了解到该水果品的中文名、别名、水果类别、常见品种等,同时可以对该水果常识进行收藏+点赞+评论,水果常识详情展示页面如图4-6所示。

 

图4-6 水果常识详情界面图

4.2管理员功能模块

4.2.1 用户管理界面

水果百科动态网站中的管理人员是可以对前台注册的用户进行管理的,也可以对管理员进行管控。界面如下图4-7所示。

 

图4-7用户管理界面图

用户管理关键代码如下所示。

public function get_list($request=[],$table_name = '',$table_id = ''){

        $page = 1;

        $size = $table_name == "auth" ? 100 : 10;

        $where = [];

        $order = $table_id.'_id desc';

        $field = '*';

//        echo $order;exit;

        $columns = Db::query( "show COLUMNS FROM `".$table_name."`");

        foreach($columns as $key=>$val){

            $field_name = $val['Field'];

            if(isset($request['like'])){

                if ($request['like']==true){

                    //字段模糊查询

                    if(isset($request[$field_name])){

                        $where[] = [$field_name, '=', $request[$field_name]];

                    }

                }else{

                    //字段模糊查询

                    if(isset($request[$field_name])){

                        $where[] = [$field_name, 'like', '%' . $request[$field_name] . '%'];

                    }

                }

            }else{

                //字段模糊查询

                if(isset($request[$field_name])){

                    $where[] = [$field_name, 'like', '%' . $request[$field_name] . '%'];

                }

            }

            //范围查询

            if(isset($request[$field_name.'_min'])){

                $where[] = [$field_name, '>=', $request[$field_name.'_min']];

            }

            if(isset($request[$field_name.'_max'])){

                $where[] = [$field_name, '<=', $request[$field_name.'_max']];

            }

        }

        //分页

        if (isset($request['page'])){

            $page = $request['page'];

        }

        if (isset($request['size'])){

            $size = $request['size'];

        }

        //排序

        if (isset($request['order'])){

            $order = $request['order'];

        }

        //查询字段

        if (isset($request['field'])){

            $field = $request['field'];

        }

        //模糊查询

        $list= $this->where($where)->order($order)->field($field)->page($page, $size)->select()->toArray();

        foreach($list as &$l){

         foreach($l as &$o){

         if(strpos($o,$_SERVER['HTTP_HOST']) === false){

         $o = str_replace('upload','http://'.$_SERVER['HTTP_HOST'].'/upload',$o);

         }

         }

        }

        return $list;

    }

4.2.2 留言管理界面

水果百科动态网站中的管理人员是可以对前台用户发布的留言进行管控的,界面如下图4-8所示。

 

图4-8留言界面图

留言交流管理逻辑代码如下所示。

public function get_obj()

    {

        $request = Request::param();

        $result = $this->model->get_obj($request, $this->table, $this->table_id, $this->table_id);

        $data['result'] = $result;

        return json_encode($data);

    }

4.2.3 内容管理界面

水果百科动态网站中的管理人员在“内容管理”这一菜单中是可以对水果百科动态网站内的线上交流、交流分类、水果新闻、新闻分类进行维护和管理的,界面如下图4-9所示。

 

图4-9内容管理界面图

内容管理逻辑代码如下所示。

public function add()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

if($this->table == 'user'){

$request['password'] = md5($request['password']);

}

$res = $this->add_before($request, $this->table, $this->table_id);

if($res['code'] == 200){

$result = $this->model->add($request, $this->table, $this->table_id);

$this->add_after($this->table);

$data = $result;

}else{

$data['error'] = $res;

}

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

4.2.4 更多管理界面

水果百科动态网站中的管理人员在“更多管理”这一菜单下是可以对水果百科动态网站内水果分类、水果常识、水果养生、推送分类、水果推送的进行管控的,其管理界面如下图4-10所示。

 

图4-10更多管理界面图

sem seo是什么意思软件平台验收标准优化是啥意思泰安网络公司信赖臻动传媒顾问竞价单页设计自建房空调外机怎样设计平台企业云盘seo推广小钢炮下拉靠谱深圳十大设计师北京广告制作公司一条街广州企业做网站多少钱人力资源和社会保障部考试中心网软件测试web项目实例来个网站靠谱的中央农村工作会议精神传达提纲免费学生dw网页制作成品沈阳博士男科医院简介山西seo优化公司十大阿里代运营公司公众号涨粉方案本地网站制作广州设计周导视设计是什么意思黄页网站大全视频播放乌鲁木齐建设培训中心网站有趣的网站颜色广东seo点击排名软件网络设计与规划论文比较正规做好网络营销推广

猜你喜欢

  • 友情链接:
  • 向日葵视频永久免费 口碑营销推广品牌 个人网页制作首页 视觉设计论文 桂林新网红打卡点 龙岩网站建设加推广