php网站设计报告总结,php网站设计与部署问题总结分享

php网站设计与部署问题总结

本文是本来在部署一套服装类网站时遇到的问题,这些问题涉及到了php程序设计问题和php各个版本之间的差别引起的问题。特此做了个总结,希望能够对比人有所帮助,避免不必要的为问题。

1.本人遇到的第一个问题是session问题。一不细心真会让人掉入陷阱里,摸索个老半天。

本人写了个my_session_start($lifetime),除了启动一个会话外,它还完成了两个功能,一个是设定生存时间,也就是函数引入的lifetime变量;另一个是设定一个会话id,我们知道session_start()已经可以自动恢复旧的会话id了,但如果一个一个用户的cookie删除了,会话就无法恢复了,本文里是通过会员数据库里保存的session_id重新恢复到当前会话里。

问题就出在了保存my_session_start($lifetime)这个公共函数的文件里。本人的服务器上是没有php编辑器的,由于测试过程中要修改一个参数,直接使用了记事本修改这个文件。修改完之后原先没有什么问题的程序,突然一直报错了,数值改回去仍然报错,图片如下(另外再模拟的一个文件):

c81eff3147977eeb9544c80ccb0c6d4b.png

而且通过输出session_id(),会发现session_id不断的更改。cookie的值一都为空。PHPSESSID值无法送到客户端。我们知道session_start();这个函数在启动一个会话前会操作cookie的读取或写入,当发现cookie里保存有PHPSESSID(本人的session_name,视个人配置有所不同),就读取并恢复,如果没有,就新建一个会话id然后传送到cookie保存。图片的错误信息很明确,就是说session_start()执行前,已经有输出内容了,导致无法输出phpsessid到cookie里。但我仔细查看了my_session_start($lifetime)函数所在文件,无任何空行,无任何输出,到底是怎么回事呢。网络上找了老半天,试了很多方法都不行,最找到原因了。原来是编码搞的鬼。utf-8编码格式有分 无BOM 和 带BOM信息的,而PHP是不识别BOM头得,utf-8的bom信息是为了兼容utf-16等之后的版本的,微软自带的记事本是支持bom头得,当我用记事本修改该php文件的时候,php文件自动就添加了bom头信息,这个头信息是隐藏的,所以程序才一直提示会话启动时无法发送cookie到客户端。使用uedit将该文件转换为utf-8(无BOM)格式后问题解决。一切都是BOM头惹的祸啊。

2.跟php版本相关的问题

本人的服务器php版本是5.2版本,本人实际写程序的时候使用的是5.4版本,归根结底太追时髦了,有不认真研究php各个版本之间的差别。

首先是__DIR__常量,本人碰到的错误如下图所示,

1dbd7ab0e0bd028d0069f104ff2b782c.png

本人的程序很多地方都有所使用这个常量,以绝对路径引用一个文件,有时候只有这样才能满足要求,本人习惯于使用这个常量,偏偏这次碰见一个php5.2的服务器,经查__DIR__魔术常量是php5.3版本才引入的,其实还有其他很多方法可以取代它,如dirname()/$_SERVER[DOCUMENT_ROOT]等等,没则只能是一个个的重改喽。

其次,session_status(),php5.4才引入的,1 代表session_write_close()调用过,代表关闭session写入,这在带框架的页面有时可以提高加载速度。

总结这次问题,php版本上不可太追时髦,尽量使用主流的版本和功能。很多时候,服务器不是我们能控制的;另外不要随便使用记事本来修改php程序。

本文源自三合网络:http://www.7wa7.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN是一个基于PHP的购物网站,为了设计与实现该网站,我们需要考虑以下几个方面。 首先,我们需要设计一个用户界面,使用户能够方便地浏览商品、添加到购物车并完成购买等操作。可以采用响应式设计,使用户能够在不同终端设备上都能正常访问网站。同时,为了提高用户体验,我们可以采用一些技术手段,如Ajax实现无刷新操作、使用HTML5的本地存储技术等。 其次,我们需要设计一个数据库来存储商品信息、用户信息、订单信息等。可以选择关系型数据库如MySQL或非关系型数据库如MongoDB。在数据库设计过程中,需要考虑索引的使用和优化,以提高数据库查询的效率。 然后,我们需要实现用户注册、登录、购物车管理等功能。用户注册时,需要进行数据校验、密码的安全加密等操作。登录功能需要进行用户身份验证,并使用Session或Token来保持用户的登录状态。购物车管理功能需要实现商品的增删改查,并进行相应的库存管理。 最后,为了提高网站的性能和安全性,我们可以考虑采用缓存技术如Redis来加速页面加载速度,使用CDN加速静态资源的传输,部署防火墙和使用SSL证书来保护用户数据的安全等。同时,也需要对代码进行合理的优化和防御,如防止SQL注入、XSS攻击等。 总的来说,设计与实现一个基于PHP的购物网站需要综合考虑用户界面设计、数据库设计、功能实现和性能安全等方面,以提供用户良好的购物体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值