У меня есть довольно простая система входа, которая после регистрации будет перенаправлена на этот пользователь с разрешения доступа к их соответствующему файлу «index».Echo несколько значений пользовательских данных
Что я хотел бы сделать, это отобразить детали пользователя после того, как они вошли в основной файл индекса. Прямо сейчас, я могу показать только «имя пользователя»
Я хотел бы иметь возможность отображать несколько эхо-сигналов сеанса, например;
empid
firstname
lastname
так далее и так далее ...
Вот мой DB Schema
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']; ?> |
EMPID: <?=$_SESSION['empid']; ?> |
First Name: <?=$_SESSION['firstname']; ?> |
Last Name: <?=$_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
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 = ' ';
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 = ' ';
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);
Благодарим за ваше время и оцените любую помощь.
-Levi
Его единственное показное имя пользователя. Я обновлю свой OP, чтобы показать, какие изменения у меня есть сейчас. @web – Kray
OP обновлен с предложенными вами изменениями. К несчастью, его единственная информация о пользователе. – Kray
что его показывать сейчас? Любая ошибка? – Santosh