国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

thinkajax返回頁面session信息(PHP)

php中文網(wǎng)
發(fā)布: 2016-07-06 13:52:29
原創(chuàng)
1073人瀏覽過

1.在嘗試仿寫一個登錄程序。這個登錄表單在首頁,要求登錄成功后在首頁使用ajax無刷新返回用戶名信息(保存的session值)以及自動隱藏表單。現(xiàn)在通過js的確能返回用戶信息,但是只要刷新,用戶信息和表單就會恢復原狀了,怎么可以維持長久直到用戶點擊注銷或session消失后?
2.我通過f12的xhr模式能看到返回的用戶信息,通過jquery的append方法和remove()也確實可以實現(xiàn),不過問題是刷新后信息不存在和表單恢復原狀。
2.關鍵代碼:
(1)indexcontroller.class.php:

public function checkUser(){
    //接收值
    $userName=$_POST['username'];
    $userPass=$_POST['userpass'];
    //空值檢測->function
    if(!trim($userName)){
      return show(0,'用戶名不能為空');
    }
    if(!trim($userPass)){
      return show(0,'密碼不能為空');
    }
    //對用戶密碼真實性進行檢驗->Model
    $res=D("Stuser")->getUser($userName);
    if(!$res['username']){
      return show(0,'用戶名不存在');
    }
    //密碼處理->function
    if($res['userpass']!=getMd5Pass($userPass)){
      return show(0,'密碼不正確');
    }
    //echo $res['username'];
    //$_SESSION('username',$res);  //設置session
    $_SESSION['username']=$res;
    //dump($username) ;
    //var_dump($username);
    return show(1,'登錄成功',$this->getSessionNames());
  }
  //判斷session情況->index
  public function getSessionNames(){
    if($_SESSION['username']['username']){
      $username = $_SESSION['username']['username'];
      //$a=$this->ajaxReturn($username);
      //$this->assign('username',$username);
      return $username;
    }
  }請輸入代碼
登錄后復制
登錄后復制

(2)function.php

立即學習PHP免費學習筆記(深入)”;

function show($status,$message,$data=array()){
    $result=array(
      'status' => $status,
      'message' => $message,
      'data' => $data,
    );
    //JSON編碼數(shù)據(jù)
    exit(json_encode($result));
  }請輸入代碼
登錄后復制
登錄后復制

(3)login.js

var login = {
  checkUser : function() {
      //獲取登錄頁面中的用戶名、密碼
      var userName=$('input[name="username"]').val();
      var userPass=$('input[name="userpass"]').val();

      if(!userName) {
        dialog.error("用戶名不能為空");
      }

      if(!userPass) {
        dialog.error("密碼不能為空");
      }

      var url="/stfjzd-12/index.php/Home/Index/checkUser";
      var data={'username':userName,'userpass':userPass};
      //執(zhí)行異步請求
      $.post(url,data,function(result){
        if(result.status==0) {
            return dialog.error(result.message);
        }
        if(result.status==1) {
        if(data!=""){
            //alert(data.username);
            $('#index_form2').remove();
            $('#test').append(data.username);
        }
            return dialog.success(result.message,"/stfjzd-12/index.php/Home/Index/checkUser");
        //alert(result.data['username']) ;
        }
      },'JSON');

  }
}請輸入代碼
登錄后復制
登錄后復制

回復內(nèi)容:

1.在嘗試仿寫一個登錄程序。這個登錄表單在首頁,要求登錄成功后在首頁使用ajax無刷新返回用戶名信息(保存的session值)以及自動隱藏表單?,F(xiàn)在通過js的確能返回用戶信息,但是只要刷新,用戶信息和表單就會恢復原狀了,怎么可以維持長久直到用戶點擊注銷或session消失后?
2.我通過f12的xhr模式能看到返回的用戶信息,通過jquery的append方法和remove()也確實可以實現(xiàn),不過問題是刷新后信息不存在和表單恢復原狀。
2.關鍵代碼:
(1)indexcontroller.class.php:

public function checkUser(){
    //接收值
    $userName=$_POST['username'];
    $userPass=$_POST['userpass'];
    //空值檢測->function
    if(!trim($userName)){
      return show(0,'用戶名不能為空');
    }
    if(!trim($userPass)){
      return show(0,'密碼不能為空');
    }
    //對用戶密碼真實性進行檢驗->Model
    $res=D("Stuser")->getUser($userName);
    if(!$res['username']){
      return show(0,'用戶名不存在');
    }
    //密碼處理->function
    if($res['userpass']!=getMd5Pass($userPass)){
      return show(0,'密碼不正確');
    }
    //echo $res['username'];
    //$_SESSION('username',$res);  //設置session
    $_SESSION['username']=$res;
    //dump($username) ;
    //var_dump($username);
    return show(1,'登錄成功',$this->getSessionNames());
  }
  //判斷session情況->index
  public function getSessionNames(){
    if($_SESSION['username']['username']){
      $username = $_SESSION['username']['username'];
      //$a=$this->ajaxReturn($username);
      //$this->assign('username',$username);
      return $username;
    }
  }請輸入代碼
登錄后復制
登錄后復制

(2)function.php

立即學習PHP免費學習筆記(深入)”;

function show($status,$message,$data=array()){
    $result=array(
      'status' => $status,
      'message' => $message,
      'data' => $data,
    );
    //JSON編碼數(shù)據(jù)
    exit(json_encode($result));
  }請輸入代碼
登錄后復制
登錄后復制

(3)login.js

var login = {
  checkUser : function() {
      //獲取登錄頁面中的用戶名、密碼
      var userName=$('input[name="username"]').val();
      var userPass=$('input[name="userpass"]').val();

      if(!userName) {
        dialog.error("用戶名不能為空");
      }

      if(!userPass) {
        dialog.error("密碼不能為空");
      }

      var url="/stfjzd-12/index.php/Home/Index/checkUser";
      var data={'username':userName,'userpass':userPass};
      //執(zhí)行異步請求
      $.post(url,data,function(result){
        if(result.status==0) {
            return dialog.error(result.message);
        }
        if(result.status==1) {
        if(data!=""){
            //alert(data.username);
            $('#index_form2').remove();
            $('#test').append(data.username);
        }
            return dialog.success(result.message,"/stfjzd-12/index.php/Home/Index/checkUser");
        //alert(result.data['username']) ;
        }
      },'JSON');

  }
}請輸入代碼
登錄后復制
登錄后復制

如果你用tp寫的在模板中用{$Think.session.username}這個賦值,通過js賦值刷新肯定沒有了

頁面搞個隱藏域放信息就好啦,session信息在頁面上只有你登錄成功以后會去請求,頁面刷新是不會觸發(fā)請求的

public function index(){ //你顯示頁面的函數(shù)
    $user=$this->getSessionNames();
    $this->assing('user',$user);
    ...
}
登錄后復制
//index.html
<script>
    $(function(){
        var username="{{$user}}";
        if(username != ""){
            $('#index_form2').remove();
            $('#test').append(username);
        }
    })
    
</script>
登錄后復制
 //login.js
登錄后復制

樓主這個問題,好像也不是很難嘛!把你存放用戶信息的表單弄成動態(tài)的就可以了吧,具體如下:

//這個是php的處理代碼塊
if($this->chen_user()) {   //這個是驗證是否登陸成功
    $_SESSION['username'] = $username;  //這里把用戶信息存入session
    $_SESSION['sex] = $sex;
}

//這個是前端顯示的
<?php 
if($_SESSION['username']) { ?>  如果session中有username的值就輸出用戶信息 沒有就不輸出
    <td>姓名</td><td><?php echo $_SESSION['username'];?></td>

<?php } ?>
登錄后復制

你看看是不是這樣?

PHP速學教程(入門到精通)
PHP速學教程(入門到精通)

PHP怎么學習?PHP怎么入門?PHP在哪學?PHP怎么學才快?不用擔心,這里為大家提供了PHP速學教程(入門到精通),有需要的小伙伴保存下載就能學習啦!

下載
相關標簽:
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號