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

Table des matières
回復內容:
Maison développement back-end tutoriel php thinkajax返回頁面session信息(PHP)

thinkajax返回頁面session信息(PHP)

Jul 06, 2016 pm 01:52 PM
php thinkphp

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

<code>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;
    }
  }請輸入代碼</code>

(2)function.php

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

(3)login.js

<code>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');

  }
}請輸入代碼</code>

回復內容:

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

<code>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;
    }
  }請輸入代碼</code>

(2)function.php

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

(3)login.js

<code>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');

  }
}請輸入代碼</code>

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

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

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

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

<code>//這個是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 } ?></code>

你看看是不是這樣?

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment accéder à un caractère dans une cha?ne par index en php Comment accéder à un caractère dans une cha?ne par index en php Jul 12, 2025 am 03:15 AM

En PHP, vous pouvez utiliser des crochets ou des accolades bouclées pour obtenir des caractères d'index spécifiques à la cha?ne, mais les crochets sont recommandés; L'index commence à partir de 0 et l'accès à l'extérieur de la plage renvoie une valeur nulle et ne peut pas se voir attribuer une valeur; MB_substr est nécessaire pour gérer les caractères multi-octets. Par exemple: $ str = "Hello"; echo $ str [0]; sortie h; et les caractères chinois tels que MB_substr ($ str, 1,1) doivent obtenir le résultat correct; Dans les applications réelles, la longueur de la cha?ne doit être vérifiée avant le boucle, les cha?nes dynamiques doivent être vérifiées pour la validité et les projets multilingues recommandent d'utiliser des fonctions de sécurité multi-octets uniformément.

Comment les générateurs fonctionnent-ils en PHP? Comment les générateurs fonctionnent-ils en PHP? Jul 11, 2025 am 03:12 AM

AgeneratorInphpisamemory-EfficientwaytoterateOrgedatasetsByyieldingValuesonEatatimeIntedofreturningThemallAtonce.1.GeneratorsUsEtheieldKeywordToproduceValuesondemand, ReducingMemoryUsage.2.TheyAreusefulForHandlingBigloops, ReadingLargeFiles, OR OR.

Comment empêcher le détournement de session en PHP? Comment empêcher le détournement de session en PHP? Jul 11, 2025 am 03:15 AM

Pour éviter le détournement de session en PHP, les mesures suivantes doivent être prises: 1. Utilisez HTTPS pour crypter la transmission et définir session.cookie_secure = 1 dans php.ini; 2. Définissez les attributs de cookie de sécurité, y compris Httponly, Secure et Samesite; 3. Appelez Session_Regenerate_id (true) lorsque l'utilisateur se connecte ou les autorisations changent pour changer pour changer le sessionID; 4. Limitez le cycle de vie de la session, configurez raisonnablement GC_MaxlifeTime et enregistrez le temps d'activité de l'utilisateur; 5. Interdire exposer le sessionId à l'URL et définir ses session.USE_ONLY

Php obtient les n premier caractères d'une cha?ne Php obtient les n premier caractères d'une cha?ne Jul 11, 2025 am 03:17 AM

Vous pouvez utiliser substr () ou mb_substr () pour obtenir les n caractères des premiers en php. Les étapes spécifiques sont les suivantes: 1. Utilisez le substr ($ string, 0, n) pour intercepter les n caractères des premiers, ce qui convient aux caractères ASCII et est simple et efficace; 2. Lors du traitement des caractères multi-octets (tels que chinois), MB_substr ($ string, 0, n, 'utf-8') et assurez-vous que l'extension mbString est activée; 3. Si la cha?ne contient des caractères HTML ou Whitespace, vous devez d'abord utiliser strip_tags () pour supprimer les balises et couper () pour nettoyer les espaces, puis les intercepter pour s'assurer que les résultats sont propres.

Php obtient les N plus récents caractères d'une cha?ne Php obtient les N plus récents caractères d'une cha?ne Jul 11, 2025 am 03:17 AM

Il existe deux fa?ons principales d'obtenir les n caractères des derniers derniers d'une cha?ne en php: 1. Utilisez la fonction substr () pour intercepter la position de départ négative, qui convient aux caractères à un octet; 2. Utilisez la fonction MB_substr () pour prendre en charge le codage multilingue et UTF-8 pour éviter de tronquer les caractères non anglais; 3. Déterminer éventuellement si la longueur de la cha?ne est suffisante pour gérer les situations de limite; 4. Il n'est pas recommandé d'utiliser la méthode combinée Strrev () substr () car il n'est pas s?r et inefficace pour les caractères multi-octets.

Comment encoder URL une cha?ne en php avec Urlencode Comment encoder URL une cha?ne en php avec Urlencode Jul 11, 2025 am 03:22 AM

La fonction URLencode () est utilisée pour coder les cha?nes dans des formats de sécurité URL, où les caractères non alphanumériques (sauf -, _ et.) Sont remplacés par un pourcentage de signe suivi d'un numéro hexadécimal à deux chiffres. Par exemple, les espaces sont convertis en panneaux, les marques d'exclamation sont converties en!, Et les caractères chinois sont convertis en leur forme de codage UTF-8. Lors de l'utilisation, seules les valeurs des paramètres doivent être codées, et non l'URL entière, pour éviter d'endommager la structure de l'URL. Pour d'autres parties de l'URL, telles que les segments de chemin, la fonction Rawurlencode () doit être utilisée, qui convertit l'espace vers. Lors du traitement des paramètres du tableau, vous pouvez utiliser http_build_query () pour coder automatiquement ou appeler manuellement urlencode () sur chaque valeur pour assurer le transfert s?r des données. juste

Comment définir et obtenir des variables de session en PHP? Comment définir et obtenir des variables de session en PHP? Jul 12, 2025 am 03:10 AM

Pour définir et obtenir des variables de session en PHP, vous devez d'abord appeler toujours session_start () en haut du script pour démarrer la session. 1. Lorsque vous définissez des variables de session, utilisez $ _Session un tableau hyperglobal pour attribuer des valeurs à des clés spécifiques, telles que $ _Session ['username'] = 'John_doe'; Il peut stocker des cha?nes, des nombres, des tableaux et même des objets, mais éviter de stocker trop de données pour éviter d'affecter les performances. 2. Lors de l'obtention de variables de session, vous devez d'abord appeler session_start (), puis accéder au tableau $ _Session via la clé, tel que echo $ _Session ['username']; il est recommandé d'utiliser isset () pour vérifier si la variable existe pour éviter les erreurs

Comment empêcher l'injection SQL en PHP Comment empêcher l'injection SQL en PHP Jul 12, 2025 am 03:02 AM

Les méthodes clés pour empêcher l'injection SQL dans PHP comprennent: 1. Utilisez des instructions de prétraitement (telles que PDO ou MySQLI) pour séparer le code SQL et les données; 2. éteignez le mode de prétraitement simulé pour assurer le véritable prétraitement; 3. Filtrez et vérifiez l'entrée utilisateur, telles que l'utilisation d'Is_Numeric () et Filter_Var (); 4. évitez d'épisser directement les cha?nes SQL et utiliser la liaison des paramètres à la place; 5. éteindre l'affichage des erreurs dans l'environnement de production et enregistrer les journaux d'erreur. Ces mesures empêchent de manière globale le risque d'injection SQL des mécanismes et des détails.

See all articles