Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将远程服务器设置为使用Zend类验证和上载网站中的文件?_Php_Zend Framework - Fatal编程技术网

Php 如何将远程服务器设置为使用Zend类验证和上载网站中的文件?

Php 如何将远程服务器设置为使用Zend类验证和上载网站中的文件?,php,zend-framework,Php,Zend Framework,我在网站上实现Zend框架时遇到问题。它不是一个花哨的应用程序,只是使用Zend的一些验证类和Zend_File_Transfer_Adapter_Http将文件上载到服务器。 它们都不起作用。问题是:我读到应该写一个htaccess文件来指定站点的文件夹结构,并且应该启用mod_rewrite。我不知道如何检查mod_rewrite,因为我的提供者的控制面板非常缺乏信息 不管怎样,我认为这样包含Zend库就足够了: $libreria = $_SERVER['DOCUMENT_ROOT'];

我在网站上实现Zend框架时遇到问题。它不是一个花哨的应用程序,只是使用Zend的一些验证类和Zend_File_Transfer_Adapter_Http将文件上载到服务器。 它们都不起作用。问题是:我读到应该写一个htaccess文件来指定站点的文件夹结构,并且应该启用mod_rewrite。我不知道如何检查mod_rewrite,因为我的提供者的控制面板非常缺乏信息

不管怎样,我认为这样包含Zend库就足够了:

$libreria = $_SERVER['DOCUMENT_ROOT'];
$libreria.='Zend/ZendFramework/library';
set_include_path(get_include_path().PATH_SEPARATOR.$libreria);
require_once('Zend/Loader/Autoloader.php');
Zend_Loader_Autoloader::getInstance();
但显然不是。所以我的另一个问题是:?我是否应该以不同的方式实例化Autoloader,是否应该指定一个名称空间,比如
$loader=Zend_loader_Autoloader::getInstance()$加载器->注册中间空间(某物)我不这么认为,因为正如我所说的,我只是试图将验证类和文件上载类包含到网页中

最后,我在一些脚本上设置了类PHPMailer来处理用户输入,每当我似乎正确地包含Zend Framework的路径时,页面就会抛出500个内部服务器错误,而如果我写错了路径,则不会发生这种情况(这是另一个问题,我认为如果我设置了相对于文档的路径,它就不起作用,例如执行
$libreria='Zend/ZendFramework/library';
将不起作用,因为无论我写什么,我都会看到为验证输入而设置的所有条件都失败

最后一个问题是:PHPMailer是否与Zend框架有一些不兼容?请原谅,我是个新手,尽管我检查了PHPMailer类,没有发现任何不兼容的地方,但我必须问一下

如果有人愿意帮忙,请提前感谢

我还应该补充一点,我已经在本地服务器上测试了这个网站,它工作正常,问题出在远程服务器上

另外,我也读过这篇文章,这就是我想要的,根据它,我应该能够使用新的操作符引用Zend的标准类。但是在远程服务器上,我不能这样做,只能在本地进行


搜索更多一些我已经阅读了Zend安装失败的可能原因,这让我能够澄清我的问题:首先,我认为这些条件都没有失败,尽管我说过我无法在我的提供商的远程服务器上检查mod_rewrite,其次,我的htaccess文件是空的,因此没有重定向关于规则(这将消除Zend Framework与不正确的htaccess交互的问题,如果我错了,请纠正我),第三,我没有访问php.ini文件的权限。那么我能做什么呢?任何建议都可以接受,因为我整个上午都在努力解决这个问题,不知道出了什么问题。

你必须区分Zend Framework作为MVC应用程序和独立库。你想要的是独立库和u很多文档都是关于ZF作为MVC应用程序的。启动MVC应用程序需要htaccess

对于ZF作为一个独立的库,您基本上只需要一件事:正确的路径。如果您愿意,您可以将autoloader添加到该库中,但对于ZF 1.x,这不是一个要求,因为您已经准备好了所有的require_

现在,您只需测试您的路径是否有效。如果您的
require_once('Zend/Loader/Autoloader.php');
语句不会抛出错误,则基本上所有设置都会抛出错误,因为include路径会在require_once语句中扩展路径


对于自动加载器。如果这没有显示错误,您也应该在此处设置。但是,您可能与主应用程序有冲突。在Zend_Loader_自动加载器之后,您应该能够实例化Zend类。尝试在下一行加载一个验证程序。如果这样做有效,但在应用程序中不起作用,您可能会遇到问题该应用程序中的另一个自动加载程序覆盖了Zend加载程序。

不知怎的,我怀疑
$\u服务器['DOCUMENT\u ROOT']
是你的Zend文件夹的根目录,因为那将是你的公用文件夹,我们通常不会将我们的库放在公用文件夹中。@AdrianWorld谢谢。在放置包含路径时遇到很多麻烦后,我实际上是这样设置的。我试过使用Unix根目录
/mypath/etcetera,etcetera
和相对路径
。/ZendFramework/
但都不起作用。我仍然有这个问题。最近我在注意到ZendFramework没有加载后尝试更改.htaccess文件。我做了
php\u值include\u path:/home/u230474/Zend”
在htaccess文件上,但发生的事情是网站的所有页面都无法查看。因此我删除了对.htaccess的更改。我发布了另一个关于将dir附加到htaccess的问题。谢谢,我已经测试了我的脚本并添加了一些内容,首先是一个简单的if-else子句,以查看库是否已加载。现在我得到了正确的pat然后,在我的每个验证器上,我放了一个类似的if-else子句,它们都输出ok。我实际上检查了我的代码,发现我用同一个变量声明了两个验证器。修复了这个问题,但是,验证器似乎不起作用,这只发生在Linux中。我有Linux测试环境,有些东西不起作用。我必须在我的网站的备份上,在一些文件夹上执行
chown
。在Linux中它不起作用