php - 使用 PHP 延迟表单处理
问题描述
当用户点击“提交”时会发生很多表单处理,因此需要很长时间才能将它们发送到感谢页面。
我正在尝试找到一种延迟表单处理的方法。因此,我立即将它们发送到感谢页面,然后再进行所有表单处理。
我现在看到的唯一方法是将所有数据放入 $_POST(下面的示例)并使用 cURL 发送。但这是最好的方法吗?是否没有内置的 PHP 函数来执行此操作?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/form_processor.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(array('postvar1' => 'value1')));
// Receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
解决方案
解决这个问题的一种方法是有一个队列系统
- 用户提交表单
- 过帐值保存在数据库表中
- 用户获得感谢页面
- 设置了一个 cron 来运行 PHP 脚本
- 此 PHP 脚本运行数据库中任何未处理的行
- PHP 脚本使用保存在数据库中的发布值来处理表单
- PHP 更新行以将它们标记为已处理
这是非常可扩展的,让您可以控制何时以及如何处理表单,以及记录和回复表单处理以调试错误。
推荐阅读
- javascript - Backbone JS 按钮打开一个新视图,保存表单中的值
- .net - 无法在 IIS 上部署
- mne-python - 如何使用 python-MNE 获取没有事件和纪元的静止状态 MEG 数据
- android - 无法为 Android 构建 ffmpeg
- r - 如何在 c() 函数中使用连接的字符串作为名称
- android - 仅显示 5 个按钮的 ScrollView
- c# - 如何在不使用动画师的情况下获得实际的动画播放位置?
- python-3.x - 如何将索引列表的值存储在全局变量中并通过格式化函数调用它?
- r - 使用 ifelse() 识别数据中不一致的响应
- arguments - Graphql字段中的多个参数