Jump to content

[SOLVED] Help! Problem creating session


kjtocool

Recommended Posts

Hi there, I am having a problem creating a session and holding it across pages.

 

I start with a simple form that requests username and password.  When the user clicks submit, it sends them to loginVal.php:

 

<?php
session_start();
?>
<!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=iso-8859-1" />
<title>Xtinct CMS</title>
<link href="main.css" rel="stylesheet" type="text/css">
<style type="text/css" >
<!--
.style1 {
font-family: Arial;
font-size: 16px;
color: #0F45FF;
font-weight: bold;
}
.style6 {
font-family: Arial;
font-size: 12px;
}
-->
</style></head>

<body>
<table width="670" border="0" align="center" cellpadding="0" cellspacing="0">
<form id="form1" name="form1" method="post" action="">
  <tr>
    <td background="images/top.jpg" height="50"> </td>
  </tr>
  <tr>
    <td background="images/middle.jpg" height="200" valign="top">
	<table width="670" border="0" cellspacing="0" cellpadding="0">
	  <tr>
		<td width="75"> </td>
		<td><p align="center"><span class="style1">Login</span></p>
		  <p align="left" class="style6">
			<?php
				$userName = $_POST["userName"];
				$_SESSION['userName'] = $userName;
				$passwordHash = md5($_POST["password"]);
				$_SESSION['passwordHash'] = $passwordHash;

				$databaseConnect = mysqli_connect("localhost", "username", "password", "database_name")
							Or die("Unable to connect to the database.");

				$query = "SELECT user_ID FROM Users WHERE username = '$userName' AND password = '$passwordHash' LIMIT 1";
				$result = mysqli_query($databaseConnect, $query);

				if (mysqli_num_rows($result) == 0)
					echo "Username or password is incorrect.";
				else
				{
					$row = mysqli_fetch_assoc($result);
					$_SESSION['userID'] = $row['user_ID'];
					echo "Successful Login";
					echo '<META HTTP-EQUIV="refresh" CONTENT="0.0; URL=http://www.thelink.com/options.php?' . SID . '">';
				}

				mysqli_free_result($result);
				mysqli_close($databaseConnect);
			?>
		  </p>
		  <br />
	    </td>
	    <td width="75"> </td>
	  </tr>
	</table>
</td>
  </tr>
  <tr>
    <td background="images/bottom.jpg" height="35"> </td>
  </tr>
  </form>
</table>
</body>
</html>

 

As you can see, I use session_start() to start the page.  I then get values for username and password, hash the password, and make sure the login is valid.  I pass values to a few $_SESSION variables, and if the login was valid, I redirect them to another page, options.php.

 

On options.php I run the following check:

 

<?php
session_start();

if (!isset($userID))
    {
        header("Location: http://www.thelink.com/index.php");
    }
?>

 

Even though I set the $_SESSION['userID'] variable, it always re-directs.

 

While troubleshooting, I tried echoing the SID in the loginVal.php file, and it came up as an empty string.  So for whatever reason, I am not generating a session ID.  I am new to sessions, can someone tell me what I am doing wrong?

 

KJ

Link to comment
Share on other sites

I never define $userID.

 

I defene $_SESSION['userID'] in loginVal.php here:

 

if (mysqli_num_rows($result) == 0)

echo "Username or password is incorrect.";

else

{

$row = mysqli_fetch_assoc($result);

$_SESSION['userID'] = $row['user_ID'];

echo "Successful Login";

echo '<META HTTP-EQUIV="refresh" CONTENT="0.0; URL=http://www.thelink.com/options.php?' . SID . '">';

}

 

In any case, apparently my problem was that this:

if (!isset($userID))

 

should have been:

if (!isset($_SESSION['userID']))

 

So it works now.  Thanks a bunch!

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.