php - Laravel - 如何通过发送短信来调整奇怪行为的问题
问题描述
我有一个非常特殊的问题,我不知道如何处理它。
我在 Laravel 中有网络应用程序,当我打开index
页面时,我的手机会收到短信。问题是,有时我会收到 2 条消息或 3 条消息,有时会收到 1 条消息。是否有工具可以调试这种并不总是相同的奇怪行为?
关于我的代码的几句话:用户打开页面,因为它的第一次访问Session
没有属性message_sent
并被SendTextMessage::SendMessage($phoneNumber, $id_message, $smsCode, $newDateFormat);
执行。之后Session
已经message_sent
并且不能再次发送,例如如果我刷新页面。
SendTextMessage::SendMessage()
是 Laravel Helpers 中的类。
controller code
:
public function index($url_attribute, $id_message, Request $request)
{
if(!Session::has('message_sent'))
{
$user = User::where('id_message', $id_message)->first()->toArray();
$phoneNumber = $user['mobile_phone'];
$smsCode = $user['sms_code'];
$newDateFormat = date("d.m.yy", strtotime($smsExpirationTime));
$request->session()->flash('message', 'Text message sended.' );
SendTextMessage::SendMessage($phoneNumber,$id_message, $smsCode, $newDateFormat);
Session::put('message_sent', true);
}
return view('login');
}
SendTextMessage Class
:
class SendTextMessage
{
public static function SendMessage($phoneNumber, $id_message, $smsCode, $newDateFormat)
{
$sms = new Connect();
$sms->Create("user","pass",Connect::AUTH_PLAIN);
$sms->Send_SMS($phoneNumber,"Message");
$sms->Logout();
}
}
非常感谢任何提示或帮助。
更新:
问题仅在 Chrome 中。Edge 和 Internet Explorer 都很好。
解决方案
由于此脚本在服务器端运行,因此浏览器应该不是问题。根据您提供的代码,这里没有明确的答案。
请尝试以下操作以调试您的问题:
在脚本的每个阶段记录消息,以便查看调用频率的部分。这将帮助您找到问题所在。你可以用它
\Log::error("Message")
来做到这一点。一旦您知道问题可能出在哪里,请尝试将“决策”制定/任务关键变量也记录到 logile 中。例如
\Log::error($session)
,这样您就可以理解为什么会发生该问题。一个原因可能是您配置了错误的会话缓存,或者您的 cookie 可能被弄乱了。在某些时候,可能有一段数据不是您期望的那样。
推荐阅读
- javascript - 在 replaceData 之后,React-tabulator 失去滚动/选择
- html - MindTap by Cengage Learning “HTML/ CSS” 教科书 GitHub 集成
- progressive-web-apps - php 脚本中标头重定向的 Service Worker 配置
- azure - 从 Azure AD B2B 验证令牌颁发者
- javascript - 从 select2 multiple 中获取值,然后显示警报 javascript
- reactjs - react.js中如何将三个firebase集合中的数据提取到一个表中
- apache-kafka - 不断变化的 Kafka 注册表模式
- jquery - 在 $each 函数中操作元素的文本
- html - 覆盖两个图像并在一个 div 中居中,仅 CSS
- python - 使用 Dask 读取单个大型压缩 csv(内存太大)