如何根据用户名显示用户名会话

如何根据用户名显示用户名会话

问题描述:

我在这里有一个问题,那就是我想在员工输入员工ID后显示员工姓名。我的index.php会显示员工姓名,但没有成功。这个问题在欢迎它后显示“资源ID#4”。如何根据用户名显示用户名会话

我的表:

CREATE TABLE `staff` (     
      `staffid` varchar(25) NOT NULL,   
      `password` varchar(25) DEFAULT NULL,  
      `staffname` varchar(50) DEFAULT NULL, 
      `staffemail` varchar(50) DEFAULT NULL, 
      `level` int(2) DEFAULT NULL,    
      PRIMARY KEY (`staffid`)     
     ) ENGINE=InnoDB DEFAULT CHARSET=latin1 

的index.php:

<?php require_once('Connections/sqlconnection.php'); 

//initialize the session 
if (!isset($_SESSION)) { 
    session_start(); 
} 
$colname_rsstaff = $_SESSION['staffid']; 
if (isset($_GET['staffid'])) { 
    $colname_rsstaff = $_GET['staffid']; 
} 

// ** Logout the current user. ** 
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true"; 
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){ 
    $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']); 
} 

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){ 
    //to fully log out a visitor we need to clear the session varialbles 
    $_SESSION['MM_Username'] = NULL; 
    $_SESSION['MM_UserGroup'] = NULL; 
    $_SESSION['PrevUrl'] = NULL; 
    unset($_SESSION['MM_Username']); 
    unset($_SESSION['MM_UserGroup']); 
    unset($_SESSION['PrevUrl']); 

    $logoutGoTo = "login.php"; 
    if ($logoutGoTo) { 
    header("Location: $logoutGoTo"); 
    exit; 
    } 
} 
?> 
<?php 
if (!function_exists("GetSQLValueString")) { 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{ 
    if (PHP_VERSION < 6) { 
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; 
    } 

    $theValue = function_exists("mysql_real_escape_string") ?  mysql_real_escape_string($theValue) : mysql_escape_string($theValue); 

    switch ($theType) { 
    case "text": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break;  
    case "long": 
    case "int": 
     $theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
     break; 
    case "double": 
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; 
     break; 
    case "date": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break; 
    case "defined": 
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
     break; 
    } 
    return $theValue; 
} 
} 

mysql_select_db($database_sqlconnection, $sqlconnection); 
$query_rsstaff = sprintf("SELECT staffname FROM staff WHERE staff.staffid = %s",  GetSQLValueString($colname_rsstaff, "text")); 
$rsstaff = mysql_query($query_rsstaff, $sqlconnection) or die(mysql_error()); 
$row_rsstaff = mysql_fetch_assoc($rsstaff); 
$totalRows_rsstaff = mysql_num_rows($rsstaff); 
?> 
<title>Sistem Pengurusan Stok</title> 
<center> 
    <form name="form1" method="POST" action=""> 
    <table width="633" height="431" border="1"> 
     <tr> 
     <td height="124" colspan="2" align="right"><?php include 'header.php'?> 
<p><?php echo date("d-m-y")."<br>";?></p></td> 
     </tr> 
     <tr> 
     <td width="167" height="262"><?php include 'menu.php'?></td> 
     <td width="450" align="center"><p>Welcome 
      <?php echo $rsstaff?> 
</p> 
     <p><a href="<?php echo $logoutAction ?>">Log out </a></p> 
     <p><a href="<?php echo $logoutAction ?>"> </a></p></td> 
    </tr> 
    <tr> 
     <td height="37" colspan="2"></td> 
    </tr> 
    </table> 
    </form> 
</center> 
<? session_destroy()?> 
<?php 
mysql_free_result($rsstaff); 
?> 

有人帮我请... #Thanks。

+3

[**请不要在新代码'mysql_ *'功能**](http://bit.ly/phpmsql)。他们不再被维护[并且被正式弃用](http://j.mp/XqV7Lp)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。 – Kermit 2013-02-21 02:21:15

当你做<?php echo $rsstaff?>,你打印出MySQL查询资源$rsstaff。这种输出没有明显的形式,所以PHP只是告诉你“这是一种资源”,而不是更有意义的东西。这是你看到的输出。

您打算打印出$row_rsstaff的元素之一,推测是"staffname"元素。

所以:

<?php echo $row_rsstaff["staffname"] ?> 
+0

非常感谢。这是工作!!!! :D – 2013-02-21 02:39:19

+0

@Nurul:请在出口时填写客户满意度表。 – 2013-02-21 02:41:04

不要使用MYSQL_ *它已被弃用

这个答案是根据你试图但是做什么。

信息在这里找到:mysql_query

当你做$rsstaff = mysql_query($query_rsstaff, $sqlconnection),你得到的是一个资源,而不是你对SELECT staffname FROM staff WHERE staff.staffid = %s对数据库的期望。

尝试以下操作:

$result = mysql_query($query_rsstaff, $sqlconnection); 
$rsstaff = mysql_fetch_assoc($result); 

然后

Welcome <?php echo $rsstaff["staffname"]; ?> 

或者也可以简单

$rsstaff = mysql_result(mysql_query($query_rsstaff),0); 

然后用你的代码。

+0

好的,但是你改变他的变量名的方式是相当混乱的。 – 2013-02-21 02:33:31

+0

但是这个代码是由软件提供的..我只是单击Dreamweaver中的记录集,它被编码..每当我做了一个变化,它会提醒JavaScript有错误..所以如何? – 2013-02-21 02:44:04