猿问

如何从数组索引创建 $_SESSION?

我正在做一个登录系统,我想在验证用户时显示一条欢迎消息。我解释。

这是数据库:

登录时的用户使用用户名,但我希望在欢迎消息中显示它的名字。


我拥有的是一个选择正在登录的用户名的所有信息的功能。


登录管理器.php


public function obtenirDades($usuari)

    {


        //Obtenim les dades de la base de dades

        $sql = " SELECT * FROM erp_user WHERE username = '$usuari'";



        $cons = (BdD::$connection)->prepare($sql);

        $ok = $cons->execute();

        $cons->setFetchMode(PDO::FETCH_ASSOC);

        $resultat = $cons->fetchAll();


        /*var_dump($resultat);

        die();*/


        return $resultat;


    }

然后在 LoginController.php 中获取 $_POST 信息,调用该函数以显示数据库信息,并使用 LDAP 验证用户。


登录控制器.php


<?php

if (!isset($_SESSION))

{

    session_start();

}


class LoginController extends Controller

{


    public function process($params)

    {

        //EN EL LOGIN VALIDEM L'USUARI I CONTRASENYA

        if (isset($_POST["login"])) {

            /*HERE WE INSTANTIATE LOGINMANAGER SO WE CAN USE IT'S FUNCTIONS*/

            $manager = new LoginManager();



            /*WE OBTAIN THE POST DATA*/

            $usuari = $_POST["usuari"];

            $password = $_POST["password"];



            //HERE WE USE THE FUNCTION TO OBTAIN INFORMATION FROM THE DATABASE

            $dds = $manager->obtenirDades($usuari); `WE`

            @$this->data["erp_users"] = $dds[0]["firstname"];



            if($manager->valida($usuari, $password)){


                //validació de ldap i redirecció si es professor o alumne

                if ($manager->valida($usuari, $password) && $dds[0]["type"] == "PROFESSORS") {



                    $_SESSION["username"] = $usuari;

                    var_dump($dds);

                    die();


                    header("Location: professor");



当我做一个 var_dumb($dds) 我得到:

http://img1.mukewang.com/62a3ff34000193ae04500267.jpg

杨魅力
浏览 158回答 2
2回答

PIPIONE

您的会话数据包含用户名。您需要使用名字创建会话。函数 obtenirDades() 返回多行,因为您使用的是 fetchAll() 方法。由于它是一个登录函数,因此请使用 fetch() 方法,该方法返回单个键/值数组。然后存储在会话中,您将执行以下操作&nbsp;$_SESSION["firstname"]&nbsp;=&nbsp;$dds['firstname'];

森栏

我找到了一个解决方案:添加一个变量来存储所有数据:$var = @$this->data["erp_users"] = $dds[0]["firstname"];然后在会话中:$_SESSION["username"] = $var;
随时随地看视频慕课网APP
我要回答