2012-03-28 5 views
0

Ich habe ein Stück Code, der Google-Login ist es in unten angegeben ist. Es ist in normalen PHP, wo es eine Datei enthält. Der Code ist unten angegeben.Wie fügt man eine PHP-Datei aus Webroot in eine ctp-Datei in Cake php ein?

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();} 

Antwort

0

Dieser Code ist völlig falsch.

  • Webroot ist der falsche Ort für Libs wie das, es in/app/Anbieter gehört, es mit App laden :: import(), es in book.cakephp.org nachschlagen
  • Sie‘ re nicht die Formhelper verwendet wird, durch diese und sehr wahrscheinlich ohne die Sicherheitskomponente mit der Form könnte
  • verwenden Sie kEINE $ _GET und $ _POST direkt verwenden $ this-> data & $ this-> Anfrage in 1.3
  • ausnutzbar sein
  • Ich kenne diese Lib nicht, aber der ganze Code sieht wie eine nette Verletzung des MVC-Frameworks aus. Das LightOpenId-Zeugs sollte sehr wahrscheinlich in einem Controller ausgeführt werden, und dort sollte die Ausnahme abgefangen und als eine Fehlermeldung für die Ansicht festgelegt werden. Vielleicht sogar besser, es in eine Komponente einzupacken.
  • Lesen und wichtiger verstehen die MVC Muster
  • Lesen Sie mehr über die Grundlagen von CakePHP und tun das Blog-Tutorial
Verwandte Themen