相关疑难解决方法(0)

参考 - 这个错误在PHP中意味着什么?

这是什么?

这是关于编程PHP时可能遇到的警告,错误和通知的一些答案,并且不知道如何修复.这也是社区Wiki,因此邀请每个人参与添加和维护此列表.

为什么是这样?

Stack Overflow上经常弹出诸如"已发送标头""调用非对象成员"之类的问题.这些问题的根本原因总是一样的.因此,这些问题的答案通常会重复,然后显示OP在他/她的特定情况下要改变哪一行.这些答案不会为网站添加任何价值,因为它们仅适用于OP的特定代码.具有相同错误的其他用户不能轻易地从中读取解决方案,因为它们过于本地化.这很难过,因为一旦你理解了根本原因,修复错误是微不足道的.因此,该列表试图以一般的方式解释解决方案.

我该怎么办?

如果您的问题已被标记为重复,请在下面找到您的错误消息并将修复程序应用于您的代码.答案通常包含进一步调查的链接,以防单独的一般答案不清楚.

如果您想贡献,请添加您的"收藏"错误消息,警告或通知,每个答案一个,简短说明它意味着什么(即使它只是突出显示其手册页的术语),可能的解决方案或调试方法和现有问答的清单.此外,随时改善任何现有的答案.

列表

另外,请参阅

php oop debugging warnings

1071
推荐指数
35
解决办法
19万
查看次数

require_once中的相对路径不起作用

我有以下结构

otsg
 > class
   > authentication.php
   > database.php
   > user.php
 > include
   > config.inc.php
   > encryption.php
   > include.php
   > session.php
 > index.php
 > registration.php
Run Code Online (Sandbox Code Playgroud)

include.php文件具有以下内容

ini_set('display_errors', 1);
error_reporting(E_ALL);

ini_set('include_path',ini_get('include_path').':/Applications/MAMP/htdocs/otsg/:');
require_once 'config.inc.php';
require_once '../class/database.php';
require_once '../class/user.php';
require_once 'encryption.php';
require_once 'session.php';
require_once '../class/authentication.php';
Run Code Online (Sandbox Code Playgroud)

在我包含的index.php页面中

require_once 'include/include.php';
Run Code Online (Sandbox Code Playgroud)

当我打开页面index.php时,我收到以下警告和致命错误.我不明白是什么导致了这个错误.当我给出绝对路径时它起作用.但绝对的道路并不是我认为的好主意.

Warning: require_once(../class/database.php) [function.require-once]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/otsg/include/include.php on line 9

Fatal error: require_once() [function.require]: Failed opening required '../class/database.php' (include_path='.:/Applications/MAMP/bin/php5.3/lib/php:/Applications/MAMP/htdocs/otsg/include/:') in /Applications/MAMP/htdocs/otsg/include/include.php on line 9
Run Code Online (Sandbox Code Playgroud)

提前致谢

php warnings require-once fatal-error

98
推荐指数
2
解决办法
10万
查看次数

file_put_contents权限被拒绝

我正在尝试将查询写入文件以进行调试.该文件在database/execute.php.我想写的文件是database/queries.php.

我正在尝试使用 file_put_contents('queries.txt', $query)

但我得到了

file_put_contents(queries.txt)[function.file-put-contents]:无法打开流:权限被拒绝

我有queries.txt文件chmod'd到777,问题是什么?

php file-io file-permissions

85
推荐指数
4
解决办法
20万
查看次数

无法打开流:没有这样的文件或目录

>     Warning: include_once(/PoliticalForum/headerSite.php) [function.include-once]: failed to open stream: No such file or
> directory in C:\xampp\htdocs\PoliticalForum\mainHome.php on line 16
> 
> Warning: include_once() [function.include]: Failed opening
> '/PoliticalForum/headerSite.php' for inclusion
> (include_path='.;C:\xampp\php\PEAR') in
> C:\xampp\htdocs\PoliticalForum\mainHome.php on line 16
Run Code Online (Sandbox Code Playgroud)

使用include_once时为什么会出现错误:

   include_once("/PoliticalForum/headerSite.php");
Run Code Online (Sandbox Code Playgroud)

php mysql dreamweaver

31
推荐指数
2
解决办法
23万
查看次数

file_get_contents()如何修复错误"无法打开流","没有这样的文件"

我尝试运行PHP脚本时收到以下错误:

无法打开流:第3行脚本中的C:\ wamp\www\LOF\Data.php中没有此类文件或目录:

我的代码如下:

<?php

$json = json_decode(file_get_contents('prod.api.pvp.net/api/lol/euw/v1.1/game/by-summoner/20986461/recent?api_key=*key*'));

print_r($json);

?>
Run Code Online (Sandbox Code Playgroud)

注意:*key*是URL(我的API密钥)中字符串的替换,并且出于隐私原因而被隐藏.

https://从URL中删除了一个错误消失.

我在这里做错了吗?也许是URL?

php https

25
推荐指数
1
解决办法
10万
查看次数

Laravel在CentOS上的权限问题

我已经克隆了一个laravel repo到我的CentOS 7盒子里.当我尝试运行它时,我得到500错误,没有显示任何内容.

所以我查看了/var/log/httpd/error_log,我发现我有一些权限错误:

