PHP/Javascript 将消息传递到另一个页面

2023-12-13

那么让我解释一下:

我基本上希望当您发表评论时(我使用 js/jquery 脚本将字符串发送到 insert.php 并插入数据库)您将收到 2+ 积分。现在我已经完成了,所以你得到了+2分,但我想显示一条像stackoverflow这样的消息。我已经知道如何显示像 stackoverflow 这样的消息,但不知何故我需要从 insert.php 发送(插入后),如下:

<div id='message' onclick="closeNotice()" style="display: none;">
Hey, <b><? echo $pusername; ?></b> - You've just got +<? echo $gpm; ?> points for your comment!
<a href="#" class="close-notify" onclick="closeNotice()">X</a>
</div>

到index.php..

我正在考虑也许编码到我当前的脚本(正在发送字符串到 insert.php)中,它应该找到#message并将其扔进#box(在index.php中称为“box”的div)。

但我该怎么做呢?如果我喜欢的话,在完成 insert.php 之后,您可以激活 javascript 中的一个函数,该函数执行以下操作:

function showmessage()  { 
    $("#box").html(data).find("#message").fadeIn("slow")
}

正如我所说,您激活脚本执行以下操作:

<script type="text/javascript" language="javascript">
showmessage();
</script>

在您成功插入数据库并向用户提供积分后? 我刚刚测试过这个,但无法让它工作。 我的网站与 phpBB 登录的会话集成(我有 phpBB 论坛),所以我认为我不能使用 $_SESSION。 insert.php 在框架中打开。 我的问题是操作和确认显示发生在不同的页面上。


如果我理解正确的话,你的问题是操作和确认的显示发生在不同的页面上。

执行此操作的一种方法是存储要在用户会话的下一页上显示的消息:

// insert.php
$_SESSION["user_message"] = "You were awarded +2 points.";

并输出到如下页面:

// thankyou.php
echo $_SESSION["user_message"]; // Or show the box, or whatever
$_SESSION["user_message"] = null; // Clean up

这样做的潜在缺点是,如果用户打开了网站的两个或更多页面/选项卡,并在它们之间进行了多次导航,则该消息可能会出现在错误的上下文中。例如,如果我在选项卡 A 中单击“保存”,然后刷新选项卡 B,则可能会出现选项卡 A 的消息显示在选项卡 B 中的情况。

您可以通过向消息的变量名称添加随机生成的密钥,并将该密钥传递到要显示消息的页面来帮助实现这一点:

// insert.php
$key = "123456"; // Insert random generation method here, e.g. using rand()
$_SESSION["user_message_$key"] = "You were awarded +2 points.";
header ("Location: thankyou.php?message=$key"); // Pass the key to the next page

// thankyou.php
$key = $_GET["message"]; // No sanitation necessary here AFAICS
echo $_SESSION["user_message_$key"]; // Or show the box, or whatever
$_SESSION["user_message_$key"] = null; // Clean up

这非常优雅,因为

  • 您想要显示的消息保留在内部会话存储中,并且绝不会在浏览器中传递,从而降低了安全漏洞等风险。

  • 通过取消设置会话变量,您可以确保该消息仅显示一次,即使用户重新加载页面也是如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP/Javascript 将消息传递到另一个页面 的相关文章

