2012-03-28 13 views
0

私は以下のコードでGoogleログインを行っています。それはファイルを含む通常のPHPにあります。コードは以下の通りです。ケーキのPHPのctpファイルの中にwebrootから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

このコードは、全く間違っています。

  • ウェブルートは、そのようなlibsのため間違った場所で、それは、Appでそれをロードし、/アプリ/ベンダーに所属::インポート()、book.cakephp.orgでそれを見て
  • ます」 FormHelperを使用していない場合は、セキュリティコンポーネントを使用しないとこのフォームが悪用される可能性があります。
  • $ this-> data & $ this-> requestを1.3
  • で直接使用しないでください
  • 私はこのlibを知りませんが、コード全体がMVCフレームワークの素晴らしい違反のように見えます。 LightOpenIdはコントローラ内で実行される可能性が高く、例外がキャッチされ、ビューへのエラーメッセージとして設定される必要があります。それをコンポーネントにラップする方が良いかもしれません。
  • 読むと、より重要なは、CakePHPの基本についてMVCパターン
  • 読み取りを理解し、ブログのチュートリアル
0

を行い、このコードは行くための適切な場所がいずれかのベンダーであるかに変換プラグイン(cakephp 2.0用)。 CakePHPの1.3を使用して

あなたは同じの使用例を見て料理に見てくださいベンダーにそれを入れて、フォルダや

App::import(); 

を行う必要があります。 http://book.cakephp.org/1.3/en/view/943/Loading-Vendor-Files

Appクラスは非常に便利なユーティリティライブラリです。 http://book.cakephp.org/1.3/en/view/933/The-App-Class

関連する問題