Javascript 将变量从一页传递到下一页

Javascript 将变量从一页传递到下一页,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在开发一个问答网站,在这个网站上,一个用户在一个页面上呈现五个谜题,当他尝试在页面上提问时,使用JavaScript计算分数。分数保存在Javascript变量score中。我有一个这样的寻呼系统: 现在,当用户单击3时,我想将变量score发送到下一页,在每个这样的页面上,我都有require scoreUpdateInDatabase.php,这样上一页的分数将永久保存到数据库中,下面的php脚本将向他提出接下来的5个问题 如何安全地传递该分数变量?我无法使用GET,因为用户将修改它。

我正在开发一个问答网站,在这个网站上,一个用户在一个页面上呈现五个谜题,当他尝试在页面上提问时,使用JavaScript计算分数。分数保存在Javascript变量
score
中。我有一个这样的寻呼系统:

现在,当用户单击3时,我想将变量
score
发送到下一页,在每个这样的页面上,我都有
require scoreUpdateInDatabase.php
,这样上一页的分数将永久保存到数据库中,下面的php脚本将向他提出接下来的5个问题

如何安全地传递该
分数
变量?我无法使用
GET
,因为用户将修改它。我对
POST
感到满意,如果可以使用它,即使
POST
数据可以修改,但我只需要最低限度的安全性


p.S.请不要建议打AJAX电话,因为我会在一边发送
分数
,然后在返回时提出接下来的5个问题。我不想使用AJAX来刷新内容,因为它是。

将其保存在会话中。POST在这种情况下同样有效,但我更喜欢将其存储在会话中。

唯一安全的方法是使用
POST
或AJAX将实际答案传递给服务器,同时在服务器端计算分数,并将其保存在
会话
变量中


更多关于

的信息,但是它不会对SEO友好(帖子和会话对SEO不友好,但您应该使用它们,继续阅读)

我们在谈论一场比赛。没有人希望搜索引擎索引游戏的最后一页。。。因为每个人都可以在谷歌上搜索(比如)游戏的最后一页,而无需玩游戏

你必须使用ajax或post,但不要让谷歌索引你游戏的每一页。这是胡说八道


只有游戏的第一页应该被索引。

最简单的解决方案是基于cookie的。将值写入会话cookie并读取它


你可以用。如果需要,它还提供了要求https的选项。

尝试查看Jquery-您应该能够将值返回到服务器脚本语言(当您将PHP列为标记时,我假设您正在使用PHP)。通过使用Jquery,您可以在将表单提交到下一页之前将javascript变量获取到表单中

假设您已经使用PHP生成了要提交的表单,而不是使用javascript创建表单。我将使用Jquery-获取这个文件()并
包含(“Jquery.js”)等。。。在PHP脚本中使用


然后,我将javascript变量转换为php变量,并将其分配给表单中的隐藏字段,以便使用
$\u POST[]提交到下一页
variable.

为什么不使用AJAX保存分数并在下一页上获取?javascript在客户端运行,因此您无法保护该变量。您可以将其保存在cookie中,然后在下一页阅读cookie,但它并不安全。您所说的安全方式究竟是什么意思?您可以使用下面提到的POST/session,在将值传递到数据库之前检查值,因此它们必须>=1&&@reyanar:问题是我何时进行AJAX调用。对我来说,最好是对页面上的最终分数进行AJAX请求,而不是进行5次AJAX调用,1每个问题。因此我尝试在卸载之前进行异步AJAX调用
onbeforeunload
,但有时会错过
AJAX
调用,并在更新之前加载下一页。因此,我进行了调用
async:false
,但这会使浏览器挂起一秒钟。因此,我放弃了这一想法approach@WigglerJtag:用户已注册。令牌实际上是什么?请您详细说明。我想要防止机器人欺骗评分标准。注意:是的,我也想这样做,但如何做到?会话变量只能使用
PHP
存储,为此,我需要以某种方式将
score
变量传递到下一个
PHP
页面。因此,我在同一点上再次被击中。如果我丢失了,你能建议一些方法吗。@疯狂的程序员:我认为现在正是把你送到…:-)的时候@内森:我已经知道基本的东西了。我想你没有理解我的意思。:
+1
。这似乎是一个很好的解决方案。此外,正如你所建议的,我可以使用表单。但有一件事我很困惑,那就是如果我使用say
onclick=myform.submit()
那么我不会错过GET参数吗?比如link
1
我有url
www.mydomain.com/puzzles.php?start=001
老实说,我不是javascript“神童”,我只知道可以使用php表单提交通过使用jquery获得的值。(正如我所做的一样,通过使用
.hide
.show
,下拉框可以动态更改表单中的内容)。如果是我在做你所描述的事情,我会使用php将表单内容作为“标准”html表单提交,然后在使用
$score
之前,验证他们是否在下一页上得到了正确答案。它会简单得多,并且完全消除了对javascript的需求。