阶段的总结,是进步的一大助力,现在总结下课程设计。
第一个网站:基于PHP的购书网站
现在感到网站的本质是:数据的流动。
网站一开始,完全不懂后台,所以就只做了前台先。
做前端,就是html,CSS,javascript,jQuery。
在这个过程中,接触到了很多库,框架,js插件。
比如bootstrap,boostrap是响应式的,当时第一个接触的东西,感觉好强大,响应式的,有好多模块可以自己任意添加,顶部,按钮,图标等等,对样式的控制也很难。但是以我现在对bootstrap的认识,做不出很炫酷的页面。所以,本网站就用bootstrap只做了个顶部。
做了个顶部,就很难再用bootstrap做下去。网站是分为好多个部分的。每个部分的样式也不一样,关键是把几个部分凑起来。
之后接触到js插件(即大多是JQ插件),发现了很多JQ插件的网站,感觉好厉害,‘封装’这个词不错。封装好的JQ插件,拿去组装网站就行了,都有参数说明,很棒,我看到了很多网站的特效,有图片轮播,导航,菜单,弹出层,对话框等等,好多好多。最后,看到一个全屏滑动的插件,好炫酷,就拿来用到本网站了。
有了顶部,有了这个全屏滑动的菜单,接下来,自然的想到了,购物网都有的左边的菜单。
我就又到JQ插件网站找菜单,但是,几乎全部是包含了顶部的,而除这之外,有的我不会用的,那么问题来了。我不想放弃之前花了很多时间的bootstrap顶部,再加上,我这样组装网站的最致命的问题:样式的问题。因为每个插件都有自己的样式,而且有的命名还可能会重复的。很乱。而且,你要是想插件包含插件,或者想在插件上加点模块,真的很难很乱。但是没办法,都做到这里了。花了那么多的时间,也算是次经验吧。
我想,唯有自己写个菜单了。于是我参考下载的JQ菜单插件,写了个菜单,其中学了点JQ动画,还由于是在全屏滑动JQ插件里面添加的,样式问题,调了好久。
再后来,在网页的第一页和第二页添加了两个不同的图片轮播,都不错。(全屏滑动JQ插件,网站分为4页)。
剩下第3、4页,但是,总不能全都做个图片轮播。第4页是写媒体合作预定的,写几行字说还没有媒体合作算了。那么还剩下第3页。也只有一种方式了,就是展现几个(10个吧)商品(哦,是10本书。),然后给个‘更多’链接就行了。就用10个div+JQ动画搞定。(这里用的动画就是,当鼠标滑动到这个页面是,10个div,上下两行,上行从左边滑进,下行从右边滑进。)
还有一个,首页点开时,顶部下的一个动画,是模仿一个JQ库网站的,感觉不错。
那么这样一来前端的东西就完成了。
之后,因为不懂怎么后台不知道怎么做下去了,还有其他科目的考试等等,停了很长时间。在这段时间里,发现了很多前端的网站,还有网页的数据拼装,还有CSS的框架等等。
后台的完成完全是被时间逼的。
前面说到,网站的本质是数据的流动。
网站的数据,那自然是要做数据库了。而数据的流动,一个是用户的注册,商品的销售数量,评论等等;一个是后台管理员的管理后台,其中最重要的添加商品,甚至添加分类等等。
经过考虑,我还是选择了一步步来。因为之前有数据库的设计检测,表间有什么联系等等,之前老师的检测是糊弄过去了。随便用pdshell15建物理模型,建几个表,随便拉表间的关系线,但是,这些是不能拿来应用的,或者说是应用不了的。(后来我完成了网站,几个表也没设什么关系,都是各自增删改查的,嗯,可能是还没用到哪些功能吧,所以不用表间什么联系)
首先是做登录注册,这里我只是做用户的,没做管理员的。当时也没管那么多。
去JQ插件网逛了下,哪些表单验证插件都不满意,之后下载个,自己修改。
登录注册,这里涉及到了很多。登录:不能为空,数据库连接,sql查询,cookie,sql防注入,用户名格式(我没有做多种方式登录,只做了用户名登录,没email登录等等),ajax,页面跳转,session,验证码等等。注册:不能为空,数据库连接,sql查询,sql防注入,用户名格式(正则表达式),email格式(正则表达式),session,实时检测用户名有没有重复(用onkeyup),验证码等等。
剩下的,模糊搜索(我直接用了sql语句的模糊搜索),分类页面,商品展示页面,购物车页面,订单页面(没写),后台管理(时间原因,没写)都是数据的增删改查。
还有,网站的logo。
网站的组装:
比如:include ‘commontop.php’
例如:你每个二级页面都包含了顶部导航和菜单,那么你没个页面都再写个导航和菜单吗?显然不可能,那么自然而然的想到要将这些部分封装起来,写到一个独立的php里面,要用的时候就include。(这里说明下,除了include还有include_once,require,require_once,看需要用哪个)
如:在showbook.php里面include ‘commontop.php’;include ‘commonleft.php’;
include ‘conn.php’;等等。
数据库连接最好封装起来,封装到conn.php里面。
Session的使用:
在使用session前要初始化先,在php文件顶部session_start();
还有session的注销等等。
每个商品都有一个独有的网址:
其实,这个是在商品展现网页showbook.php后面加了“?+’变量名’+’商品ID’”。
比如 href=”showbook.php?book_id=<?php echo $book_id ?>”
而目标网页则用GET来获取book_id。即$_GET[‘book_id’]
页面间的数据传递:
post,get,session,cookie,ajax等等,
submit,button+函数,href,location.href等等。
js与php变量相互传递:
这个很重要!很多功能和BUG都是因为这个!
php网页的数据拼接少不了这个!
Js与php是能相互传递变量的,具体可以搜索下。
本网站只要用的是将php变量的值传个js变量:
<?php $value=”购书”?>
<script>
var str=<?php echo $value?>;
alert(str);
</script>
还有,上文提到的页面跳转也用到:
href=”showbook.php?book_id= <?php echo $book_id ?>”
数据库的小技巧:
如:限制拿查到的前几个数据,用limit。等等~
在index.php页面直接查找数据,然后用
<?php
While($data=mysql_fetch_array($res)){
$book_id=$data[‘book_id’];
$book_img_$data[‘book_img’];
?>
<div>
<ahref="showbook.php?book_id=<?php echo $book_id ?>"><imgsrc="images/<?php echo $book_img ?>"></a>
</div>
<?php
}
?>
这样来拼接页面数据。
这样会生成好多个有不同动态数据的div,嗯。
还有,用图片来代替效果!这招赞!
还有前端的样式问题,确实的麻烦,要调很久;绝对定位,z-index,float的应用等等。
云平台:新浪云,百度云,阿里云等等,网上有教程,我用的是新浪云,上传应用,因为我把数据库连接封装出来了,所以很简单,只是调下数据库的连接就行了,不过,这里很怪,搞了很久,最后只是把数据库连接的两个函数的两个参数调换下位置就行了。
到这里,总结得差不多了,遗憾的是网站很多功能都没时间去实现,如排行榜,收藏商品,后台管理,响应式等等,也没有用到php模板smarty。总的来说,还是学到了很多的。
要去考研了,怕时间长忘了,所以写了这个总结。
附上网址:
来源:CSDN
作者:ltx06
链接:https://blog.csdn.net/ltx06/article/details/46987833