Javascript 查找实际登录操作Yii时遇到问题
我被抛出了一些代码,我正试图编辑登录功能,但我无法定位实际登录的位置。地址栏上的登录url表明它在site/index.php中,但当我检查该页面时,那里的代码完全不相关,因此我找到了指向_login.php的“login.php”页面作为视图 下面是login.php的代码:Javascript 查找实际登录操作Yii时遇到问题,javascript,php,login,yii,Javascript,Php,Login,Yii,我被抛出了一些代码,我正试图编辑登录功能,但我无法定位实际登录的位置。地址栏上的登录url表明它在site/index.php中,但当我检查该页面时,那里的代码完全不相关,因此我找到了指向_login.php的“login.php”页面作为视图 下面是login.php的代码: <?php require 'facebook.php'; // Create our Application instance (replace this with your appId and sec
<?php
require 'facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'secret',
'secret' => 'secret',
'cookie' => true,
));
$session = $facebook->getSession();
$me = null;
// Session based API call.
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
// login or logout url will be needed depending on current user state.
if ($me) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
// This call will always work since we are fetching public data.
$naitik = $facebook->api('/naitik');
?>
<?php
$this->pageTitle=Yii::app()->name . ' - Login';
$this->breadcrumbs=array(
'Login',
);
?>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $facebook->getAppId(); ?>',
session : <?php echo json_encode($session); ?>, // don't refetch the session when PHP already has it
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// whenever the user logs in, we refresh the page
FB.Event.subscribe('auth.login', function() {
window.location.reload();
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
<div style="float:left;"><?php echo $msg ?></div>
<div style="clear:both;"></div>
<div id="form_login" class="form">
<h1>Login</h1>
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
));
?>
<div class="row">
<?php //echo $form->labelEx($model,'username'); ?>
<?php //echo $form->textField($model,'username'); ?>
<?php //echo $form->error($model,'username'); ?>
<?php echo $form->labelEx($model,'first_name'); ?>
<?php echo $form->textField($model,'first_name'); ?>
<?php echo $form->error($model,'first_name'); ?>
<?php echo $form->labelEx($model,'last_name'); ?>
<?php echo $form->textField($model,'last_name'); ?>
<?php echo $form->error($model,'last_name'); ?>
<?php echo $form->labelEx($model,'password'); ?>
<?php echo $form->passwordField($model,'password'); ?>
<?php echo $form->error($model,'password'); ?>
</div>
<div class="row rememberMe">
<?php echo $form->checkBox($model,'rememberMe'); ?>
<?php echo $form->label($model,'rememberMe'); ?>
<?php echo $form->error($model,'rememberMe'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Login',array('id'=>'submit_button'));
?>
<a href="<?php echo Yii::app()->getBaseUrl(); ?>/index.php/persons/create">
<?php echo CHtml::button('Sign Up',array('id'=>'submit_button')); ?>
</a>
</div>
<?php $this->endWidget(); ?>
</div>
<!-- form -->
window.fbAsyninit=函数(){
FB.init({
appId:“”,
会话:,//当PHP已经有会话时,不要重新蚀刻该会话
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
//每当用户登录时,我们都会刷新页面
FB.Event.subscribe('auth.login',function()){
window.location.reload();
});
};
(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
}());
登录
然后我继续检查_login.php,这就是我发现的,我认为这就是实际登录发生的地方:
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'login-form'.$box,
'enableClientValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,
),
));
?>
<?php
if($model->hasErrors()){
//$nameErrMsg = $model->getError('first_name').'\n';
$nameErrMsg = $model->getError('email').'\n';
$unameErrMsg = $model->getError('username').'\n';
$passErrMsg = $model->getError('password');
//$err = $nameErrMsg.$unameErrMsg.$passErrMsg;
$err = $nameErrMsg.$passErrMsg;
?>
<script>alert("<?=$err?>");</script>
<?php } ?>
<?php //echo $form->textField($model,'first_name',
//array('id'=>'fname'.$box, 'class'=>'login_typebox','placeholder'=>'FIRST NAME','title'=>ucfirst(strtolower(strip_tags($form->error($model, 'first_name')))))); ?>
<?php echo $form->textField($model,'email',
array('id'=>'email'.$box, 'class'=>'login_typebox','placeholder'=>'EMAIL','title'=>ucfirst(strtolower(strip_tags($form->error($model, 'email')))))); ?>
<?php //echo $form->textField($model,'last_name',
//array('id'=>'lname'.$box, 'class'=>'login_typebox','placeholder'=>'LAST NAME','title'=>ucfirst(strtolower(strip_tags($form->error($model, 'last_name')))))); ?>
<?php echo $form->passwordField($model,'password',
array('id'=>'pword'.$box, 'class'=>'login_typebox','placeholder'=>'PASSWORD','title'=>ucfirst(strtolower(strip_tags($form->error($model, 'password')))))); ?>
<input type="hidden" name="box" value="<?php echo $box ?>">
<input type="submit" class="login_submitbtn" style="font-family: 'AsapRegular', Helvetica, sans-serif;color: #FFF;font-size: 14px;padding: 5px 0;border-radius: 5px;border: 1px solid #d0e7ef;background-color: #67b3cf;" name="LOG IN" value="LOG IN"/>
<?php $this->endWidget(); ?>
<div class="login_note_box">
<p><a target="_blank" href="<?php echo Yii::app()->createUrl('register')?>">Not yet a member?</a></p>
<p><a target="_blank" href="<?php echo Yii::app()->createUrl('user/forgot')?>">Forgot password?</a></p>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('input').placeholder();
$('#login-form<?php echo $box?> input.login_typebox').each(function(i,e){
$(this).keydown(function(){
$(this).removeClass('error').attr('title', '');
});
});
$('#login-form<?php echo $box?>').submit(function(){
var email = $("#email<?php echo $box?>").val();
// var fname = $("#fname<?php echo $box?>").val();
// var lname = $("#lname<?php echo $box?>").val();
var pword = $("#pword<?php echo $box?>").val();
//if(fname == '' && lname == "" && pword == "") {
if(email == "" && pword == "") {
alert('Please input your Email and Password');
//alert('Please input your First Name, Last Name, and Password');
$('#login-form<?php echo $box?> input.login_typebox').each(function(i,e){
//$(this).keydown(function(){
//$(this).addClass('error').attr('title', 'Please input your First Name, Last Name, and Password');
$(this).addClass('error').attr('title', 'Please input your Email and Password');
//})
});
return false;
}
var $data = $(this).serialize();
$.ajax({
url : $(this).attr('action'),
data : $data,
type : 'POST',
beforeSend : function(){
$("#login-form<?php echo $box?> .login_submitbtn").addClass("loading");
},
success : function($return){
try{
$arr = $.parseJSON($return);
if($arr.status == 'success'){
location = $arr.url;
}
}catch(e){
$('.loginform').html($return);
}
},
complete : function(){
//$(".login_submitbtn").removeClass("loading");
}
});
return false;
});
$('#login-form<?php echo $box?> input.error').each(function(i,e){
$(this).keydown(function(){
$(this).removeClass('error').attr('title','');
})
});
});
警报(“”);
模型文件夹中的LoginForm.php
与组件文件夹中的UserIdentity.php
一起使用,是登录过程的基础。这是Yii登录的基础,特定于facebook的登录如何与之结合是另一回事