为了账号安全,请及时绑定邮箱和手机立即绑定

防止日志中的重复条目

防止日志中的重复条目

PHP
元芳怎么了 2021-11-05 13:18:01
我有一个带有一些代码的垃圾邮件,我试图防止日志发送垃圾邮件“已识别取消”,当运行相同的代码时有 3 个实例并且它是垃圾邮件。如果有重复,我想防止我的日志中出现“取消已识别”垃圾邮件。有没有办法防止重复输入“已识别取消”的日志?我有一些用于修复的伪代码,但无法将其转换为 php。   if($searchfor)    {        $searchfor = "Cancellation Identified";        $searchfor = true;        continue process_imports();    }if(!empty($contract)){    //Determine if contract has been cancelled based on the presence of a cancellation date.    if ((isset($data['cancelled_date'])) && (substr_count($data['sold_date'], '/') == 2) && ($contract->cancelled_date >= '2015-01-01')) {        //If cancelled determine if cancellation is new by comparing to previously cancelled contracts table.        $IsCancelled = ContractCancellation::LocateCancellation($contract->moxy_contract_id);        if (!$IsCancelled->first()) { //Contract is not in cancellations table, flag contract for later cancellations processing.            $contract->cancel_pending = 1;            if($contract->hold == '1'){                LogAction::add("Data Adjustment", "Hold Removed Due To Contract Being Cancelled.", 0, "", $contract->moxy_contract_id);            }            $contract->hold = 0;            $contract->save();            LogAction::add("Data Adjustment", "Cancellation Identified.", 0, "", $contract->moxy_contract_id);                                          }    }    $contract->cancel_miles = !empty($data['cancel_miles']) ? $data['cancel_miles'] : 0;    $contract->cancel_reason = !empty($data['cancel_reason']) ? $data['cancel_reason'] : NULL;    $contract->save();}
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

正如评论中提到的,您可以使用Session helper 来记住日志是否已经生成,以避免垃圾邮件发送您的日志。


<?php


if(empty(session('Cancellation_identified')) || session('Cancellation_identified') !== $contract->moxy_contract_id){

    session(['Cancellation_identified' => $contract->moxy_contract_id]);

    LogAction::add("Data Adjustment", "Cancellation Identified.", 0, "", $contract->moxy_contract_id);         

以上将检查Cancellation_identified会话中是否存在。如果没有,它会创建一个日志条目并将Cancellation_identified带有其各自 ID的密钥添加到会话中。在其他2情况下,您可以进行相同的检查。


请注意,这对于多个 HTTP 请求也很有用,$contract->moxy_contract_id因为每个请求很可能会有所不同。上面的代码也会处理这个问题,因为我们也在检查 ID 是否相等。


查看完整回答
反对 回复 2021-11-05
  • 1 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信