我在CakePHP应用程序中使用Digest Auth来保护某些操作。在我的电脑上使用wamp工作,但当我在服务器上推它时我有这个错误:
错误: Call to undefined method UnauthorizedException::responseHeader()
文件: .../lib/Cake/Controller/Component/Auth/BasicAuthenticate.php
行: 104
/lib/Cake/Controller/Component/Auth/BasicAuthenticate.php:
public function unauthenticated(CakeRequest $request, CakeResponse $response) {
$Exception = new UnauthorizedException();
$Exception->responseHeader(array($this->loginHeaders())); //Line 104
throw $Exception;
}
有人对这个问题有所了解吗?
感谢您的帮助。
答案 0 :(得分:0)
UnauthorizedException扩展了HttpException
HttpException有以下代码(cake 2.5.6)
if (!class_exists('HttpException', false)) {
class HttpException extends CakeBaseException {
}
}
如果已经定义了HttpException,那么它将不会扩展CakeBaseException,并且可能没有实现responseHeader函数
检查你的php扩展和供应商库是否有HttpException
我用过:
$reflector = new ReflectionClass('HttpException');
var_dump($reflector->getFileName()); //if its defined in a php file
var_dump($reflector->getExtensionName()); //if its defined in a php extension
找出我安装了php-http扩展,我不需要它并且它已经定义了HttpException类