PHP Page isn't storing cookies

I am new to php and I am making a basic login script. All I want to do is log in and have the cookie for my user_id stored. It works on all of my other pages, except my index page which is one directory up.

So on my index page, I have this if statement:

<?php

if (!isset($_COOKIE['user_id'])) {

    sign_in();
} else {
    echo "You're already logged in!";
}

?>

No matter what I do, the sign_(); function always shows.

But here's the kicker: On my login script, the whole thing goes through as if I successfully logged in. I send it back to this page using:

header("Location: ../index.php");

(It is up one directory) However, when I make it link to a page in the same directory, it registers the cookie and everything is alright.

header("Location: show_user.php");

If you want a hands on view, you can go to http://patti-bee2.dcccd.edu/coleman/wonder%20penguin/php/signup.php to make your account. And http://patti-bee2.dcccd.edu/coleman/wonder%20penguin/php/show_user.php to view it. And notice how the index page doesn't register the cookie.

How I tried to set the cookie:

if (isset($_POST['usernamelogin'])) {
        $user_login = $_REQUEST['usernamelogin'];
        $pass_login = $_REQUEST['passwordlogin'];
        $pass_login = trim(crypt($pass_login, $user_login));
        $login_query = sprintf("SELECT username, user_id FROM user WHERE username = '%s' and password = '%s';", mysql_real_escape_string($user_login), mysql_real_escape_string($pass_login));
        $loginresult = mysql_query($login_query, $dbConn);

        echo $login_query;
        if (mysql_num_rows($loginresult) == 1) {
        $userinfo = mysql_fetch_array($loginresult);
        $username = $userinfo['username'];
        $userid = $userinfo['user_id'];
        setcookie('username', $username);
        setcookie('user_id', $userid);
        header("Location: show_user.php");
        exit();
        } else {
            echo "Couldn't find your account!";
        }
    }

Please excuse my unrefined page and amateur mistakes. I have a lot to learn.

Any ideas?

Thank you for your time.

Upvotes: 0

Views: 183

Answers (1)

Johnny Harlamert
Johnny Harlamert

Reputation: 271

Check if you have the cookie with the following

<?php

var_dump($_COOKIE);

//if (!isset($_COOKIE['user_id'])) 
if (empty($_COOKIE['user_id'])) 
{
    sign_in();
} 
else {
    echo "You're already logged in!";
}

?>

Upvotes: 1

Related Questions