php网站部署到服务器 php网站设计与部署问题总结

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

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

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

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

  而且通过输出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网站部署到服务器 php网站设计与部署问题总结

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

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

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

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

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

  

爱华网本文地址 » http://www.aihuau.com/a/960471/478815982.html

更多阅读

如何上传网页到服务器 360免费云服务器

如何上传网页到服务器——简介越来越多的企业站和个人网站出现了,对于很多初学者来说,如何上传网页到服务器也是一个跨不过去的坎儿,下面我来说下使用工具上传网站程序到服务器的办法。如何上传网页到服务器——工具/原料上传工具需

找不到服务器或 DNS错误 手机dns或ip错误

找不到服务器或 DNS错误——简介这个故障也是我们平时在上网的时候经常碰到的,很让人烦恼,那么怎么解决这一问题呢?笔者分享一下解决的过程找不到服务器或 DNS错误——方法/步骤找不到服务器或 DNS错误 1、首先确定输入的网址是否正确

怎么部署缓存服务器 怎么架设缓存服务器

怎么部署缓存服务器——简介随着互联网的不断发展,高清视频、图片、下载、音乐、网页内容越来越丰富,特别WEB视频和P2P的应用导致网络流量几何级的增长,对出口形成很大压力。面对这种情况,传统的做法一是增加宽带,二是通过路由限速。但这

魔兽世界无法连接到服务器怎么办 精 lol无法连接服务器

最近魔兽世界更新,而我的朋友的电脑无法连接到服务器。按照战网给的操作无法解决。于是自己解决了一下魔兽世界无法连接到服务器怎么办 精——工具/原料网游加速工具(免费收费的皆可)魔兽世界无法连接到服务器怎么办 精——步骤/方法

找不到服务器或dns错误怎么办 无法找到服务器dns地址

找不到服务器或dns错误怎么办——简介 不少人经常在浏览网页时候突然跳出一个提示,上面显示“找不到服器”或“dns错误”。现在先了解了找不到服务器或DNS错误是什么原因吧,然后我再告诉你如何解决找不到服务器或dns错误这个现象。找

声明:《php网站部署到服务器 php网站设计与部署问题总结》为网友美男丫分享!如侵犯到您的合法权益请联系我们删除