Warning: file_put_contents 抓狂中

时间:2023-01-16 21:28:27
先看这个乱码的网址: http://www.marinehardwarestore.com

本来在WINDOWS主机上测试的,完全没有问题了,但是上传到UNIX主机 就瘫痪了,整个网站出现大片的警告。我的UNIX主机是美国的服务器。

我跋山涉水啊、我翻山越岭啊,我问百度大叔、我问谷歌阿姨、我QQ群发帖、我ECSHOP求助。。。我。。。

下面先列出之前已用过,但是仍然没有解决或者不知道如何解决的方法,供后人借鉴,少走弯路:

方法一、来自晓天:Warning: Cannot modify header information 
http://www.shopex.cn/tools/bom_out.php
这个是您编辑器的问题
您可以换个编辑器,比如editplus
备注:我使用的是DW编辑的,不会出现这样的错误,而且我的程序在WIN主机上是可以正常运行的,所以排除这个原因。

方法二、ecshop使用过程中常常出现Cannot modify header information - headers already sent by 错误,这个错误主要是由于session,cookie面前有输出而直接导致的,因为session,cookie他必须放在html前面.解决的办法有以下几种方式:
    1: output_buffering = On ,在php.ini中设置.
    2:js代替header跳转,使用header()来代替location.href="";
    3:在header();后面用exit退出
备注:我没有修改PHP.ini的权限,我想服务提供商应该不会设置到连ECSHOP都不能用的程度。第2、3条由于描述的比较抽象,我没办法知道到底要改哪里,故没有试过。

方法三、空间或数据库已满、或者文件权限不够。
备注:我的空间是20G,只用了30M,我的文件权限已经全部设为为777.,但是仍然无效。


下面求高人指点,我到底该怎么办,有没有别的办法了啊。 

22 个解决方案

#1


找不到文件或者文件夹,是不是创建权限的问题啊

#2


找不到需要包含的文件,是不是你本地路径和服务器的路径不一样啊(在文件结构方面)

#3


路径不对啊!!

Fatal error: require() [function.require]: Failed opening required '/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php' (include_path='.:/services1/webpages/m/a/marinehardwarestore.com/public/') in /services1/webpages/m/a/marinehardwarestore.com/public/includes/init.php on line 120

看到没有,检查文件是否存在

#4


我这边没显示有问题 - -

#5


确认一下:都卖的是什么零件?

没有发现什么不妥的地方,除了太慢

#6


Notice: can't write:/services1/webpages/m/a/marinehardwarestore.com/public/temp/caches/f/index_40F756F0.php in /services1/webpages/m/a/marinehardwarestore.com/public/includes/cls_template.php on line 200


notice 错误关掉
在php.ini error_reporting 那里设置。或者php里面的error_reporting() 函数可以设置。

#7


还有,写权限的问题,自己把握吧。

#8


补充一点啊,我的这个站点在WINDOWS主机下运行完全正确,没有任何错误的,但是挪到UNIX下 就这样了,郁闷死了。
权限都设置777了,我在楼顶上提了啊,路径不多的这个更不靠谱了。我刚安装到UNIX下运行正确,但当我提交几次表单后 就坏了。

#9


这是楼主网站的问题


Notice: Undefined variable: data in /services1/webpages/m/a/marinehardwarestore.com/public/includes/lib_base.php on line 1241

Warning: require(/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php) [function.require]: failed to open stream: No such file or directory in /services1/webpages/m/a/marinehardwarestore.com/public/includes/init.php on line 120

Warning: require(/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php) [function.require]: failed to open stream: No such file or directory in /services1/webpages/m/a/marinehardwarestore.com/public/includes/init.php on line 120

Fatal error: require() [function.require]: Failed opening required '/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php' (include_path='.:/services1/webpages/m/a/marinehardwarestore.com/public/') in /services1/webpages/m/a/marinehardwarestore.com/public/includes/init.php on line 120

#10


错误很明显

#11


引用 10 楼 kyzy_yy_pm 的回复:
错误很明显



那是什么错误啊。。。。麻烦提醒一下啊

#12


你在window中的路径和你在unix中路径结构根本就不是一样的,注意是 路径结构,所以window上行,unix上不行

#13


你能否告诉我:
/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php
unix上你的这个路径能找得到common.php么?

#14


引用 13 楼 kyzy_yy_pm 的回复:
你能否告诉我:
/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php
unix上你的这个路径能找得到common.php么?



能找到的啊。这些文件的路径都是用的动态读取服务器路径的。不应该是路径的问题吧

#15


没看到问题

#16


/services1/webpages/m/a/marinehardwarestore.com/public/languages/ /common.php

common.php前面多了一个/符号

#17


引用 5 楼 xuzuning 的回复:
确认一下:都卖的是什么零件?

没有发现什么不妥的地方,除了太慢


卖游艇配件的。。。


我刚才重新上传了一次网站,开始的时候还是提示无法写入。

但是,我用FTP设置文件权限为777之后,就不提示了。再过了一会又出现了这些提示,我回去FTP看文件权限,发现文件权限又被自动改为644了。真是郁闷死啦。。。

这些文件自动产生出来 怎么权限就是644啊,怎么能配置,让由我的网站程序生成的文件变成777的权限啊。

#18


777太危险了。

#19


引用 18 楼 cunningboy 的回复:
777太危险了。

不是危险的问题,现在是我需要程序正确运行部报错就得给予高一些的权限啊。

#20


chmod($filename, 0666);

