1

我的页面上有一个表单元素,如下所示:

<form id="form1" action="email.php" method="post">
//some input textbox and a submit button
</form>

表单将信息发送到另一个文件中的 email.php。发送电子邮件后,我想向用户显示成功消息。向用户显示成功消息的最佳方式是什么。使用 cookie 可能是用户浏览器禁用。如果我使用会话。例如,当 10000 个用户想要发送电子邮件时,它会占用巨大的 RAM 空间。URL 不安全>>....什么是最好的方法。另外我不想使用ajax

4

1 回答 1

2

这是我的意见:

会议>>

您在会话中存储的所有数据都将存储在服务器上。默认位置是磁盘。IO - 是一种非常有限的资源。不要在不需要时开始会话。不要在不需要时将数据存储在会话中。

如果您有许多使用会话变量的 PHP 脚本,请考虑使用会话的共享内存模块重新编译 PHP,或使用 RAM 磁盘。使用“configure -–with-mm”启用此功能,然后重新编译 PHP,并在 php.ini 中设置 session.save_handler=mm。

为新页面提供一些 GET 参数。>>

这是一种很好的做法,但有一个不足之处。如果客户将链接存储在他的收藏夹中(等等......)将其提供给另一个用户并且稍后他打开此链接,那么他将看到成功消息。

提供比 Location 标题更多的内容并在目标页面上阅读它们。>>

这是一个很好的方法,但它取决于应用程序和客户端中间的服务器配置和代理。有时服务器配置(代理)会杀死非标准标头。但通常这不是问题。

将此数据存储在 cookie 中。>>

缺乏:

不要忘记删除 cookie。存储在 cookie 中的所有数据都将从您的服务器传输到客户端并返回。将此数据存储在服务器上。

存储在数据库>>、memcache、NoSQL 等中。如果这不会在服务器上产生额外的负载并且非常适合您的应用程序,为什么不呢?而且您不一定需要存储消息本身,而只需要存储状态标志。

在实践中,我使用所有这些方法。目前应该使用哪种方法 - 查看应用程序的要求及其未来使用。

于 2013-11-07T16:11:03.933 回答