如何使用Javascript获取URL变量

时间:2013-02-28 10:29:32

标签: php javascript redirect login

我正在使用PHP,mySQL和Javascript编写登录系统。我的网站实际上是一个用javascript编写的1页应用程序 - 只有1个html页面。所有交互和导航都是通过javascript完成的。​​

当用户注册时,我在数据库中使用激活列中的32位数字键创建记录。我通过电子邮件将此邮件作为激活链接发送给注册人。这将他们带到一个激活他们帐户的php文件(如果有错误,则不会)。一切都很好。

激活(或错误)后,我可以将它们带到一个html页面(例如标题('somesite.com/success.html')告诉他们他们的帐户是否被激活,但我更愿意将他们带回我的1页javascript网站中的特定功能。我该怎么做?

我可以带他们到网站但是如何从我的php重定向到网站传递消息,以便它知道是否显示成功或错误消息?

我是否将其放入重定向的网址中,例如http://somesite.com?activation=success?如果是这样,我如何将此变量放入我的javascript中?

我可以从php激活脚本中设置会话变量,并在我的代码中检查它,但这看起来非常笨拙。

我可以在URL中设置哈希并在代码中选择它,但如果可以,我会避免哈希导航。关于实现这个方法的任何想法?

以下帮助和网站其他地方的最终答案:

function getURLParameter(name) {
return decodeURIComponent(
    (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}

然后重新定位注册,例如somesite.com?email=somebody%40else@somewhere.com&key=7da93f78cb4942555863c161f50f258d

我可以像getURLParameter('email')和getURLParameter('key')

一样获取这些变量

感谢大家的帮助。一定要喜欢这个网站

3 个答案:

答案 0 :(得分:1)

因为您的单页应用程序中包含所有内容,您也可以将其用于激活 - 将激活链接转到http://homesite.com?activation=<32characterkey>,当您的应用程序检测到GET参数时,使用AJAX调用PHP激活,并通知用户结果。

答案 1 :(得分:1)

您可以使用Javascript从网址获取变量:

我实际上问过一个类似的问题(我找不到)关于用Javascript获取URL变量,有人非常有帮助地给了我这个功能:

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {vars[key] = value});
    return vars;
}

所以要获得一个名为'activation'的GET变量,你可以简单地调用这个函数:

getUrlVars()['activation']

答案 2 :(得分:0)

您应该使用AJAX登录并在AJAX成功/错误回调中调用您的函数。

您可以使用jQuery $.ajax()函数

轻松完成此操作

http://api.jquery.com/jQuery.ajax/