在php登录脚本上设置cookie

在php登录脚本上设置cookie,php,mysql,cookies,login,Php,Mysql,Cookies,Login,在返回到一个“PHP登录系统”测试项目后,我现在需要创建一个等待,以便我可以设置一个cookie,以便在用户重新访问网站时记住用户,这可以是一个cookie,该cookie设置有或没有“记住我”选项,以最好的为准 下面是php代码,在用户输入登录信息后对其进行身份验证 <?php session_start(); // Create the session if (empty($_REQUEST['username']) || empty($_REQUEST['password'])

在返回到一个“PHP登录系统”测试项目后,我现在需要创建一个等待,以便我可以设置一个cookie,以便在用户重新访问网站时记住用户,这可以是一个cookie,该cookie设置有或没有“记住我”选项,以最好的为准

下面是php代码,在用户输入登录信息后对其进行身份验证

<?php
session_start();    // Create the session
if (empty($_REQUEST['username']) || empty($_REQUEST['password'])) { header("Location: /login.php?username=" . $_REQUEST['username'] . "&message=0"); exit; 
} else { 

$username = $_POST['username']; // Gets the username
$password = $_POST['password']; // Gets the password.
$salt = "n4tOqSYcZI5Y463oG34T7YR8Q72hVU"; // random string

// Add some salt
$salt .= $password; 
$password = $salt; // new salted pass.

// Encrypt the password.
$password = md5($password);

include('settings.php');
include('dbconnect.php');

$query = "SELECT * FROM xxx WHERE username = '$username' LIMIT 1"; 
$username = mysql_real_escape_string($username); // just to be sure.
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){
$resusername = $row['username']; 
$respassword = $row['password'];
$resemail = $row['email'];
}

// valid user?

if ($respassword == $password) {

// Yes they are.
$_SESSION['loggedin'] = "1";
$_SESSION['email'] = $resemail;
$_SESSION['username'] = $resusername;

$SQL = "UPDATE xxx SET usr_lastlogin='" . date("Y-m-d H:i:s") . "',lastlogin_ip='" . addslashes($_SERVER['REMOTE_ADDR']) . "' WHERE username = '$_SESSION[username]'";
$result = @mysql_query($SQL) or die("Error Process 2");

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

} else {

// No
$_SESSION['loggedin'] = "0";
header("Location: /login.php?username=" . $_REQUEST['username'] . "&message=3"); 
exit; } 
}
?>
只需使用$\u COOKIE并在以后读取即可。看看setcookie(),就使用$\u COOKIE而言,它与会话基本相同:

function isLoggedIn(){
    if($_COOKIE['loggedin'] == true or $_SESSION['loggedin'] == true){
       return true;
    }
    return false;
}

简单地说,您想创建一个存储“记住我”选项的cookie,确切地说?您是在对密码进行散列,而不是“加密”。此外,如果安全性对您的项目很重要,那么您可以(而且应该)做得比md5好得多。尝试使用:@Frederick Marcoux-是的,简单地说,我想创建一个cookie来存储信息,以记住该站点的访问者。@ajnatural-我会查看一下,以备将来参考,目前密码的哈希似乎正在起作用,在md5加密之前将salted添加到密码的开头,我没能撤销我尝试过的任何散列密码。