storing user_id in session variable

Debug.

Where do you store the value in the session state?:

$_SESSION['user_ID'] = $userID;

Ok, so where does $userID come from?:

function selectUser($conn, $username, $password, $userID)
{
    //...

Ok, so where does the function parameter come from?:

selectUser($conn,$username,$password)

Nowhere. You never supplied a value to be stored in session, so no value was stored in session.

It seems unlikely that you actually want to supply the User ID to the function. Instead, you probably want to supply just the username and password as you currently do and then get the User ID from the database. Which might look more like this:

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

Or perhaps:

$_SESSION['user_ID'] = $row->user_id;

Or however you get values from your $row object.

But basically the important lesson here is… When a value isn’t what you expect it to be, trace back where that value came from. Chances are you have a false assumption somewhere.

Leave a Comment