note 71693 added to function.setcookie
| From: | hakimu at gmail dot com | Date: | Tue, 12 Dec 2006 05:04:45 +0000 |
| Subject: | note 71693 added to function.setcookie | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-120529@lists.php.net to get a copy of this message | ||
It's cumbersome to always keep entering your username and password during login. More it
reduces the hit rate as well. Using the "Remember me on this computer" option during login
may help many users, even thought it's a security risk.
Example code of the Login Form
<?php
echo "<form name='frmlogin' method='post'
action='./login.php'>";
echo "User ID: <input type='inputbox' name='txtuser'>";
echo "Password : <input type='inputbox' name='txtpasswd'>";
echo "<input type='checkbox' name='chkrem_me' value='TRUE'>
Remember me";
echo "<input type='submit' name='Submit'
value='Login'>";
?>
Example code of the login.php file
<?php
// Get values form the frmlogin
// htmlspecialchars() used to strip malicious code
$userid = htmlspecialchars($_REQUEST['txtuser'], ENT_QUOTES);
$pass = md5(htmlspecialchars($_REQUEST['txtpasswd'], ENT_QUOTES));
$remme = $_REQUEST['chkrem_me'];
// redirect urls for login ok and login fail
$loginok_url = "./mamber.php";
$loginfail_url = "./loginfail.php";
// SQL query string for authentication with database
$sqlstr = "SELECT COUNT(*) FROM tbl_user WHERE userid = '$userid' AND password =
'$pass';";
// Connect to database
$mysqldb = mysql_connect("localhost","user_name","password") or
die("Unable to connect to database server");
// Select database
$selected = mysql_select_db("datbase_name",$mysqldb) or die ("Unable to select
database");
// Execute query
$valid = mysql_query($sqlstr,$mysqldb);
// If user exists with valid password
if ($valid > 0)
{
// if remember me ticked
if($remme)
{
// cookie login valid for 30 days, accessible to entire directory structure and valid for
all subdomains of example.com
setcookie('login',TRUE,time()+3600*24*30,'/','.example.com',0);
}
// if remember me NOT ticked
// cookie is set until the Browser close
// time can be set to both "NULL" and "false"
// If you want to specify a time e.g like 1 hour then "time() + 3600"
else
{
setcookie('login',TRUE,NULL,'/','.example.com',0);
}
// Redirect to Member page
header("Location: " . $loginok_url);
}
// if invalid user name or password
else
{
header("Location: " . $loginfail_url);
}
// close database
mysql_close($mysqldb);
?>
----
Server IP: 66.163.161.117
Probable Submitter: 192.248.16.90 (proxied: 10.16.48.40)
----
Manual Page -- http://www.php.net/manual/en/function.setcookie.php
Edit -- https://master.php.net/note/edit/71693
Del: integrated -- https://master.php.net/note/delete/71693/integrated
Del: useless -- https://master.php.net/note/delete/71693/useless
Del: bad code -- https://master.php.net/note/delete/71693/bad+code
Del: spam -- https://master.php.net/note/delete/71693/spam
Del: non-english -- https://master.php.net/note/delete/71693/non-english
Del: in docs -- https://master.php.net/note/delete/71693/in+docs
Del: other reasons-- https://master.php.net/note/delete/71693
Reject -- https://master.php.net/note/reject/71693
Search -- https://master.php.net/manage/user-notes.php