我正在使用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')
一样获取这些变量感谢大家的帮助。一定要喜欢这个网站
答案 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)