php - 回显多个用户详细信息值

标签 php mysql

我有一个非常简单的登录系统,一旦登录,它将根据用户各自“索引”文件的访问权限重定向该用户。

我想要做的是在用户登录基本索引文件后显示用户详细信息。现在,我只能显示“用户名”

我希望能够显示多个 session 回显,例如;

empid
firstname
lastname

等等等等...

这是我的数据库架构

Area
Company
date_activated
date_deactivated
email
empid
FirstName
FullName
groups
id
is_admin
is_deleted
LastName
last_login_ip
last_login_timestamp
manager
MobileNumber
password
record
status
username

我在哪里

这就是索引文件输出的全部内容

Username: SuperAdmin |  EMPID:  |  First Name:  |  Last Name:  |  

index.php

      <?php require_once('../admin/pinAPP.php'); $pinAPP = new pinAPP( 'newhire', false, false, true ); ?>
<?php if ( $pinAPP->can_access() ) { ?><!-- New hire -->
    <center>
        <div class="panel">
                    <div>

                            <b> Username:   <?=  $_SESSION['username']; ?>&nbsp;|&nbsp; 
                                EMPID:      <?=$_SESSION['empid']; ?>&nbsp;|&nbsp;
                                First Name: <?=$_SESSION['firstname']; ?>&nbsp;|&nbsp;
                                Last Name:  <?=$_SESSION['lastname']; ?>&nbsp;|&nbsp;
                            </b>
                        <br>
                        <br>
                            <p>Below you will find all the necessary information on needed for onboarding process.</p>                  
                        <br> 
                        <br>
                    </div>
<?php } else {} ?>

访问

<?php
    class Access {
        private static $auth = false;

        final public function __construct() {
            if ( ! $this->is_logged() )
                return false;

            $u = new User();
            $db = new DB();

            $db->query("UPDATE `". DBPREFIX ."users` SET `last_login_timestamp` = '". time() ."' WHERE `id`='". $u->info()->id ."'");
        }
    ///////////
        final public function is_logged( $require_admin_access = false ) {
            if ( ! isset($_SESSION[LOGINSESSION]) )
                return false;

            self::$auth = true;

            if ( $require_admin_access ) {
                $u = new User();
                if ( ! $u->is_admin() )
                    new Redirect(DEFAULT_RETURN_URL);
            }

            return self::$auth;
        }
    //////////
        final private function not_logged() {
            $url = new URL;
            if ( $url->this() != URL.'/' )
                new Redirect(URL);
        }

        final public function logout( $goto = false ) {
            if ( ! MULTI_LOGIN && MULTI_LOGIN_RESET_TIMER ) {
                $u = new User();
                $db = new DB();

                $db->query("UPDATE `". DBPREFIX ."users` SET `last_login_timestamp` = '". (time() - SESSION_LIFETIME) ."' WHERE `id`='". $u->info()->id ."'");
            }

            unset($_SESSION[LOGINSESSION]);

            $goto = ( $goto ) ? $goto : URL;
            new Redirect($goto);
        }

final public function login( $id, $url = false, $username,$empid,$firstname,$lastname ) {
            $_SESSION[LOGINSESSION] = $id;
            $_SESSION['username'] = $username;
            $_SESSION['empid'] = $empid;
            $_SESSION['firstname'] = $firstname;
            $_SESSION['lastname'] = $lastname;

            if ( $url )
                new Redirect(urldecode($url));
            else
                new Redirect(URL);
        }


//final public function login( $id, $url = false, $username ) {
 //       $_SESSION[LOGINSESSION] = $id;
 //       $_SESSION['username'] = $username;
//
 //       if ( $url )
  //          new Redirect(urldecode($url));
  //      else
  //          new Redirect(URL);
  //  }



        final public function require_login() {
            if ( ! self::is_logged(true) )
                self::not_logged();
        }
    }

模型/登录

<!-- model/login -->
<?php
$error = '&nbsp;';

if ( Access::is_logged(true) )
    new Redirect('../admin/?page=index');

