2012-11-08 38 views
0

我向用户发送电子邮件。在这封电子邮件中,他们必须点击一个链接,将他们带到我的网站的登录页面:
www.testsite.com/登录根据在电子邮件中点击的链接预先填充用户名

我想为他们预先填充用户名(电子邮件地址)。

我想简单地调整发送给他们的链接,包括它像这样:
www.testsite/[email protected]

我就可以使用JavaScript来拉这个信息并将其放置在表单字段中。

我想人们认为这种方法。
安全吗?有没有更好或更简单的方法来实现它?这种方法有什么问题吗?

我的应用程序顺便使用了grails 1.3.7。

感谢

+0

Cookie是一个安全得多..否则会话..为什么你想要显示它在查询字符串 –

+2

而不是使用javascript预填充输入,为什么不做服务器端? – Salketer

+1

绝对服务器端。如果您可以向他们发送电子邮件,那么您可以生成某种唯一的ID。将该ID放在查询字符串中,然后查看该id,然后将该电子邮件以服务器的形式放入。 – Hardrada

回答

0

虽然它很可能是更好的预先填充它在服务器端,这里是another answer堆栈溢出修改:

function getEmailFromUrl(){ 
    var regexS = "[\\?#&]email=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.search); 
    if(results == null) return ""; 
    else return decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

然后,使用的是结果函数来填充文本框:

document.getElementById('email_address').value=getEmailFromUrl(); 

希望这会有所帮助。

+0

对于那些想知道'decodeURIComponent'来自哪里的人来说,它实际上是一个原生的JavaScript函数。见http://www.w3schools.com/jsref/jsref_decodeuricomponent.asp。 –

相关问题