php - 使用 Ajax + JQuery + MySql + PHP 保存进度表单

标签 php jquery mysql ajax forms

我想知道设置关注的最佳方法。

我有一个动态表单,一旦用户完成添加数据,该表单可能会变得很长。我希望设置一个后台进程,将它们所拥有的数据保存到数据库中。

我设置的是一个 settimer 函数,它会检查问题是否处于已保存状态,如果没有,则将其添加到要保存的问题列表中。然后它会触发一个 ajax 调用,该调用使用 php 发布到我的数据库。第一次发生这种情况时,ajax 将返回提交的 id,以便表单知道将这些内容发布到哪里。

第二次运行设置计时器函数时,它会传递此 ID。

我最大的问题是我不想让用户知道表 ID。我只是想有人可以搞乱 JavaScript 并很容易地将他们的结果提交给其他 ID。

我只是想知道是否有更好的方法来实现这一目标?或者甚至一些例子?

谢谢

最佳答案

一般来说,您应该将服务器端的 ID 保存在 $_SESSION 变量中,并且永远不要让它接近客户端。或者,表单可能包含足够的可识别信息,以便能够根据某些 UNIQUE 索引确定相关记录。

但是,如果您愿意,您还可以添加一些加密身份验证来证明 ID 未被用户更改。例如,除了 ID 本身之外,还向客户端返回 ID 与某些 secret 连接的安全哈希值;当客户端将 ID 和该哈希值发回您的服务器时,您可以与重新计算的哈希值进行比较,以检查是否只有知道该 secret 的人(即您)才能向客户端提供该 ID。

为了击败更复杂的攻击,您可能需要添加一些盐:

$salt = some_random_string();
$hash = md5( md5($secret) . md5($id) . md5($salt) )

然后向客户端发送哈希值、ID盐;所有这三个内容都会返回给您进行验证。

关于php - 使用 Ajax + JQuery + MySql + PHP 保存进度表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581670/

相关文章:

php - 文件时间的 Cron 作业错误

php - JetBrains (PhpStorm) IDE 特定单词的配色方案规则

PHP-MYSQLI : dynamically select attributes from db and display in dropdown issues

jquery - 将 jQuery 函数应用于单独出现的元素

javascript - 使用 Javascript 删除 html 换行符

php - 每次加载页面时更改元素的位置

javascript - jQuery 不工作

mysql - 如何内部连接我的 calendar_table 以获取完整的日历日期范围+来自 other_table 的查询结果

c# - 我可以使用 C# 在插入语句中调用该函数吗

phpmyadmin token 不匹配