几天前没有人回答这个问题,所以我将尝试以不同的方式解释它。这让我无法在我的项目中工作。
在 PHP 中,您可以在 $_SESSION 上存储反馈消息,例如 $_SESSION['login'] = "failed",可以在重定向后向用户报告。这些被称为闪存消息。问题是 PHP 不知道哪个 flash 消息属于哪个浏览器 TAB。这是一个例子:
- 用户在两个选项卡上访问 website.com/UploadPhoto,并在每个选项卡上选择一张要上传的照片。他几乎同时点击了发送。
- 第一张照片通过表单处理,并成功上传。Flash 消息保存为“成功!”,并且重定向开始返回 website.com/myPhotos/,因此用户可以上传更多照片并看到显示的成功 Flash 消息 - 但这里有一个问题,用户是随机选择的一个广告,他需要 10 秒才能被重定向到他的照片页面。
第二张图片现在正在由一个表单处理,但它有一个错误,并收到“错误:文件太大”的闪烁消息,并且重定向也继续返回到 website.com/UploadPhoto。
现在发生的情况是,在第一张之后上传的第二张图片首先被重定向并显示一条消息:成功!它劫持了第一个消息,因为它被更快地重定向。然后,在 10 Ad 秒之后,图像 1 案例被重定向,并显示消息“文件太大”,因为它稍后到达。
你怎么能防止这种情况发生?我真的希望有人能给我一些见解,因为我因此被困在我的项目中