随机推荐

  • 如何在Qt中的QTimeEdit中读取当前时间?

    如何读取用户设置的当前小时和分钟QTimeEdit在 Qt 中 以及如何在QDateTime 读取当前日 月 年 分钟和小时 Use time and date 方法 const int hour timeEdit gt time hour
  • C# directx 精灵起源

    当我的精灵旋转原点固定在窗口的左上角时 与精灵绘制 and 精灵 Draw2D 不管怎样 如果我改变旋转中心 它仍然在左上角 我需要精灵绕其 Z 轴旋转 Edit 我已经尝试过这个 hereMatrix pm Matrix Translat
  • 如何在 iOS 中计算对数? [复制]

    这个问题在这里已经有答案了 我想在 iOS 中计算对数 Objective C 可以做到这一点吗 您可以使用C 函数用于计算对数 import
  • 语音识别 Android 应用程序

    我正在制作一个应用程序 它接受用户的命令并实时写入 我最好的选择是什么 像 sphinx 这样的第三方软件还是应该使用内置的 android 语音识别 其次 我希望它能够实时写入 就像我说话时它就开始写入一样 您应该使用内置的 Androi
  • 函数 simplexml_load_string() 上的 XML_PARSE_HUGE

    常数XML PARSE HUGE可以作为第三个参数传递给simplexml load string 根据php net这个标志 放宽解析器的任何硬编码限制 什么是 解析器的默认硬编码限制 我认为放松也有点含糊 它是否消除或增加了 硬编码限制
  • 按钮中的图像 - j2me

    我正在尝试使用 J2ME 构建一个简单的基于菜单的 GUI 菜单项当前是从 Button 类派生的类的对象 有什么办法我可以 替换按钮中的文本并显示图像 类似图标 使文本和图像并排显示在同一菜单栏上 如果我的问题不清楚 请告诉我 我会编辑它
  • 如何使用 PyEnchant 更正文本并自动返回更正后的文本

    import enchant import wx from enchant checker import SpellChecker from enchant checker wxSpellCheckerDialog import wxSpe
  • 我可以对 byte[] 执行按位运算吗?

    假设我有 byte data new byte 1 212 29 144 我能够弄清楚执行按位 AND 的唯一方法是首先将 byte 转换为 uint if BitConverter ToUInt32 data 0 0x7 1 If the
  • Wpf 数据网格最大行数

    我目前正在使用数据网格 我只想允许用户在将 CanUserAddRows 设置为 false 之前输入最多 20 行数据 我在自己的数据网格上创建了 一个依赖属性 源自原始数据网格 我尝试使用该事件 ItemContainerGenerat
  • Pygame:让物体移动速度慢于 1 [重复]

    这个问题在这里已经有答案了 我制作了一个类似太空入侵者的小游戏 一切都很好 除了我觉得我编程的敌人移动得太快了 如果我将它们的移动速度设置为低于 1 例如 0 5 它们甚至不会移动 有什么办法可以让动作变得更慢吗 这是我的敌方单位的代码 i
  • R CMD 检查和 .RDa 数据文件

    我在 data 子目录下有 RDa 格式的数据文件 但是 R CMD check命令无法识别load test RDa 命令及其在此阶段失败并给出以下错误 Warning in readChar con 5L useBytes TRUE c
  • SDL_DisplayFormat 未在此范围内声明:使用 SDL2

    编译器不会返回丢失的 SDL h 而是返回 SDL DisplayFormat 未在位于不同标头的类成员函数的范围内声明 即使我已在 main 中对其进行了初始化 SDL Surface SpriteLoad Load char File
  • gemice_cube 用于重复事件

    我有简单的事件模型 标题 日期 用户 我按月创建了事件日历 gem watu table builder 我需要创建重复事件的功能 我发现我可以使用 gemice cube 来实现它 但我不清楚 我添加到模型 class Event lt
  • SQL 最后 X 条记录的总和

    我已经找了一段时间 但找不到这个问题的答案 也许我没有搜索正确的术语或其他东西 基本上 我有一个数据库 每个日期有任意数量的条目 我需要计算包含条目的最后 X 天的总和 忽略没有条目的日子 我知道如何找到每天的总和 假设我有一个名为 Yie
  • Mysql 距离内查询

    Options lat 25 7742658 lng 80 1936589 miles 30 Query SELECT 3959 acos cos radians lat cos radians lat cos radians lng ra
  • 在gdb中包含malloc.c的源代码吗?

    我如何包含 查看源代码malloc in gdb 我想一步步执行gdb 并步入malloc c调用任何 malloc 函数时的源代码 目前 gdb 所说的是 malloc c No such file or directory This这里
  • uint8_t 乘以布尔值是什么类型?

    来自standard 我试图了解表达式最终会成为哪种类型 bool myBool uint8 t 255 myBool 我保证吗myBool将被投射到uint8 t 又名unsigned char 或者整个结果可能是int 有用的链接 布尔
  • 为什么 git lfs migrate 不跟踪所有 pdf 文件?

    提前备注 git lfs migrate import include pdf 做的工作是git lfs ls files shows e6521dbea0 large180m pdf 我猜 但我还是不明白发生了什么 我需要使用git lf
  • 谷歌身份验证后,即将到来的网址不允许我在科尔多瓦应用程序中进一步前进

    您好 我正在使用 Visual Studio 2015 社区使用 Cordova 应用程序 只需使用 google 身份验证登录应用程序 通过在新窗口中打开它就可以很好地登录 但登录后它会给我三个弹出消息 而不是执行任何操作 这些消息是 在
  • PHP/Javascript 将消息传递到另一个页面

    那么让我解释一下 我基本上希望当您发表评论时 我使用 js jquery 脚本将字符串发送到 insert php 并插入数据库 您将收到 2 积分 现在我已经完成了 所以你得到了 2分 但我想显示一条像stackoverflow这样的消息