【问题标题】:Best idea to pass variables from a href link从 href 链接传递变量的最佳方法
【发布时间】:2015-11-21 13:52:50
【问题描述】:

我有一个 href 链接,我想传递一些变量而不在链接中使用它们,最好的主意是什么?

<a href="Files/download.php?file=fileName">Click</a>

我想将这些变量添加到我的 download.php 页面中,以将它们更新到我的数据库表中:

timestamp
downloads
hits
views

提前致谢

【问题讨论】:

    标签: php forms variables


    【解决方案1】:
    <a href="Files/download.php?file=fileName" >Click</a>
    

    这完全取决于你的情况如何去做,因为有很多方法可以做到这一点

    1) 如果您不想将参数显示给用户,那么您可以将它们加密并添加到 URL 中。 2)如果您不希望 URL 中的参数,那么您可以为所有参数创建隐藏的输入标签,然后使用 POST 方法在 HREF 单击上提交该表单或将值存储在会话中

    <form id='hidden_form' action='Files/download.php'>
    <input type='hidden' name='timestamp' value='some value' >
    <input type='hidden' name='downloads' value='some value' >
    <input type='hidden' name='hits' value='some value' >
    <input type='hidden' name='views' value='some value' >
    

    $_SESSION['timestamp']  = '<some value>';
    $_SESSION['downloads']  = '<some value>';
    $_SESSION['hits']   = '<some value>';
    $_SESSION['views']  = '<some value>';
    

    【讨论】:

    • 使用会话有什么挑战吗?例如会话被盗
    • 会话比 cookie 安全得多。但是仍然有可能窃取会话,因此黑客可以完全访问该会话中的任何内容。避免这种情况的一些方法是 IP 检查和使用随机数。通常使用 nonce,您有一个每页的“令牌”,以便每个页面检查最后一页的 nonce 是否与它存储的内容匹配。
    【解决方案2】:

    使用链接,您没有太大的灵活性。你真的只能通过 url 传递它们。

    如果这是一个表单,您可以做更多事情,并且这些变量作为 POST 数据传递。然后它们将对用户隐藏,并且不会出现在 url 中。您可以使用隐藏输入:

    <input type='hidden' name='myVariable' value='5' />
    

    您也可以将它们存储在 $_SESSION 中,但如果没有上下文,很难说出最适合您的情况。

    【讨论】:

    • 不知道为什么这被否决了。他询问如何将变量传递到另一个 PHP 页面而不将它们放在链接中。我给出了两种选择。
    • 谢谢,我赞成,使用会话有什么挑战吗?例如会话被盗
    【解决方案3】:

    如果您想使用 href 链接,请使用以下链接。

    <a href="Files/download.php?file=fileName&timestamp=value&downloads=value&hits=value&views=value">Click</a>
    

    【讨论】:

    • 我不想在链接中使用参数
    猜你喜欢
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多