PHP获取cookie值

时间:2015-02-19 11:07:55

标签: php .htaccess cookies

我使用以下代码创建了一个带有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的代码:< / p>

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]

请帮忙

更新


enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

如果您希望将其发送到该路径之外的其他资源,则必须在设置该Cookie时指定限制较少的路径。