php - PHP Cookie 检查在 Bootstrap 导航栏中不起作用
问题描述
我正在尝试检查此 cookie 是否存在,但在此处的 Bootstrap 导航栏中执行时它不起作用。此导航栏单独保存为navbar.php文件,并在需要时使用 php 包含加载到其他页面中。
我尝试将以下 cookie 检查代码复制到一个单独的cookie.php文件中,它与正确的输出一起使用。
<?php
if (isset($_COOKIE["login"]))
{
echo "COOKIE TRUE";
}
else
{
echo "COOKIE FALSE";
}
?>
所以根据我的理解,有些东西干扰了导航栏中的 cookie 检查。我还通过 Chrome 浏览器检查选项检查了这个 cookie,它就在那里。这是一个新鲜的饼干,不会很快过期。这是完整的navbar.php代码。
<nav class="navbar sticky-top navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="http://example.com">
<img src="http://example.com/static/logo.png" width="75" height="75" class="d-inline-block align-top" alt="">
</a>
<?php
if (isset($_COOKIE["login"]))
{
echo "COOKIE TRUE";
}
else
{
echo "COOKIE FALSE";
}
?>
</nav>
我预计该页面会显示 COOKIE TRUE,但在 Bootstrap 的导航栏中始终显示 COOKIE FALSE。
因为你需要知道我在哪里设置了这个 cookie,所以这里是我login.php页面中的代码。包含的database.php具有指定的数据库位置,并且此代码有效,并且每次我请求它时都会创建 cookie。
更新:感谢@TheMouseMaster 指出登录代码中的错误。我使用 SQLite3 数据库进行此 php 登录,并进行了一些更改。
<?php
include 'C:\inetpub\wwwroot\database.php';
if(isset($_POST['btnlogin']))
{
if ($db)
{
$login = $db->query('select email, password from users');
while ($row = $login->fetchArray())
{
$email=$row['email'];
$password=$row['password'];
if ($email==$_POST["txtemail"]&&$password==$_POST["txtpassword"])
{
setcookie("login", "true", time() + (86400 * 30), "/");
header("location: http://example.com");
}
else
{
header("location: http://example.com/register");
}
}
}
$db->close();
}
?>
解决方案
问题在于我在每个页面中包含navbar.php的方式。而不是从像这样的 URL 加载它;
<?php include 'http://example.com/navbar.php';?>
我已将其替换为;
<?php include 'navbar.php';?>
或者
<?php include '../navbar.php';?>
子目录中的页面以正确选择它。现在它起作用了!
谢谢!
推荐阅读
- javascript - 在高亮文本时将光标移动到输入的最后
- python - 如何优雅地对 Pandas 中的一系列列表进行热编码
- r - 如何在 ggplot v3.0.0 中使用具有整洁评估的字符串变量?
- html - 调整不同大小的风景图像以适合带有圆形框架的固定肖像
- java - getResponse() - java.lang.NullPointerException:
- c++ - 编写一个 C++ 递归函数,计算并显示数组中前 n 个双精度数的乘积
- r - Extract embedded dataframes within variables
- .net - 从证书或 pfx 文件中获取 PublicKeyToken
- java - 从 Java 中的 Postgres 加载非物化数组
- matlab - 使用 matlab.mixins.Copyable 分配时是否自动复制