如何将webroot中的php文件包含在cake php中的ctp文件中?

如何将webroot中的php文件包含在cake php中的ctp文件中?,php,cakephp,cakephp-1.3,Php,Cakephp,Cakephp 1.3,我有一个做谷歌登录的代码,如下所示。它在普通php中包含一个文件。代码如下所示 require 'openid.php'; try { # Change 'localhost' to your domain name. $openid = new LightOpenID('http://s396001438.onlinehome.us/test2/'); if(!$openid->mode) { if(isset($_GET['login'])) { $openid->identit

我有一个做谷歌登录的代码,如下所示。它在普通php中包含一个文件。代码如下所示

require 'openid.php';
try {
# Change 'localhost' to your domain name.
$openid = new LightOpenID('http://s396001438.onlinehome.us/test2/');
if(!$openid->mode) {
if(isset($_GET['login'])) {
$openid->identity = 'https://www.google.com/accounts/o8/id';
header('Location: ' . $openid->authUrl());
}
?>
<form action="?login" method="post">
<button>Login with Google</button>
</form>
<?php
} elseif($openid->mode == 'cancel') {
echo 'User has canceled authentication!';
`enter code here`} else {
    echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
}
}catch(ErrorException $e) {echo $e->getMessage();}  
这个代码是完全错误的

Webroot对于这样的libs来说是错误的,它属于/app/vendors,使用app::import加载它,在book.cakephp.org中查找它 您没有使用FormHelper,因此,如果不使用安全组件,表单很可能会被利用 不要直接使用$\u GET和$\u POST,在1.3中使用$this->data&$this->request 我不知道这个库,但整个代码看起来很好地违反了MVC框架。LightOpenId的工作应该很可能在控制器中完成,并且应该捕获异常并将其设置为视图的错误消息。也许把它包装成一个组件更好。 阅读,更重要的是理解模式 阅读CakePHP的基础知识并编写博客教程
该代码的正确位置是供应商或将其转换为cakephp 2.0的插件

使用CakePHP1.3,您应该将它放在供应商和文件夹中,然后

App::import();
请查看烹饪书,查看相同的用法示例

App类是非常有用的实用程序库