Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找实际登录操作Yii时遇到问题_Javascript_Php_Login_Yii - Fatal编程技术网

Javascript 查找实际登录操作Yii时遇到问题

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

我被抛出了一些代码,我正试图编辑登录功能,但我无法定位实际登录的位置。地址栏上的登录url表明它在site/index.php中,但当我检查该页面时,那里的代码完全不相关,因此我找到了指向_login.php的“login.php”页面作为视图

下面是login.php的代码:

 <?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的登录如何与之结合是另一回事