Skip to main content
Participant
November 6, 2009
質問

Login Session Variable Problem

  • November 6, 2009
  • 返信数 1.
  • 468 ビュー

I've created a simple login using the inbuilt DW suite, but I don't seem to be able to display the session variable after they login.

On the success page it should filter the RS based on the Username and also display the Username etc on the page but nothing is shown. I tested the success page in DW and entered a value for the session var and it works fine, all I can think of is that the session is empty, not coming through, but I'm clueless.

Any ideas?

<<<<<LOGIN PAGE>>>>>

<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['UserName'])) {
  $loginUsername=$_POST['UserName'];
  $password=$_POST['Password'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "login_successful.php";
  $MM_redirectLoginFailed = "login.php";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_connpbxlogin, $connpbxlogin);
 
  $LoginRS__query=sprintf("SELECT UserName, UserPassword FROM Users WHERE UserName=%s AND UserPassword=%s",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
  
  $LoginRS = mysql_query($LoginRS__query, $connpbxlogin) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
   
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;     

    if (isset($_SESSION['PrevUrl']) && true) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

<<<<<SUCCESS PAGE>>>>>

$colname_LoggedRS = "-1";
if (isset($_SESSION['MM_Username'])) {
  $colname_LoggedRS = $_SESSION['MM_Username'];
}
mysql_select_db($database_connpbxlogin, $connpbxlogin);
$query_LoggedRS = sprintf("SELECT * FROM Users WHERE UserName = %s", GetSQLValueString($colname_LoggedRS, "text"));
$LoggedRS = mysql_query($query_LoggedRS, $connpbxlogin) or die(mysql_error());
$row_LoggedRS = mysql_fetch_assoc($LoggedRS);
$totalRows_LoggedRS = mysql_num_rows($LoggedRS);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
</p>
<p>username: <?php echo $row_LoggedRS['UserFirstName']; ?></p>
<p>email: <?php echo $row_LoggedRS['UserEmail']; ?></p>
<p>Session Data:
  <?php echo $_SESSION['MM_Username']; ?></p>
</body>
</html>
<?php
mysql_free_result($LoggedRS);
?>

このトピックへの返信は締め切られました。

返信数 1

David_Powers
Inspiring
November 8, 2009

Does your success page begin with session_start()?