【问题标题】:Checking if a sessions is empty, unsetting it, and then sending $_POST data onclick检查会话是否为空,取消设置,然后在点击时发送 $_POST 数据
【发布时间】:2016-09-02 22:06:09
【问题描述】:

每当我单击一个按钮时,我都有两组可能的信息可以导出到另一个 PHP 页面。 其中之一是会话。是这样的:

$_SESSION['excel_name']['Main_'] = "Main_".date("y_m_d_Hi");
$_SESSION['excel_array']['Main_']['Plan1'] = array();

post 数据发送相同的信息,但不会将其保存在 session 中,以防止过多 session 之间发生冲突。所以我想尝试的是检查是否有会话集。如果有,我会取消设置,然后发送 $_POST 数据。没有的时候,我就设置一个。我试过这样做:

session_start();
if(isset($_SESSION) && !empty($_SESSION)) {
    unset($_SESSION['Main_']);
    unset($_SESSION['Plan1']);
    unset($_SESSION['excel_array']);
    $_POST['excel_name']['Main_'] = "Main_".date("y_m_d_Hi");
    $_POST['excel_array']['Main_']['Plan1'] = array();
} else {
    $_SESSION['excel_name']['Main_'] = "Main_".date("y_m_d_Hi");
    $_SESSION['excel_array']['Main_']['Plan1'] = array();
}

对于你们中的一些人来说,这个逻辑可能看起来有点奇怪,但我几乎可以肯定它会起作用......但是。我想在一个按钮中做到这一点。原因是,每当我单击按钮时,我都会将信息导出到下一个 PHP 页面。我想在发送信息之前检查这些条件,而不是在我加载页面的那一刻。

有可能吗?

【问题讨论】:

    标签: javascript php session


    【解决方案1】:

    有几种方法可以做到,但在阅读我的回答之前,请注意javascript验证可以被恶意编辑和利用。

    您可以向实现您的逻辑的 php 页面发出 AJAX 请求并返回代码 200 或 401。然后您可以在下一页加载之前采取行动。

    【讨论】:

    • 安全问题会有多严重?另外,AJAX 是唯一的选择吗?如果是这样,你能告诉我一个如何做的例子吗?
    • 好吧,在所有情况下,您都需要在目标页面上仔细检查规则是否得到遵守,否则用户可以进行验证。那么坏到什么程度呢?好吧,这取决于您是否需要它是 100% 准确的,或者您是否不在乎人们是否绕过这一步。要检查 PHP 会话,您需要执行一些 PHP 代码,所以我认为只有 AJAX 可以有效地执行此操作,但您可能会得到其他创造性的答案。
    • 您还可以使用客户端也提供的 COOKIES(但也可编辑)。这个问题背后的逻辑已经被问过好几次了,见this google search
    猜你喜欢
    • 2016-01-05
    • 2011-11-02
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多