Maison  >  Article  >  développement back-end  >  Obtention d'une session de connexion PHP

Obtention d'une session de connexion PHP

不言
不言original
2018-04-28 15:45:454457parcourir

Cet article présente principalement l'acquisition d'une session de connexion PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Obtention d'une session de connexion PHP<.>

Enregistrez la session lors de la connexion

	
	/**
	 *	执行登录
	 */
	public function doLogin(){
		$condition[&#39;name&#39;] = $username = trim($_POST[&#39;username&#39;]);
		$condition[&#39;password&#39;] = $password = md5(trim($_POST[&#39;password&#39;]));
		//稍后在加验证码验证逻辑
		//$imgCode = $_POST[&#39;imgCode&#39;];
		if (empty($username) || empty($password)) {
			$this->ajaxReturn(null,C("ERR_MSG_70"),"success:false");
		}
		$user = D("User")->relation(true)->where($condition)->find();
		if(empty($user)){
			$this->ajaxReturn(null,"用户名或者密码错误","success:false");
		}
		if(empty($user[&#39;apps&#39;]) && $user[&#39;role&#39;] != UserModel::ADMIN){
			$this->ajaxReturn(null,&#39;该用户不属于任何一条产品线,不允许登录,请联系管理员!&#39;,&#39;success:false&#39;);
		}
		if (empty($user)) {
			$this->ajaxReturn(null,C("ERR_MSG_70"),"success:false");
		}
		$defaultAppId = $user[&#39;defaultApp&#39;] >= 0 ? $user[&#39;defaultApp&#39;] :  $user[&#39;apps&#39;][0][&#39;id&#39;];
		
		foreach ($user[&#39;apps&#39;] as $app){
			if ($app[&#39;id&#39;] == $defaultAppId){
				$appName = $app[&#39;appName&#39;];
				break;
			}
		}
		$session = array(&#39;uid&#39;=>$user[&#39;id&#39;],&#39;username&#39;=>$username,&#39;role&#39;=> $user[&#39;role&#39;],&#39;appId&#39; => $defaultAppId,&#39;appName&#39;=>$appName);
		setSession($session);
		$this->ajaxReturn($data,"恭喜,登录成功!","success:true");

	}
Lors de l'utilisation d'une page spécifique, obtenez la session dans l'action

 public function deploy()
    {
        $username = session(&#39;username&#39;);
        $conditions = explode(",", $_POST[&#39;environment&#39;]);
        $envarr = array();
        foreach ($conditions as $condition) {
            $envIds = D(&#39;Env&#39;)->field(&#39;name,IP&#39;)
                ->where("name like&#39;" . $condition . "%&#39;")
                ->select();
            
            foreach ($envIds as $key => $envId) {
                $envIds[$key][&#39;mem&#39;] = $this->getCPUMEM($envId[&#39;IP&#39;]);
            }
            
            $envIdsSort = $this->my_sort($envIds, &#39;mem&#39;, SORT_ASC, SORT_STRING);
            // $envIds=array_remove($envIds,&#39;mem&#39;);
            $envarray[&#39;env&#39;] = $condition;
            $envarray[&#39;smallIP&#39;] = $envIdsSort[0][&#39;IP&#39;];
            $envarr[] = $envarray;
        }
        $_POST[&#39;environment&#39;] = json_encode($envarr);
        $_POST[&#39;username&#39;]=$username;
        
        $resultnew = $this->request("localhost:8080/execute/isbuildingNew.html", $_POST, "POST");
        // var_dump($resulenew);
        if ($resultnew == "building:true") {
            $this->ajaxReturn(1, &#39;前一次构建正在进行中,请稍候重试!&#39;, &#39;success:false&#39;);
        } else {
            $result = $this->request("localhost:8080/execute/onlineDeployNew.html", $_POST, "POST");
            if ($result) {
                $this->ajaxReturn(1, $result, &#39;success:true&#39;);
            } else {
                $this->ajaxReturn(0, "提交构建失败", &#39;success:false&#39;);
            }
        }
    }
Ensuite, le backend peut obtenir le nom d'utilisateur, donc facile!

Recommandations associées :

Connexion PHP pour implémenter la fonction Se souvenir de moi

Recommandations de sujets connexes : session php (Y compris des images, des textes, des vidéos et des cas)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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