2012-07-21 96 views
0

好吧,我坚持这一点。我尝试了isset功能,但没有任何反应...登录后会话输出用户名和用户类型PHP

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

如果主持人是她USER_TYPE她就会被重定向如果代理的是她,她USER_TYPE就会被重定向到agent.php

到moderator.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> 

从上面的代码,这是我如何根据用户的user_type重定向用户到他们的特定页面。

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 里面我只是打电话,我应该打印登录用户的用户名和USER_TYPE的moderator_include.php。

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>"; 
    } 
?> 

请帮我...谢谢

+0

正确缩小代码将使您(以及我们)更好地阅读代码。另外,请给我们一个简短的相关代码片段,而不是您的整个应用程序。 – 2012-07-21 11:20:54

+0

好的,谢谢... – 2012-07-21 11:27:23

回答

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

试试吧:)

编辑

编辑变量$ USERTYPE它应该是什么?

+0

有一个解析错误:语法错误,意外的'<'错误。 :) – 2012-07-21 10:38:30

+0

它没有得到登录用户名... – 2012-07-21 10:43:31

+0

现在尝试:)... – 2012-07-21 10:49:42

0

有时PHP变得有点棘手......几件事情要记住

1)始终启动anyoutput会议收到的,这意味着在你的代码的顶部,在开始会话之前,不应该有一个空格或一个空行。

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

和序跟踪会话,在任何页面,你只想添加以下代码:

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

,看看结果是什么。

+0

未定义的变量:_SESSION后把你的代码我的moderator_header.php – 2012-07-21 10:43:05