登录会话PHP后输出用户名和用户类型

时间:2012-07-21 10:28:36

标签: php mysql

好的我坚持这个。我尝试了isset函数但没有任何反应......

登录后,用户将被重定向到特定页面。

如果主持人是她的user_type,那么她将被重定向到moderator.php页面 如果agent是她的user_type,她将被重定向到agent.php

我在这里是index.php,其中包含登录表单

<form action="index.php" method=get>
    <?php
    session_start();
    if ($_SESSION["logging"] && $_SESSION["logged"]) {
        printme();
    }
    else {
        if (!$_SESSION["logging"]) {
            $_SESSION["logging"] = true;
            loginform();
        }
        else if ($_SESSION["logging"]) {
            $number_of_rows = checkpass();
            if ($number_of_rows == 1) {
                $_SESSION[user]   = $_GET[userlogin];
                $_SESSION[logged] = true;
                echo "<h1>You have logged in successfully</h1><br/>";
                echo "<a href='logout.php'>Logout</a> | <a href='users.php'>Click to proceed</a>";
            }
            else {
                loginform();
            }
        }
    }

    function loginform() {
        print ("<center><div id='login_header'><b><font face='Arial Black' color='black' size='4px'>Sign in to Minquep!</font></b></div></cen                   ter>");
        print("<br/><br/>");
        print ("<center><label>Username:</label><input type='text' name='userlogin' size='20'><br/><label>Password:</label><input type='                password' name='password' size='20'></center>");
        print "<br/><input type='submit' value='Submit' name='submit' class='submit'>";
    }

    function checkpass() {
        $dbHost = 'localhost';
        $dbUser = 'root';
        $dbPass = '';
        $dbname = 'minquep_test';
        $conn   = mysql_connect($dbHost, $dbUser, $dbPass); // Connection Code        mysql_select_db($dbname, $conn); // Connects to database      
        $sql    = "select * from users where login='$_GET[userlogin]' and password='$_GET[password]'";
        $result = mysql_query($sql, $conn) or die(mysql_error());
        $fetched = mysql_fetch_array($result);
        if ($fetched['user_type'] == "moderator") {
            echo '<script type="text/javascript">window.alert("You have logged in successfully!\n")</script>';
            print("<b><h1>hi mr.$_SESSION[user]</h1>");
            echo "<meta http-equiv=\"refresh\" content=\"0;URL=pages/moderator.php\">";
        }
        else if ($fetched['user_type'] == "agent") {
            echo '<script type="text/javascript">window.alert("You have logged in successfully!\n")</script>';
            echo "<meta http-equiv=\"refresh\" content=\"0;URL=pages/agent.php\">";
        }
    }

    function content() {
        print("<b><h1>hi mr.$_SESSION[user]</h1>");
        print "<br><h2>only a logged in user can see this</h2>";
    }

    function printme() {
        echo '<script type="text/javascript">window.alert("You have logged in successfully!\n")</script>';
    }

    ?>

</form>

根据上面的代码,我将根据用户类型将用户重定向到特定页面。

if ($fetched['user_type'] == "moderator") {
    echo '<script type="text/javascript">window.alert("You have logged in successfully!\n")</script>';
    print("<b><h1>hi mr.$_SESSION[user]</h1>");
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=pages/moderator.php\">";
}
else if ($fetched['user_type'] == "agent") {
    echo '<script type="text/javascript">window.alert("You have logged in successfully!\n")</script>';
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=pages/agent.php\">";
}

现在在我的moderator.php中 我只是调用moderator_include.php,我应该打印登录用户的用户名和user_type。

moderator.php

<div id="wrapper">
    <div id="container">

        <div id="header">

            <?php include "moderator_header.php"; ?>

        </div>

它包括moderator_header.php,它是

<div class="logo">
    <a href="moderator.php"><img class="logo_img" src="../images/minquepLOGO.png"/></a>
</div>

<div id="title">
    <img src="../images/title.gif"/>

</div>
<br/>

<?php
    session_start();
    if ($_SESSION["logged"] = true) {


        print("<b><h1>hi mr. $_SESSION[user] . You are logged in as /*THE USER_TYPE GOES HERE */ </h1>");
    }
?>

我尝试将用户名输出为

if (isset($_SESSION['logged'])){
    print("<b><h1>hi mr. $_SESSION[user] . You are logged in as /*THE USER_TYPE GOES HERE */ </h1>"); }

但没有任何反应......

关于如何输出用户的user_type ...我不知道怎么做,因为它不是index.php中发生的会话的一部分

顺便说一句,我的logout.php是这样的

<?php
    session_start();
    if (session_destroy()) {
        print"<h2><B><blink>you have logged out successfully</B></blink></h2>";
        print "<h3><a href='index.php'>back to main page</a></h3>";
    }
?> 

请帮帮我......谢谢

2 个答案:

答案 0 :(得分:0)

print("<b><h1>hi mr " . $_SESSION['user'] . "You are logged in as" . $userType . "</h1>"); }

尝试一下:)

修改

将变量$ userType编辑为它应该是什么......

答案 1 :(得分:0)

有时候php会有点棘手......要记住一些事情

1)总是在anyoutput之前启动会话,这意味着在你的代码之上,在开始会话之前,不应该只有一个空格或空行。

2)当你有一个启动会话的文件,并包含另一个文件时,你不必在包含的文件中再次启动它。

并且为了跟踪你的会话,你想在任何页面中添加这段代码:

<pre><?php print_r($_SESSION); ?></pre>

并查看结果。