如果在第二页中更改输入,则在一页中显示警报

时间:2019-05-17 13:06:55

标签: php jquery

我有这种情况:

我在php / jquery中有一个网络应用。

页面被顶部的水平标题(带有主菜单和Company开关)和主要内容分隔。

通过Company开关,我可以由公司进行实际的“登录”操作,使用php在每个打开的页面上将我的ID保存在$_SESSION['company_ID']中。

例如,我有:

  • 拥有ID = 1的第一公司
  • 第二公司有ID = 2

提交表单时,我将保存表单中的所有数据,还将company_ID保存在数据库中,并从$_SESSION['company_ID']中读取值

问题是我在同一浏览器上打开2个网页:

  1. 打开第一页,并以ID = 1登录
  2. 在同一浏览器上打开第二个页面,并将公司更改为ID = 2的Company Two
  3. 返回第一个已经打开的页面并提交表格。如果我要提交,则我的$ _SESSION ['company_ID']错误,是因为我在第一页之后打开了第二页,并且切换了公司。在这种情况下,我得到的是ID = 2(错误),而不是ID = 1。

我的问题是:是否可以发送JavaScript alert("Attention: ID changed, don't submit the form") 当我将注意力集中在第一页上以防止出现此问题时?是否可以将“触发器”从一页发送到另一页?还是有更好的方法来防止此问题?

1 个答案:

答案 0 :(得分:2)

我能想到的最简单的方法是使用隐藏的输入。

加载表单时,请包含以下内容:

<input type="hidden" name="company_id" value="1" />

然后在提交时,检查$_SESSION['company_id']是否与$_POST['company_id']匹配,如果不匹配,则返回错误并且不要将表单数据提交到数据库。