【问题标题】:Setting a cookie by PHP to be used by ASPX通过 PHP 设置 cookie 以供 ASPX 使用
【发布时间】:2013-12-18 12:33:46
【问题描述】:

我别无选择,只能使用 .NET 来构建搜索页面,因为我的商业伙伴需要一个新网站,他的数据库使用 MSSQL。

但是在我目前的情况下,我别无选择,只能这样做,所以我正在构建一个 HTML5/.NET 混合体。

我有一个内置 ASPX 的网页,默认加载时,它会根据设置如下的 cookie 参数搜索库存数据库:

COOKIE NAME:“searchParameter”COOKIE VALUE:“valueC=stringSearch”

但我无法在 PHP 中复制上面的 cookie,因为等号 '=' 在 PHP 中被删除了

COOKIE 名称:“searchParameter”COOKIE 值:“valueC%3DstringSearch”

所以在 PHP 中,等号从 '=' 变为 '%3D',因此 ASPX 页面不会根据在前一个 PHP 页面中设置的 cookie 执行正确的搜索。

如何设置一个包含“=”字符的 cookie 值,使其不会更改为 %3D?

这是我目前在 PHP 中所拥有的:

<?php
$value = 'valueC=stringSearch';

setcookie("searchParameter", $value);
setcookie("searchParameter", $value, time()+3600);  /* expire in 1 hour */
setcookie("searchParameter", $value, time()+3600, "/", "cinicraft.com", 1);
?>

但是当使用 Google Chrome 开发者工具检查当前存储的 cookie 时,我得到了这个:

COOKIE 名称:“searchParameter”COOKIE 值:“valueC%3DstringSearch”

这不适用于 aspx 页面,除非我可以将 cookie 值设为“valueC=stringSearch”

这里有人知道如何使用 cookie 在 PHP 中获取“=”吗?

【问题讨论】:

  • @SamuelCook 如果您可以将 FreeTDS 添加到您的服务器(如果使用 Linux)。如果您使用的是 Windows 计算机,则可能会更容易。
  • PDO也有一个mssql驱动
  • @user2636774 您是否尝试过使用header() 而不是setcookie() 快捷方式设置cookie?
  • %3D 是一个编码为= 的网址。我会假设 .NET 在某处有一个 urldecode 函数。
  • 我用 MSSQL 尝试过 PHP,这是一场噩梦,无法设置。对我来说,构建一个混合体会更快。

标签: php asp.net cookies


【解决方案1】:

您有多种选择:

  • urldecode ASP 上的值
  • 使用header()设置cookie头
  • 使用 setrawcookie() 来避免自动 urlencoding,正如 setcookie() 上的文档所说的那样

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 2015-10-17
    • 2012-11-20
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2013-12-29
    • 1970-01-01
    相关资源
    最近更新 更多