首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP setcookie()问题

PHP setcookie()问题
EN

Stack Overflow用户
提问于 2014-03-27 23:54:10
回答 2查看 117关注 0票数 0

我有一个php文件:

代码语言:javascript
复制
<?php 
$username = $_POST["username"];

if((!$username) || (!$_POST["password"])){
    header("Location:http://localhost/login.html");
    exit;
}

$db_name = "muzak";
$tblname = "auth_users";
$connection = mysqli_connect("localhost", "***username***", "***password***", $db_name) or die("Couldn't connect to database");
$sql = "SELECT * FROM $tblname WHERE username = '$username' AND password= password('$_POST[password]')";

$result = mysqli_query($connection, $sql) or die(mysqli_error($connection));

$numHits = mysqli_num_rows($result);
var_dump($numHits);//equal to one

if($numHits > 0){
    $cookie_name = "auth";
    $cookie_value = "ok";
    $cookie_expire = "0";
    $cookie_domain = "127.0.0.1";
    setcookie($cookie_name, $cookie_value, $cookie_expire, "/" , $cookie_domain, 0);

    $display = "<li><a href=\"secret_areaA.php\">Secret Area A</a></li>
                <li><a href=\"secret_areaB.php\">Secret Area B</a>  </li>";
}else{
    header("Location:http://localhost/login.html");
}
?>
<html>
<head>
<title>Secret Menu</title>
</head>
<body>
<?php echo $display;?>
</body>
</html>

其从html文件获取输入并向数据库请求确认。超文本标记语言部分工作正常,但是当我尝试检查secret_areaA.php文件中是否存在cookie时。。。

代码语言:javascript
复制
<?php 
if($_COOKIE["auth"] == "ok"){
    $msg = "<p><Welcome to the first secret area!<p>";
}else{
    die("Cookie wasn't valid");
}
?>
<html>
<head>
<title>
    Secret Area A
</title>
</head>
<body>
<?php echo $msg;?>
</body>
</html>

我在第2行的C:\xampp\htdocs\secret_areaA.php中得到这个错误:注意:未定义索引: auth。

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2014-03-27 23:57:02

Cookie expire设置为0会让cookie在设置后立即过期。所以它永远不会出现。

您将在那里设置的时间必须是time() + $seconds,而不仅仅是$seconds

票数 3
EN

Stack Overflow用户

发布于 2014-03-27 23:56:26

在尝试比较值之前,您需要检查cookie是否使用isset()设置(存在)。这样,如果cookie尚未设置,我们就不会尝试访问不能存在的$_COOKIE数组的一部分(['auth'])。

代码语言:javascript
复制
if ( isset( $_COOKIE['auth'] ) && $_COOKIE['auth'] == 'ok' ){
} else {
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22692817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档