[Mon May 16 11:39:32.996441 2016] [:error] [pid 2434] [client 104.156.67.195:39136] PHP Fatal error:  Uncaught UnexpectedValueException: The stream or file "/var/www/html/MYSITE/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/html/MYSITE/bootstrap/cache/compiled.php:13701
Stack trace:
#0 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13635): Monolog\\Handler\\StreamHandler->write(Array)
#1 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13396): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)
#2 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13494): Monolog\\Logger->addRecord(400, Object(Symfony\\Component\\Debug\\Exception\\FatalErrorException), Array)
#3 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13189): Monolog\\Logger->error(Object(Symfony\\Component\\Debug\\Exception\\FatalErrorException), Array)
#4 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13160): Illuminate\\Log\\Writer->writeLog('error', Object(Symfony\\Component\\Debug\\Exception\\FatalErrorException), Array)
# in /var/www/html/MYSITE/bootstrap/cache/compiled.php on line 13701
Run Code Online (Sandbox Code Playgroud)

我已经做了以下尝试来克服这些问题:

chmod -R 775 storage
chmod -R 775 vendor
chown -R apache:apache storage
Run Code Online (Sandbox Code Playgroud)

所以它现在显示如下: …

linux apache permissions centos laravel

21
推荐指数
3
解决办法
1万
查看次数

PHP fopen()错误:无法打开流:权限被拒绝

我学习如何编写WordPress插件.我需要一些帮助将一些数据写入XML文件.我在我的本地机器上,一台运行MAMP的Mac.我有PHP 5.2.13.在我的插件中,我有:

$file_handle = fopen('markers.xml', 'w');
$stringdata = "Test Info";
fwrite($file_handle, $stringdata);
fclose($file_handle);
Run Code Online (Sandbox Code Playgroud)

运行上面的代码给出了以下错误:

警告:fopen(markers.xml)[function.fopen]:无法打开流:第73行/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php中的权限被拒绝

警告:fwrite():提供的参数不是第75行/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php中的有效流资源

警告:fclose():提供的参数不是76行/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php中的有效流资源

我尝试使用$ file_handle行中的绝对路径:http://my_site/wp-content/plugins/my_plugin_folder/markers.xml.但是,这没有用.

我还尝试更改markers.xml的权限,如下所示:

(我):读写(未知):只读大家:读写

出于某种原因,我的Mac不会让我改变(未知)读写.我不确定这是否有所作为.我右键单击该文件并选择"获取信息"以更改权限.

在phpInfo()中,我得到了:

"已注册的PHP Streams https,ftps,compress.zlib,compress.bzip2,php,file,data,http,ftp"

是WordPress设置导致问题?还是只是PHP问题?

有关如何解决这个问题的任何建议?

谢谢.

php wordpress fopen wordpress-plugin permission-denied

18
推荐指数
1
解决办法
9万
查看次数

require_once:无法打开流:没有这样的文件或目录

我在"PAGE A"中有这个测试代码:

<?php
require_once('../mysite/php/classes/eventManager.php');
$x=new EventManager();
$y=$x->loadNumbers();
?>
Run Code Online (Sandbox Code Playgroud)

"eventManager.php"里面有一个require_once:

<?php
require_once('../includes/dbconn.inc');
class EventManager {...}
?>
Run Code Online (Sandbox Code Playgroud)

我的文件夹结构是这样的:

mysite/php/classes folder and includes folder
Run Code Online (Sandbox Code Playgroud)

如果我在浏览器中测试PAGE A,我会收到:

警告:require_once(../ includes/dbconn.inc)[function.require-once]:无法打开流:C:\ wamp\www\mysite\php\classes\eventManager.php中没有这样的文件或目录3


致命错误:require_once()[function.require]:在C:\ wamp\www\mysite\php中打开所需的'../includes/dbconn.inc'(include_path ='.; C:\ php5\pear')失败第3行的\ classes\eventManager.php

错误在哪里?

谢谢卢卡

php dreamweaver require fatal-error

16
推荐指数
3
解决办法
14万
查看次数

PHP:move_uploaded_file()无法打开流:没有这样的文件或目录

我正在尝试让PHP将上传的文件从tmp目录移动到我的网络服务器上永久的某个地方.这看起来很简单,但我收到了这个错误:

Unable to move 'C:\UniServer\tmp\php3F62.tmp' to 'static/images/slides/1/1.jpg'

非常直截了当,对吧?它找不到目标文件夹.

我的问题是:如何引用所需的目标目录?

引用是否相对于脚本在服务器上的位置?或者它相对于URL?还是PHP DOCUMENT_ROOT?还是操作系统的文件系统?或者是其他东西?

我无法在PHP文档中找到答案,或者在SO上找到任何类似的问题.

有人可以帮忙吗?谢谢.

php apache file-upload

15
推荐指数
1
解决办法
7万
查看次数

如何给apache写入主目录的权限?

我的服务器在/ var/www/html我在/var/www/html/fileio_test/io_test.php中有一个php脚本

<?php

$logging = <<< LOG
This is a test
LOG;

$testfile = fopen('/home/djameson/test.txt', 'a'); 
fwrite ($testfile, $logging);
fclose($testfile);

?>
Run Code Online (Sandbox Code Playgroud)

当我尝试运行这个脚本时,我得到了

Warning: fopen(/home/djameson/test.txt): failed to open stream: Permission denied in   /var/www/html/fileio_test/io_test.php on line 7

Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 8

Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 9
Run Code Online (Sandbox Code Playgroud)

如何让apache写入我的主目录?服务器在fedora 20上运行.

php apache

12
推荐指数
2
解决办法
7万
查看次数