【问题标题】:PHP get cookie valuePHP获取cookie值
【发布时间】:2015-02-19 11:07:55
【问题描述】:

我用这段代码用 javascript 创建了一个 cookie:

$('#solicita').click(function(){
  document.cookie = 'courseId=<?php echo $course[id]?>';
  $('#myModal').modal('show');
});

这将创建一个名称为 courseId 的 cookie,并带有一个值。 然后我尝试使用以下 php 代码读取 cookie:

if(isset($_COOKIE['courseId'])) {
 $course   = ORM::for_table('courses')->find_one($_COOKIE['courseId']);
 ...
}

但是 isset($_COOKIE['courseId'] 总是假的。这段代码一直有效,直到上周我更改了我的 .htaccess 以获得友好的链接。这是我添加到我的 .htaccess 中的代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteEngine On
RewriteBase /peppers/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^cp/artes-escenicas/([^/]+)/?$ cp/course-details.php?name=$1 [NC,L]
RewriteRule ^cp/ciencia-y-tecnologia/([^/]+)/?$ cp/course-details.php?name=$1 [NC,L]
RewriteRule ^cp/arte-y-diseno/([^/]+)/?$ cp/course-details.php?name=$1 [NC,L]
RewriteRule ^cp/deportes/([^/]+)/?$ cp/course-details.php?name=$1 [NC,L]
RewriteRule ^cp/idiomas/([^/]+)/?$ cp/course-details.php?name=$1 [NC,L]
RewriteRule ^cp/academico/([^/]+)/?$ cp/course-details.php?name=$1 [NC,L]
RewriteRule ^cp/rutas/([^/]+)/?$ cp/course-details.php?name=$1 [NC,L]
RewriteRule ^cp/voluntariado/([^/]+)/?$ cp/course-details.php?name=$1 [NC,L]

请帮忙

更新


【问题讨论】:

  • 您的 mod_rewrite 指令中的任何内容如何禁用您的 cookie 并不明显。您是否尝试过:if ($_COOKIE['courseId'] != '') {echo '&lt;p&gt;courseId cookie contains '.$_COOKIE['courseId'].'&lt;/p&gt;';} else {echo '&lt;p&gt;courseId Cookie is empty'&lt;/p&gt;';} 只是为了检查您的 cookie 的内容?
  • 是的,试过那个代码,我总是得到“courseId Cookie is empty”
  • 您是否在开发者控制台中看到了 cookie,例如萤火虫?
  • 是的,我可以看到带有值的 cookie
  • 您的 PHP 脚本是否与设置 cookie 的文档所在的路径相同?您可以在屏幕截图中看到您的 cookie 的路径值为 /peppers/cp/artes-escenicas - 因此只有当您请求以相同路径开头的 URL 时,浏览器才会发送。如果您还希望将其发送给该路径之外的其他资源,那么您必须在设置该 cookie 时指定一个限制较少的路径。

标签: php .htaccess cookies


【解决方案1】:

Cookie 仅限于某个路径,只有当请求的 URL 位于该路径内时,浏览器才会再次发送。

您可以在屏幕截图中看到您的 cookie 的路径值为 /peppers/cp/artes-escenicas。通过 JavaScript 设置 cookie 时,路径默认为运行脚本设置 cookie 的文档的路径。

如果您希望它也被发送到该路径之外的其他资源,那么您必须在设置该 cookie 时指定一个限制较少的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多