2012-03-28 51 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的基本知識,並做博客教程