if ( isset($_POST['username']) ) {
    $sql = new DB();
    $ip = $sql->secure($_SERVER['REMOTE_ADDR']);

    $user = $sql->secure($_POST['username']);
    $pass = md5($_POST['password']);

    $u = $sql->sqls("SELECT `id`,`username`, `fullname`, `status`, `is_admin`, `last_login_ip`, `last_login_timestamp` FROM `". DBPREFIX ."users` WHERE `username`='$user' AND `password`='$pass'");

    if ( ! $u )
        $error = 'The login information is wrong! Please try again...';

    elseif ( $u->status == 0 && $u->is_admin < 1 )
        $error = 'The account is not activated!';

    elseif ( $u->status == 2 && $u->is_admin < 1 )
        $error = 'The account is LOCKED!';

    elseif ( $u->status == 3 && $u->is_admin < 1 )
        $error = 'The account is Deactivated!';

    elseif ( ! MULTI_LOGIN && $u->last_login_ip != $ip && ($u->last_login_timestamp + SESSION_LIFETIME) > time() )
        $error = str_replace('{%IP%}', $u->last_login_ip, MULTI_LOGIN_MESSAGE);

    else {
$u = $sql->sqls("SELECT `id`,`username`,`empid`,`firstname`,`lastname` `fullname`, `status`, `is_admin`, `last_login_ip`, `last_login_timestamp` FROM `". DBPREFIX ."users` WHERE `username`='$user' AND `password`='$pass'");
$sql->query("UPDATE `". DBPREFIX ."users` SET `last_login_ip` = '". $ip ."', `last_login_timestamp` = '". time() ."' WHERE `username`='$user'");
Access::login(md5($u->username), $_REQUEST['return_url'], $_POST['username'], $_POST['empid'],$_POST['firstname'],$_POST['lastname']);

//$sql->query("UPDATE `". DBPREFIX ."users` SET `last_login_ip` = '". $ip ."', `last_login_timestamp` = '". time() ."' WHERE `username`='$user'");
//Access::login(md5($u->username), $_REQUEST['return_url'], $_POST['username']);

//$userRow = $sql->sqls("SELECT * FROM `". DBPREFIX ."users` WHERE `username`='$user'");
//Access::login(md5($u->username), $_REQUEST['return_url'],$userRow);
    }
}

$this->add_option('error', $error);

我在哪里

我的index.php文件

    <?php include('header.php'); ?>

 <?php require_once('../admin/pinAPP.php'); $pinAPP = new pinAPP( 'newhire', false, false, true ); ?>
<?php if ( $pinAPP->can_access() ) { ?><!-- New hire -->
    <center>
        <div class="panel">
                    <div>

                            <b>Welcome {<?= $_SESSION['username']; ?>}{<?= $_SESSION['firstname']; ?>},<?= $_SESSION['lastname']; ?></b>
                        <br>
                        <br>
                            <p>Below you will find all the necessary information on needed for onboarding process.</p>                  
                        <br> 
                        <br>
                    </div>
<?php } else {} ?>

<!-- -->

<?php include('footer.php'); ?>

我的访问类别

<?php
    class Access {
        private static $auth = false;

        final public function __construct() {
            if ( ! $this->is_logged() )
                return false;

            $u = new User();
            $db = new DB();

            $db->query("UPDATE `". DBPREFIX ."users` SET `last_login_timestamp` = '". time() ."' WHERE `id`='". $u->info()->id ."'");
        }
    ///////////
        final public function is_logged( $require_admin_access = false ) {
            if ( ! isset($_SESSION[LOGINSESSION]) )
                return false;

            self::$auth = true;

            if ( $require_admin_access ) {
                $u = new User();
                if ( ! $u->is_admin() )
                    new Redirect(DEFAULT_RETURN_URL);
            }

            return self::$auth;
        }
    //////////
        final private function not_logged() {
            $url = new URL;
            if ( $url->this() != URL.'/' )
                new Redirect(URL);
        }

        final public function logout( $goto = false ) {
            if ( ! MULTI_LOGIN && MULTI_LOGIN_RESET_TIMER ) {
                $u = new User();
                $db = new DB();

                $db->query("UPDATE `". DBPREFIX ."users` SET `last_login_timestamp` = '". (time() - SESSION_LIFETIME) ."' WHERE `id`='". $u->info()->id ."'");
            }

            unset($_SESSION[LOGINSESSION]);

            $goto = ( $goto ) ? $goto : URL;
            new Redirect($goto);
        }

final public function login( $id, $url = false, $username ) {
        $_SESSION[LOGINSESSION] = $id;
        $_SESSION['username'] = $username;

        if ( $url )
            new Redirect(urldecode($url));
        else
            new Redirect(URL);
    }

        final public function require_login() {
            if ( ! self::is_logged(true) )
                self::not_logged();
        }
    }

