**更新 - 解決問題**我的代碼是正確的,除了我需要指定目錄。設置cookie的文件位於子域中,因此跳過了根目錄。我更改了代碼以設置Cookie,如下所示:Cookie未被設置 - PHP
setcookie('Remember','remembercheck',time()+3600,'/','.mydomain.com');
現在它已正確設置。
**完**更新
當我嘗試登錄不檢查記得我按鈕,cookie不會被設置,我沒有被記錄下來。如果我登錄與記得我按鈕檢查,它的日誌很好。有任何想法嗎?我很難過!
PHP:
<?php
require 'connect.php';
require 'functions.php';
session_name('login');
session_start();
// ---------- LOGIN ----------
if($_POST['submit']=='Login')
{
// Checking whether the Login form has been submitted
$err = array();
// Will hold our errors
if(!$_POST['username'] || !$_POST['password'])
$err[] = 'All the fields must be filled in!';
if(!count($err))
{
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['remembercheck'] = (int)$_POST['remembercheck'];
$storedsaltquery = mysql_fetch_assoc(mysql_query("SELECT rand FROM membertable WHERE usr = '".$_POST['username']."'"));
$storedsalt = $storedsaltquery['rand'];
// Escaping all input data
$row = mysql_fetch_assoc(mysql_query("SELECT id,usr, FROM membertable WHERE usr='{$_POST['username']}' AND pass='{$_POST['password']}'"));
if($row['id'])
{
// If everything is OK login
$_SESSION['usr']=$row['usr'];
$_SESSION['id'] = $row['id'];
$_SESSION['remembercheck'] = $_POST['remembercheck'];
// Store some data in the session
setcookie("Remember","remembercheck");
}
else $err[]='Wrong username and/or password!';
}
if($err)
$_SESSION['msg']['login-err'] = implode('<br />',$err);
// Save the error messages in the session
echo header("Location: ../index.php");
exit;
}
HTML:
<?php
require 'includes/connect.php';
require 'includes/functions.php';
session_name('crmLogin');
// Starting the session
session_start();
if($_SESSION['id'] && !isset($_COOKIE['Remember']) && !$_SESSION['remembercheck'])
{
// If you are logged in, but you don't have the Remember cookie (browser restart)
// and you have not checked the remembercheck checkbox:
$_SESSION = array();
session_destroy();
// Destroy the session
}
if(isset($_GET['logoff']))
{
$_SESSION = array();
session_destroy();
header("Location: index.php");
exit;
}
?>
<form name="login" action="includes/logincheck.php" method="post">
Username: <input type="text" name="username" id="username" /><br>
Password: <input type="password" name="password" id="password" /><br>
<input name="remembercheck" id="remembercheck" type="checkbox" checked="checked" value="1" /> Remember Me
<input type="submit" value="Login" name="submit"/><br><br><br>
</form>
哪個瀏覽器(S)?您是否使用開發人員工具或Fiddler觀看過Set-Cookie標頭?您的代碼是在頂層頁面還是在框架中運行? – EricLaw