Php 识别cookies有困难
代码如下。我在最新版本的firefox上遇到了这个问题。我查看了其他论坛,没有找到任何解决方案。我想我做错了什么也许?正如您可能知道的,我对php有些陌生 另外,我知道我的方法对于代码中的许多其他东西来说有点不正统。但是,我希望解决的问题是if语句测试,它检查是否设置了$\u COOKIE['auth']。我检查了我的曲奇饼,它被设置好了。我测试了一些死亡陈述,但它没有被拾起。有什么帮助吗Php 识别cookies有困难,php,cookies,Php,Cookies,代码如下。我在最新版本的firefox上遇到了这个问题。我查看了其他论坛,没有找到任何解决方案。我想我做错了什么也许?正如您可能知道的,我对php有些陌生 另外,我知道我的方法对于代码中的许多其他东西来说有点不正统。但是,我希望解决的问题是if语句测试,它检查是否设置了$\u COOKIE['auth']。我检查了我的曲奇饼,它被设置好了。我测试了一些死亡陈述,但它没有被拾起。有什么帮助吗 <?php //THIS IS WHERE THE PROBLEM EVIDENTLY OCCU
<?php
//THIS IS WHERE THE PROBLEM EVIDENTLY OCCURS
if (isset($_COOKIE['auth'])){
if ($_SESSION['auth'] > 0){
header ("Location: /members/index.php");
} else {
setcookie ('auth', '', time() - 3600, "/", "www.domain-here.com");
}
} else {
$old_url = $_SERVER['HTTP_REFERER'];
$username = "";
$password = "";
if ($_POST['username'] != "" && $_POST['password'] != ""){
$username = $_POST['username'];
$password = $_POST['password'];
$expire = 0;
if ($_POST['save'] == "checked"){
$expire = time()+60*60*24*14;
}
//$result = db query to check if user exists
if ($result) {
if (mysql_num_rows($result) > 0){
session_start();
setcookie("auth", $sid, $expire, "/", "www.domain-here.com"); //here I am setting the cookie to allow users to stay logged on
header ("Location: $old_url");
} else {
session_start();
$_SESSION['auth'] = "0";
die(alert("Invalid username or password.", "login.php"));
}
} else {
die(alert("Invalid username or password.", "login.php"));
}
}
}
?>
好的,首先,你使用的是time-3600,这意味着你的cookie小于0?下一个。你需要给它一个值,否则它不会设置cookie。这是正确的代码
if (isset($_COOKIE['auth'])){
if ($_SESSION['auth'] > 0){
header ("Location: /admin/itemdev.php");
} else {
setcookie ('auth', 'my value', time() + 3600, "/", "localhost");
}
}
删除所有与问题无关的代码,然后重试。会话和数据库在cookies相关问题中毫无意义^^^它已被编辑。我去掉了大部分不相关的session/db内容。你到底想在这里做什么?看起来您只是在处理会话,在这种情况下,我不明白为什么需要存储身份验证cookie。目标是在有人登录后存储cookie。因此,如果他们离开并在不同的会话中返回,他们将保持登录状态。