我的登录文件,用于获取用户详细信息。

<!-- model/login -->
<?php
$error = '&nbsp;';

if ( Access::is_logged(true) )
    new Redirect('../admin/?page=index');

if ( isset($_POST['username']) ) {
    $sql = new DB();
    $ip = $sql->secure($_SERVER['REMOTE_ADDR']);

    $user = $sql->secure($_POST['username']);
    $pass = md5($_POST['password']);

    $u = $sql->sqls("SELECT `id`,`username`, `fullname`, `status`, `is_admin`, `last_login_ip`, `last_login_timestamp` FROM `". DBPREFIX ."users` WHERE `username`='$user' AND `password`='$pass'");

    if ( ! $u )
        $error = 'The login information is wrong! Please try again...';

    elseif ( $u->status == 0 && $u->is_admin < 1 )
        $error = 'The account is not activated!';

    elseif ( $u->status == 2 && $u->is_admin < 1 )
        $error = 'The account is LOCKED!';

    elseif ( $u->status == 3 && $u->is_admin < 1 )
        $error = 'The account is Deactivated!';

    elseif ( ! MULTI_LOGIN && $u->last_login_ip != $ip && ($u->last_login_timestamp + SESSION_LIFETIME) > time() )
        $error = str_replace('{%IP%}', $u->last_login_ip, MULTI_LOGIN_MESSAGE);

    else {
$sql->query("UPDATE `". DBPREFIX ."users` SET `last_login_ip` = '". $ip ."', `last_login_timestamp` = '". time() ."' WHERE `username`='$user'");
Access::login(md5($u->username), $_REQUEST['return_url'], $_POST['username'], $_POST['fullname']);


    }
}

$this->add_option('error', $error);

感谢您抽出宝贵的时间,并感谢您提供的任何帮助。

-李维

最佳答案

这方面的第一个变化。 我的登录文件获取用户详细信息。

更改我给出的行

<!-- model/login -->

$u = $sql->sqls("SELECT `id`,`username`,`empid`,`firstname`,`lastname` `fullname`, `status`, `is_admin`, `last_login_ip`, `last_login_timestamp` FROM `". DBPREFIX ."users` WHERE `username`='$user' AND `password`='$pass'");

else {
$sql->query("UPDATE `". DBPREFIX ."users` SET `last_login_ip` = '". $ip ."', `last_login_timestamp` = '". time() ."' WHERE `username`='$user'");
Access::login(md5($u->username), $_REQUEST['return_url'], $_POST['username'],$u->empid,$u->firstname,$u->lastname);

    }

我的访问类别

  final public function login( $id, $url = false, $username,$empid,$firstname,$lastname ) {
            $_SESSION[LOGINSESSION] = $id;
            $_SESSION['username'] = $username;
            $_SESSION['empid'] = $empid;
            $_SESSION['firstname'] = $firstname;
            $_SESSION['lastname'] = $lastname;

            if ( $url )
                new Redirect(urldecode($url));
            else
                new Redirect(URL);
        }

现在你可以回应这个

 $_SESSION['username'] 
 $_SESSION['empid'] 
 $_SESSION['firstname'] 
 $_SESSION['lastname'] 

请确保无论何时调用登录方法,此参数都应该存在。

关于php - 回显多个用户详细信息值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33730118/

相关文章:

php - 替换 http 和 https..?

javascript - Codeigniter - 如何将 JSON 传递到 Assets 文件夹中的 JS 文件?

php - 如果我不想做 Composer 更新,我只想使用 composer.json 和 composer.lock 中的内容怎么办

php - 与 mysql 和 php 比较的问题

javascript - 通过用户检查元素禁止更改 JS 函数中的值

php - 获取图像大小() : Filename cannot be empty

php - 如何在没有 exec 的情况下获取 CPU 使用率和 RAM 使用率?

sql - Left Join、Order by、MySQL优化

java - 使用 hibernate 与 spring data jpa 和 mysql 组合主键

php - 与 XPath 等效的 Mysql like 子句