My php script doesn't set cookies for localhost?

varun_nabha

New member
I am creating a login script in php. Everythings Ok but it is unable to set cookies so that I can Move to members area. I am testing it on my local Host.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
CODING
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
<HTML>
<BODY>
<?php
// Connects to your Database
$CONN=odbc_connect("register", "username", "password") or die(odbc_error());

//Checks if there is a login cookie
if(isset($_COOKIE['ID_my_site']))

//if there is, it logs you in and directes you to the members page
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$SCAN="SELECT * FROM userData WHERE userName = '$'username'";
$check = odbc_exec($CONN,$SCAN);
while($info = odbc_fetch_into( $check))
{
if ($pass != $info['password'])
{
}
else
{
//header("Location: members.php");


}
}
}

//if the login form is submitted
if (isset($_POST['submit'])) { // if form has been submitted

// makes sure they filled it in
if(!$_POST['username'] | !$_POST['pass']) {
die('You did not fill in a required field.');
}
// checks it against the database

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$SCAN2="SELECT * FROM userdata WHERE username = '".$_POST['username']."'";
$check = odbc_exec($CONN,$SCAN2);
//Gives error if user dosen't exist
$check2 = odbc_fetch_row($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=test.php>Click Here to Register</a>');
}

while($info = odbc_fetch_row($check))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);

//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Incorrect password, please try again.');
}
else
{

// if login is ok then we add a cookie
$_POST['username'] = stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

//then redirect them to the members area
header("Location: members.php");
}
}
}
else
{

// if they are not logged in
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}

?>
</body>
</html>
 
I know this isn't really an answer, but I believe it serves as a decent alternative.

try using the $_SESSION var instead of $_COOKIE.
It works much easier and is meant for this kind of temporary storage of data.

The way it works is, it automatically creates a cookie at the client with a session id. It then checks this session id with the server, where all the session's contents are stored.
It's kinda safer in my eyes too, as with this way you won't have any login data hanging about on the client pc.

Best of luck
 
Back
Top