require_once()给了我错误

时间:2012-04-02 06:18:29

标签: php iis

require_once('/recaptcha/recaptchalib.php'); was in the correct place 

但错误说:

Warning: require_once() [function.require-once]: open_basedir restriction in effect. File(C:\/recaptcha/recaptchalib.php) is not within the allowed path(s): (C:\Inetpub\vhosts\xxx.com\httpdocs\) in C:\Inetpub\vhosts\xxx.com\httpdocs\wp-content\themes\xxx\download.php on line 5

第5行指向require_once。我不确定它为什么会出错,在本地开发时它不会抱怨。

编辑#2 警告:touch()[function.touch]:无法创建文件C:\ Inetpub \ vhosts \ xxx.com \ httpdocs / csv / brochure-list.csv,因为在C:\ Inetpub \ vhosts \ xxx中没有这样的文件或目录第161行的.com \ httpdocs \ wp-content \ themes \ mta2013 \ downbrochure.php

代码:

$filename= ABSPATH. 'csv/list.csv';
            $isNew = (file_exists($filename) || is_file($filename)) ? false : true ;
            touch($filename); //Sets access and modification time of file and  If the file does not exist, Create it.
            $fp = fopen($filename, 'a+');
            forceHeader($columns,$filename);

            fputcsv($fp, $formData);
            fclose($fp);

我可能会在这里忽略一些东西。但我添加了ABSPATH并且它无法解决错误。

编辑#3

好吧我解决了,因为目录没有设置为权限或'已识别'。谢谢您的帮助。

2 个答案:

答案 0 :(得分:2)

这意味着你没有权限在php中包含该文件。看这里open_basedir 将该库移到vhost文件夹中,然后使用或更改open_basedir配置

答案 1 :(得分:1)

使用

require_once('/recaptcha/recaptchalib.php');

实际上,当您想要移动到以下文件夹时,您实际上是将PHP导向根文件夹(在Windows中为C:\):

C:\Inetpub\vhosts\xxx.com\httpdocs\

我猜测你的服务器文件夹是httpdocs,默认情况下PHP将它作为基本目录。因此,您不需要使用/recaptcha。因此,

require_once('recaptcha/recaptchalib.php');

效果很好。