2012-03-28 113 views
0

我有一段代码,它做谷歌登录它在下面给出。这是在正常的PHP,它包含一个文件。代码如下。如何从webroot包含php文件中的ctp文件中的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();} 

回答

0

此代码是完全错误

  • Webroot公司是对于这样的库错了地方,它属于成/应用/供应商,与App加载::进口(),看看它在book.cakephp.org
  • 你”不使用FormHelper,很可能不使用安全组件,表单可能被利用
  • 请勿直接使用$ _GET和$ _POST,请使用$ this-> data & $ this-> 1.3请求
  • 我不知道这个lib,但整个代码看起来像是一个很好的违反了MVC框架。 LightOpenId的东西应该很可能在控制器中完成,并且应该捕捉异常并将其设置为视图的错误消息。也许更好地把它包装在一个组件中。
  • 阅读,更重要的了解MVC模式
  • 阅读有关的CakePHP的基本知识,并做博客教程