Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/Javascript将消息传递到另一个页面_Javascript_Html_Message Passing - Fatal编程技术网

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

PHP/Javascript将消息传递到另一个页面,javascript,html,message-passing,Javascript,Html,Message Passing,让我解释一下: 我基本上希望这样,当你发表评论时,(我使用js/jquery脚本将字符串发送到insert.php,插入到数据库中),你会得到2+分。现在我已经这样做了,你得到+2分,但我想显示一个类似stackoverflow的消息。我已经知道如何显示stackoverflow这样的消息,但在某种程度上,我需要从insert.php(插入后)发送以下消息: 正如我所说的,你激活脚本的方法是: <script type="text/javascript" language="javascr

让我解释一下:

我基本上希望这样,当你发表评论时,(我使用js/jquery脚本将字符串发送到insert.php,插入到数据库中),你会得到2+分。现在我已经这样做了,你得到+2分,但我想显示一个类似stackoverflow的消息。我已经知道如何显示stackoverflow这样的消息,但在某种程度上,我需要从insert.php(插入后)发送以下消息:

正如我所说的,你激活脚本的方法是:

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

showmessage();
成功插入数据库并给用户打分后? 我刚刚测试过这个,但我无法让它工作。 我的站点与phpBB登录(phpBB论坛)的会话集成在一起,所以我认为我不能使用$\u会话。 然后在一个框架中打开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,则可能会在选项卡B中显示针对选项卡A的消息

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

// 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
这是非常优雅的,因为

  • 要显示的消息仍保留在内部会话存储中,并且在任何时候都不会在浏览器中传递,从而降低了安全漏洞等风险

  • 通过取消设置session变量,可以确保即使用户重新加载页面,消息也只显示一次


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

一种方法是存储将在用户会话的下一页上显示的消息:

// 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,则可能会在选项卡B中显示针对选项卡A的消息

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

// 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
这是非常优雅的,因为

  • 要显示的消息仍保留在内部会话存储中,并且在任何时候都不会在浏览器中传递,从而降低了安全漏洞等风险

  • 通过取消设置session变量,可以确保即使用户重新加载页面,消息也只显示一次


如果需要显示mesage的页面正在打开insert.php,则可以使用window.opener访问原始页面。我认为这样做可能会奏效:

window.opener.$(“#message”).html($(“#box”).html()).fadeIn(“慢”)


如果需要显示mesage的页面正在打开insert.php,则可以使用window.opener访问原始页面。我认为这样做可能会奏效:

window.opener.$(“#message”).html($(“#box”).html()).fadeIn(“慢”)


我不确定我是否理解正确,但是如果用户在index.php上的字段中输入,那么您可能可以将其发送到insert.php并发出ajax请求,然后使用ajax的回调向用户显示通知?

我不确定我是否理解正确,但是如果用户在index.php上的字段中输入,然后,您可以通过ajax请求将其发送到insert.php,并使用ajax的回调向用户显示通知?

您可以使用stack overflow平台-我不想创建一个完整的stackoverflow社区!阅读问题。谢谢..为赏金干杯,但是你没有得到一个好的答案,是吗?:)如果您使用评论讨论中获得的所有信息重新打开一个问题,请告诉我,我会看一看。这绝对是可以解决的,只是有点偏离了轨道,因为一开始需求并不完全清楚。@Pekka没关系,我使用会话解决了这个问题:在insert.php上保存变量,然后激活一个脚本,检查变量是否已保存..(检查我制作的session.php,检查是否已设置),这很有效,所以我想我想给你奖金,因为你在这个问题上帮了大忙..你可以使用stack overflow平台-我不想做一个完整的stackoverflow社区!阅读问题。谢谢..为赏金干杯,但是你没有得到一个好的答案,是吗?:)如果您使用评论讨论中获得的所有信息重新打开一个问题,请告诉我,我会看一看。这绝对是可以解决的,只是有点偏离了轨道,因为一开始需求并不完全清楚。@Pekka没关系,我使用会话解决了这个问题:在insert.php上保存变量,然后激活一个脚本,检查变量是否已保存..(检查我制作的session.php,检查是否已设置),这很有效,所以我想我想把赏金给你,因为你在这个问题上帮了大忙..嗨。这个方法看起来……好吧,我现在就测试一下,但我有一个问题。我希望当您单击insert时,它显示在index.php中。。我知道我可以在index.php中创建一个以m为单位的部分