手机版

PHP模拟博客(1)数据库和界面设计

时间:2021-11-18 来源:互联网 编辑:宝哥软件园 浏览:

自学了半年多的PHP,断断续续,但最后还是坚定了自己的想法,继续PHP,于是我写了这个PHP博客,想找一份稳定的PHP工作,不求高薪,只求有个落脚的地方。我能阅读大部分英文文件。人不傻,爱学习。如果你有兴趣,可以联系我!诚心来吧!Qq:240382473我会分3-5次发布所有关键代码和文档描述,博客后台的所有样式都会应用到Blog Park!说明:1。没有完全采用MVC架构,但是概念是这样的。因为我们还不能写出稳定的MVC架构。2.几乎没有使用JQUERY AJAX,因为对它不是很熟悉,所以不容易使用。留言簿可以用AJAX,没问题。3.有几个常见的类,其他代码都是手工编写的。请指出许多不足之处。谢谢您们。4.欢迎批评和指导,但请给出你的理由。离家更近:先看数据库架构

这些表的引擎是MYISAM,很容易访问。(黄色键表示主键;蓝色菱形表示非空字段;白色菱形表示的空字段)图中的链接仅表示它们之间存在潜在的关系,在操作过程中无法关联,因为搜索引擎是MyISAM。因此,需要联合查询和多表操作。我会在帖子和类别这两个表中选择最重要的特殊字段,详细说明,其他的都很重要。 post _ id category_id varchar(10)这是用来索引博文的类别,这里的category _ id也是字符串类型,所以可以为每个博文设置多个类别。字段varchar (20)用于区分帖子、文章和日记。同时可以设置为发文稿和文章稿;其他常见字段如标题、内容、创建时间、上次更改时间、浏览次数、评论次数、标签、允许的评论和一些保留字段是否在Visible blog post中可见。类别:父、count _ child _ number、count _ parent _ number用于将来扩展类型。相册、博文、日记的分类可以单独设置。其他常用字段,如名称、描述、创建时间、可见性注释:地址用户IP用户代理用户浏览器类型其他字段被省略.服务器架构PHP 5 . 4 . 2 MySQL 5 . 523 Apache 2 . 2 . 22 Windows NT Arist-PC 6.1 Build 7600(Windows 7。Home Basic Edition) i586(本地)博客架构背景目录:

后台目录说明:断言存放各种资源js,css,图像类存放我们的类常用类如数据库操作类,分页类,和我们的大部分模型扩展存放些扩展如土木工程硕士土木工程学硕士的富编辑器配置存放我们的配置信息模板存放所有的模版(没有采用聪明)上传存放的是相片和其他文件管理根目录下会有一些类似的控制器如index.php、post.php、article.php、photo.php我们先看看管理/配置/config.php复制代码代码如下:php ini_set('display_errors ',true);date_default_timezone_set('亚洲/上海');//根和直接尝试分开定义(“DS”,DIrectory _ SEPARATOR);定义(' ROOT ',目录名(目录名(_ _ FILE _ _)));//数据库信息//需要哈希定义(' DB_USERNAME ',' * * *);定义(' DB_PASSWORD ',' * * * ');定义(' DB_NAME ',' blog ');//重要目录定义(' CLASS_PATH ',' CLASS ');定义(' TEMPLATE_PATH ',' TEMPLATES ');//用户信息定义(' ADMIN_USERNAME ',' ADMIN ');定义(' ADMIN_PASSWORD ',' $ 2a $ 08 $ Wim8kpwhhaka 6 mbssgumcyfjku1x vrkd 4 FX wal。wj8d qfbocvsfawim8 kpwhhaka 6 mbssgumco’;//哈希并验证了密码函数hasher($info,$ encdata=false){ $ strength=' 08 ';//如果加密数据通过,请对照输入($ info)if($ enc data){ if(substr($ enc data,0,60)=crypt($ info,$2a$ ' .$力量。'$'.substr($encdata,60))){ return true;} else { return false} } else {//制作一个盐并用投入散列,并添加盐以结束$ salt=for($ I=0;$ i 22$ I){ $盐=substr(' ./abcdefghijklmnopqrstuvwxyzabbdefghijklmnopqrstuvwxyz ' 0123456789 ',mt_rand(0,63),1);}//返回82个字符字符串(60个字符哈希22个字符盐)返回crypt($info,$2a$ ' .$力量。'$'.$盐)。$盐;} } function _ _ autoload($ className){ if(file _ exists)(ROOT .DS .班级DS .strtolow($ CLaSS name).上课。PHP '){ require _ once(ROOT .DS .班级DS .strtolow($ CLaSS name).上课。PHP’);} else { /*错误生成代码在此*/} }这里我们定义了一些基本常量,和几个函数_ _自动加载()函数加载管理员/班级/中的所有类用hasher()函数加密了一个88位的不可逆密码,登录过程就是用config.php中的常量和hasher()函数来进行验证。

来看我们的admin/index.php后台控制器这个控制器主页显示一些博客的相关数据复制代码代码如下:PHP需要_ once(' config/config。PHP’);session _ start();$action=isset($_GET['action'])?$ _ GET[' action ']: " ";$ username=isset($ _ SESSION[' username '])?$ _ SESSION[' username ']: " ";if ($action!='login' $action!='注销!$ username){ log in();退出;} switch($ action){ case ' log in ' : log in();打破;案例"注销";注销();打破;默认: admin();打破;}函数log in(){ $ results['页面标题']=' log in Form ';//处理登录if(isset($ _ POST[' log in ']){//我们简单的从常量变量中验证它//如果我们需要从数据库中验证用户,以后再这样做//$ User=新用户;//$user-isValidateUser($name,$ password);if($ _ POST[' USERNAME ']==ADMIN _ USERNAME $ _ POST[' PASSWORD ']==hasher($ _ POST[' PASSWORD '],ADMIN_PASSWORD ) ){ //注册会话数据$ _ SESSION[' USERNAME ']=ADMIN _ USERNAME;//管理页面标题的位置(' location :索引。PHP’);}否则{ //登录失败:向用户显示错误消息$results['errorMessage']='用户名或密码不正确。请再试一次。需要(模板路径./loginFOrm。PHP’);} } else { require(TEMPLATE_PATH)./loginFOrm。PHP’);} }函数admin(){ $ results[' Page title ']=' Administrator Page ';需要(模板路径./admin。PHP’);}函数注销(){ $ results[' Page title ']='登录Page ';unset($ _ SESSION[' username ']);标题("位置: index . PHP ");} 这个设计模式是从一个老外那里学的!原理就是:首先我们加载我们的config.php,初始化会议变量,获得$动作这个重要变量的值;然后我们判断$动作和$用户名的值,如果用户没有登录以及用户名为空,返回登录页面;如果用户正确输入了用户名和密码,则注册一个会议变量$用户名,然后跳转到主页面index.php,这时我们会调用默认的$action admin(),这个函数会加载一个模版admin.php;里面有个数组变量$results['pageTitle'],以及我们的后台博客样式框架。如果用户输入错了,则给出提示信息。这个设计理念的核心就是,给出{动作}然后{做某事}我们会在后面的代码中反复看到。这个就是博客后台的框架样式,从博客园复制来的,采用表格布局的,兼容的,可自定义其他样式的,简单的,实用的,可扩展的,完美后台框架

这种风格在其他浏览器中也是兼容的。写这篇博文的时候,已经完成了一些功能。下一步:CRUD实现散文、文章、日记及其分类。ps:还没有使用ajax进行这些操作,因为我还不熟悉ajax。

版权声明:PHP模拟博客(1)数据库和界面设计是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。