繁体   English   中英

调用REST API以在票务系统中创建问题的PHP脚本仅应调用一次

[英]A PHP script that calls a REST API to create issues in a ticket system should only be called once

我有一个相当具体的问题。

我正在为我们公司的员工注册流程编写一个应用程序。 在几种形式的过程中,有关新员工需求的数据被收集并输入到MySQL数据库中。

在最后一步中,一个PHP脚本获取了这些信息,并通过cURL在我们的JIRA票务系统中(通过REST API)创建了多个票证。

进行cURL调用的网页也将随后呈现结果,即链接到创建的票证。 如果有人单击链接,然后决定按其浏览器的“后退”按钮,则整个脚本将再次运行。

如何有效防止这种情况? 我已经有了一些想法,但是似乎没有一个合适的想法:
-在数据库中创建更多信息,即每个故障单的状态,然后在决定运行cURL调用之前先进行查询。
-不允许通过JS通过按“后退”按钮到达脚本(实际上这个想法完全是垃圾,但无论如何我都会把它留在这里。)
-不允许用户调用脚本,而是让表单向我发送一封电子邮件,说明已经输入了信息,以便我自己运行脚本。 每次...

不好意思,这不是一个“确切”的问题,而是更多关于最佳实践的问题。 尽管以我的拙见,这就是论坛所需要的,而不是您可以在任何文档中阅读的内容。

问候

只是一个想法-使用会话变量来确保curl请求仅发生一次-您可以替代地(或与会话一起)将boolean值与它们的名称/用户ID相对应存储在db中,以指示它们已完成该过程。

<?php
    if( !isset( $_SESSION['curl_ticket'] ) ){
        /* do the curl request */

        /* get response from request */

        /* set the session */
        $_SESSION['curl_ticket']=$some_id;
    }


    if( isset( $_SESSION['curl_ticket'] ) ){
        /* display ticket */    
    }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM