【问题标题】:Slim php csrf failedSlim php csrf 失败
【发布时间】:2019-03-25 10:42:47
【问题描述】:

我有一个控制器动作,它使用 League/csv 包输出 CSV 文件。 当我发布表单时,可以下载文件,但是如果再次发布发布请求,我会收到 csrf 令牌失败,这是正确的,因为 csrf 代码在每次请求后都会过期。在 Slim 框架 PHP 中下载文件后重定向页面的最佳方法是什么

     $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());

    Data::where('user_id','=',$user_id)->get()->each(function($dat) use($csv) {
        $data = $dat->toArray();
        $data['link'] = $dat->getLink();
        $csv->insertOne($data);
    });
     $csv->output('data.csv');

【问题讨论】:

  • 您可以使用简单的重定向标头,例如 header("location:urltoredirectto.php");
  • 重定向后为什么需要检查 CSRF 令牌?
  • 你在控制器结束时重新调整了什么?

标签: php file csv slim-3


【解决方案1】:

问题已解决。我发出了 ajax 请求,它返回了 csrf 令牌和 csv 文件内容。 我使用下面的代码使用javascript下载文件

var uri = 'data:text/csv;charset=UTF-8,' + encodeURIComponent(csvdata);
                window.open(uri, 'data.csv');

【讨论】:

    猜你喜欢
    • 2019-12-31
    • 2014-01-09
    • 2017-01-28
    • 1970-01-01
    • 2014-12-25
    • 2012-09-08
    • 2012-12-27
    • 2015-06-02
    • 2018-01-01
    相关资源
    最近更新 更多