【问题标题】:onclick with $_COOKIE使用 $_COOKIE 点击
【发布时间】:2013-06-06 16:23:21
【问题描述】:

我有一点问题,可能是想多了,但我会很感激任何帮助。我有一个主域。所以,domain.com.. 作为登录页面设置为具有城市名称,您可以在其中单击以转到子域....location1.domain.com,我正在尝试将链接存储为变量以调用 @ 987654325@.

索引.PHP

if($_COOKIE['location'] == "")
{
    ?>
    <body>
    <center> Please select your city. </center>
    <center> Location 1 </center>
    <br><br><br>
    <table width="100%">
       <tr>
        <td width="50%" align="center">
<a href='http://location1.domain.com' onclick="setCookie('location', 'location1',)">location1</a>
         <td width="50%" align="center">
<a href="http://location2.domain.com" onlick="SetCookie('location','location2')">location2</a>
            </td>
        </tr>
    </table>
    <?
} 
else 
{
?>
    <html>
    <head>
    <meta http-equiv="refresh" content="0; url=http://"<?$_COOKIE['location']?>".domain.com">';
    echo '</head>';
    echo '</html>';
<?  
}
?>

我希望它是这样的,当我单击来自主索引的链接时,它将我的选择保存在 cookie 中,以便下次我访问 domain.com 时,它会自动将我重定向到我之前的选择。我也尝试过使用 js 来促进这一点,但我一定不能正确地做到这一点......除了保存 cookie 的部分之外,一切似乎都正常......提前致谢!

【问题讨论】:

  • $_Cookie$_COOKIE 不同
  • 为什么在 2013 年你仍然使用href="http://location2.domain.com" onlick="SetCookie?这被认为是一种不好的做法。 HTML 标记和它的事件处理程序应该完全解耦。
  • @metal_fan instead of passing judgement,如何解释为什么这是一个坏主意以及如何避免它/以不同的方式解决它?
  • @nhinkle 我相信我做到了。您听说过关注点分离 (SoC) 吗?我们永远不会将 javascript 事件处理程序与 HTML“标记”混合。为什么?再次:它也破坏了 SoC 和 SRP。不一样的方式?嗯,$("#selector").click() 这样的东西一定很明显......

标签: php html cookies onclick


【解决方案1】:

首先,您根本不应该使用这种编码风格。它对各种代码注入完全开放。

对您的代码的一些建议:

使用&lt;?=$_COOKIE['location']?&gt; 打印出您存储的cookie 值。它们在 javascript 中没有原生的 setCookie 函数。你必须使用

document.cookie = 'cookiename=cookievalue; expires=Thu, 1 Aug 2013 20:30:20 UTC; path=/';

例如。尝试一些更改,不要犹豫再次询问。

最好的问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多