Php 在nav成员页面中显示用户名
我试图找出如何提取用户会话的用户名 我希望你已经输入了所有必要的文件 (这不是我的代码) member.phpPhp 在nav成员页面中显示用户名,php,Php,我试图找出如何提取用户会话的用户名 我希望你已经输入了所有必要的文件 (这不是我的代码) member.php //if not logged in redirect to login page if(!$user->is_logged_in()){ header('Location: login.php'); } <nav> <?php echo [code] ?> </nav> <!-- Html code --> //如果未登录,则重
//if not logged in redirect to login page
if(!$user->is_logged_in()){ header('Location: login.php'); }
<nav>
<?php echo [code] ?>
</nav>
<!-- Html code -->
//如果未登录,则重定向到登录页面
如果(!$user->is_logged_in()){header('Location:login.php');}
config.php
<?php
ob_start();
session_start();
//set timezone
date_default_timezone_set('Europe/London');
//database credentials
define('DBHOST','localhost');
define('DBUSER','database username');
define('DBPASS','password');
define('DBNAME','database name');
//application address
define('DIR','http://domain.com/');
define('SITEEMAIL','noreply@domain.com');
try {
//create PDO connection
$db = new PDO("mysql:host=".DBHOST.";port=8889;dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
//show error
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
exit;
}
//include the user class, pass in the database connection
include('classes/user.php');
$user = new User($db);
?>
user.php
<?php
include('password.php');
class User extends Password{
private $_db;
function __construct($db){
parent::__construct();
$this->_db = $db;
}
private function get_user_hash($username){
try {
$stmt = $this->_db->prepare('SELECT password FROM members WHERE username = :username AND active="Yes" ');
$stmt->execute(array('username' => $username));
$row = $stmt->fetch();
return $row['password'];
} catch(PDOException $e) {
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
}
}
public function login($username,$password){
$hashed = $this->get_user_hash($username);
if($this->password_verify($password,$hashed) == 1){
$_SESSION['loggedin'] = true;
return true;
}
}
public function logout(){
session_destroy();
}
public function is_logged_in(){
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true){
return true;
}
}
}
?>
您可以在您的$\u会话['loggedin']=true之后添加此项user.php中的code>行
:$\u SESSION['username']=$username代码>如下所示:
<?php
public function login($username,$password){
$hashed = $this->get_user_hash($username);
if($this->password_verify($password,$hashed) == 1){
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
return true;
}
}
?>
需要查看密码类。然而,什么是SOEvar_dump($user)代码>显示?添加密码类我看不到任何方法可以访问或存储密码以外的任何用户详细信息。您需要编辑该类才能执行soTried但不起作用。像这样对吗?不,不是那样我会编辑代码。
<?php
public function login($username,$password){
$hashed = $this->get_user_hash($username);
if($this->password_verify($password,$hashed) == 1){
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
return true;
}
}
?>
<nav>
<?php echo $_SESSION['username']; ?>
</nav>