PHP setcookie() 问题

标签 php html mysql setcookie

我有一个 php 文件:

<?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 文件中获取输入并请求数据库进行确认。 HTML 部分工作正常,但是当我尝试检查 secret_areaA.php 文件中是否存在 cookie 时。 . .

<?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。

我做错了什么?

最佳答案

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

你要设置的时间必须是 time() + $seconds,而不仅仅是 $seconds

关于PHP setcookie() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22692817/

相关文章:

php - PHP配置类和依赖类的编程最佳实践

HTML 文件上传字段样式

javascript - 违反物理学的基本视差效果

MySQL 触发器变量和嵌套选择

php - 有什么解决方案可以在浏览器关闭时更新数据库吗?

javascript - 创建一个在 joomla 中返回变量的弹出窗口或 iframe

php - 如何在 array_map() 中为我的回调函数使用参数/自变量?

php - 使用 phar 打包并部署 Yii2 Advance 应用程序

javascript - 如何创建水平选项卡式菜单?

mysql - 如何获取 MySQL 数据库表的大小?