如果他已经登录,我如何让我的标题说出用户名(PHP)

时间:2014-05-09 16:06:34

标签: php html session

我在网上搜索得很远,但是找不到解决办法。我尝试了很多不同的东西,但没有任何作用。我的标题始终显示Login而不是Welcome“User”和一个注销按钮。这是我的代码,在我看来应该没有理由说它不起作用但我确定我做了一点语法错误或者说我真的很远

<?php

require_once('WebsiteUser.php');
session_start();
session_regenerate_id(false);
?>
<!DOCTYPE html> 
<html>
<header class="clearfix">
            <a href="index.php"><img src="images/blaktop.jpg" alt="blaktop logo" title="blaktop"/></a>
            <div id="signin">
                <?php
if(isset($_SESSION['WebsiteUser']))
{
      echo("Welcome " . $_SESSION['username']);// displays username
  echo("<a href='logout.php'>Logout</a> ");
}
else
{
  echo("<a href='userlogin.php'>Login</a> ");
}
?>
            </div>
        </header>
 </html>

WebsiteUser.php是我的连接类型文件,这是它的源代码

<?php

class WebsiteUser{
/* Host address for the database */
protected static $DB_HOST = "127.0.0.1";
/* Database username */
protected static $DB_USERNAME = "admin";
/* Database password */
protected static $DB_PASSWORD = "password";
/* Name of database */ 
protected static $DB_DATABASE = "btc";

private $username;
private $password;
private $name;
private $mysqli;
private $dbError;
private $authenticated = false;

function __construct() {
    $this->mysqli = new mysqli(self::$DB_HOST, self::$DB_USERNAME, 
            self::$DB_PASSWORD, self::$DB_DATABASE);
    if($this->mysqli->errno){
        $this->dbError = true;
    }else{
        $this->dbError = false;
    }
}
public function authenticate($username, $password){
    $loginQuery = "SELECT * FROM customer WHERE email = ? AND passwrd = ? ";
    $stmt = $this->mysqli->prepare($loginQuery);
    $stmt->bind_param('ss', $username, $password);
    $stmt->execute();
    $result = $stmt->get_result();
    if($result->num_rows == 1){
        $this->username = $username;
        $this->password = $password;
        $this->authenticated = true;
    }
    $stmt->free_result();
}
public function isAuthenticated(){
    return $this->authenticated;
}
public function hasDbError(){
    return $this->dbError;
}
public function getUsername(){
    return $this->username;
}
}
?>

并且有人登录时的代码

if(isset($_POST['submit'])){
    if(isset($_POST['username']) && isset($_POST['password'])){
        if($_POST['username'] == "" || $_POST['password'] == ""){
            $missingFields = true;
        } else {
            //All fields set, fields have a value
            $websiteUser = new WebsiteUser();
            if(!$websiteUser->hasDbError()){
                $username = $_POST['username'];
                $password = $_POST['password'];
                $websiteUser->authenticate($username, $password);
                if($websiteUser->isAuthenticated()){
                    $_SESSION['websiteUser'] = $websiteUser;
                    header('Location:index.php');
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:-2)

<? 
$user = $_GET['user']; 
session_start(); 
$_SESSION['user'] = $user; 

if(isset($_SESSION['user'])){ 
} else { 
echo " 
<script language='javascript'> 
alert('Sorry, but you must login to view the members area!') 
</script> 
<script> 
window.location='http://example.com/login.html' 
</script> 
"; } 
?>




<? echo "Welcome, $user"; ?>