既然服务器是支持 php 的,那么就没有道理不支持 “读”“写”,至于执行权则无必要的

#21


引用 20 楼 xuzuning 的回复:
chmod($filename, 0666);

既然服务器是支持 php 的,那么就没有道理不支持 “读”“写”,至于执行权则无必要的


那我的网站现在就偶尔会出现这个提示,好像也没有影响数据运行,不知道到底是怎么回事。。。麻烦帮忙看看。

Notice: can't write:/services1/webpages/m/a/marinehardwarestore.com/public/temp/caches/0/index_E6805D44.php in /services1/webpages/m/a/marinehardwarestore.com/public/includes/cls_template.php on line 200

#22


问题解决了,非常感谢大家的帮忙。

解决方案: 在上传到UNIX服务器的时候,要使用二进制,否则会出现一些莫名其妙的错误,比如我的悲剧~

#1


找不到文件或者文件夹,是不是创建权限的问题啊

#2


找不到需要包含的文件,是不是你本地路径和服务器的路径不一样啊(在文件结构方面)

#3


路径不对啊!!

Fatal error: require() [function.require]: Failed opening required '/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php' (include_path='.:/services1/webpages/m/a/marinehardwarestore.com/public/') in /services1/webpages/m/a/marinehardwarestore.com/public/includes/init.php on line 120

看到没有,检查文件是否存在

#4


我这边没显示有问题 - -

#5


确认一下:都卖的是什么零件?

没有发现什么不妥的地方,除了太慢

#6


Notice: can't write:/services1/webpages/m/a/marinehardwarestore.com/public/temp/caches/f/index_40F756F0.php in /services1/webpages/m/a/marinehardwarestore.com/public/includes/cls_template.php on line 200


notice 错误关掉
在php.ini error_reporting 那里设置。或者php里面的error_reporting() 函数可以设置。

#7


还有,写权限的问题,自己把握吧。

#8


补充一点啊,我的这个站点在WINDOWS主机下运行完全正确,没有任何错误的,但是挪到UNIX下 就这样了,郁闷死了。
权限都设置777了,我在楼顶上提了啊,路径不多的这个更不靠谱了。我刚安装到UNIX下运行正确,但当我提交几次表单后 就坏了。

#9


这是楼主网站的问题


Notice: Undefined variable: data in /services1/webpages/m/a/marinehardwarestore.com/public/includes/lib_base.php on line 1241

Warning: require(/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php) [function.require]: failed to open stream: No such file or directory in /services1/webpages/m/a/marinehardwarestore.com/public/includes/init.php on line 120

Warning: require(/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php) [function.require]: failed to open stream: No such file or directory in /services1/webpages/m/a/marinehardwarestore.com/public/includes/init.php on line 120

Fatal error: require() [function.require]: Failed opening required '/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php' (include_path='.:/services1/webpages/m/a/marinehardwarestore.com/public/') in /services1/webpages/m/a/marinehardwarestore.com/public/includes/init.php on line 120

#10


错误很明显

#11


引用 10 楼 kyzy_yy_pm 的回复:
错误很明显



那是什么错误啊。。。。麻烦提醒一下啊

#12


你在window中的路径和你在unix中路径结构根本就不是一样的,注意是 路径结构,所以window上行,unix上不行

#13


你能否告诉我:
/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php
unix上你的这个路径能找得到common.php么?

#14


引用 13 楼 kyzy_yy_pm 的回复:
你能否告诉我:
/services1/webpages/m/a/marinehardwarestore.com/public/languages//common.php
unix上你的这个路径能找得到common.php么?



能找到的啊。这些文件的路径都是用的动态读取服务器路径的。不应该是路径的问题吧

#15


没看到问题

#16


/services1/webpages/m/a/marinehardwarestore.com/public/languages/ /common.php

common.php前面多了一个/符号

#17


引用 5 楼 xuzuning 的回复:
确认一下:都卖的是什么零件?

没有发现什么不妥的地方,除了太慢


卖游艇配件的。。。


我刚才重新上传了一次网站,开始的时候还是提示无法写入。

但是,我用FTP设置文件权限为777之后,就不提示了。再过了一会又出现了这些提示,我回去FTP看文件权限,发现文件权限又被自动改为644了。真是郁闷死啦。。。

这些文件自动产生出来 怎么权限就是644啊,怎么能配置,让由我的网站程序生成的文件变成777的权限啊。

#18


777太危险了。

#19


引用 18 楼 cunningboy 的回复:
777太危险了。

不是危险的问题,现在是我需要程序正确运行部报错就得给予高一些的权限啊。

#20


chmod($filename, 0666);

既然服务器是支持 php 的,那么就没有道理不支持 “读”“写”,至于执行权则无必要的

#21


引用 20 楼 xuzuning 的回复:
chmod($filename, 0666);

既然服务器是支持 php 的,那么就没有道理不支持 “读”“写”,至于执行权则无必要的


那我的网站现在就偶尔会出现这个提示,好像也没有影响数据运行,不知道到底是怎么回事。。。麻烦帮忙看看。

Notice: can't write:/services1/webpages/m/a/marinehardwarestore.com/public/temp/caches/0/index_E6805D44.php in /services1/webpages/m/a/marinehardwarestore.com/public/includes/cls_template.php on line 200

#22


问题解决了,非常感谢大家的帮忙。

解决方案: 在上传到UNIX服务器的时候,要使用二进制,否则会出现一些莫名其妙的错误,比如我的悲剧~