我正在编写一个JavaScript函数,该函数需要维护三个属性:
- be very small and lightweight - no external libraries
- encode a string in such a way as to be able to be passed as a GET parameter
- this string must be decoded again at its destination
实际上,它通过将用户的用户名和密码发送到PHP页面来验证用户。这是通过GET完成的,因为我还没有找到后台跨域POST请求的方法。问题是,如果用户的密码中有#或类似的字符,则无法正确发送。
目前为了避免这种情况,我<code>encode()</code>在发送密码字符串之前先发送密码字符串,这样就可以毫无问题地接收密码。然而,我读到PHP的urldecode()
并不是一个完美的模拟,因为有些角落的情况会有不同的处理(即+等)。遗憾的是,我再也找不到这份文件了,所以我不能引用它,但要点是其中一个将空格转换为+号,另一个将其视为实际的加号或类似的东西。。。
因此,我正在寻找一个Javascript函数,它可以获取字符串并使其URL安全,并且在PHP中具有完美的反转功能,以便可以恢复原始字符串。
我目前用来实现这一点的代码可能很糟糕:
login.onsubmit = function(){
loginFailMsg.style.display = none ;
var inputs = login.getElementsByTagName( input );
var formdata =
username= +inputs[0].value+ &password= +encode(inputs[1].value);
submit.src = formtarget+ /auth/bklt? +formdata;
userinfo = undefined;
setTimeout(getUserinfo,300);
return false;
};