在 Javascript 中,我有一个函数可以从 PHP GET 变量创建哈希值。例如,
<script type="text/javascript">
function getHash{
...
}
var answer = "<?php echo $_GET["answer"];?>";
document.write(getHash(answer));
</script>
现在,这会将哈希值输出到页面。有没有办法将此哈希值保存到服务器上的文件中?
最佳答案
您可以通过 ajax 请求来做到这一点。如果您没有使用 JQuery,我发送 ajax 请求的代码附在下面:
function getRequestObject(){
var o = null;
if(window.XMLHttpRequest){
o = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
o = new ActiveXObject('Msxml2.XMLHTTP');
}catch(e1){
try{
o = new ActiveXObject('Microsoft.XMLHTTP');
}catch(e2){
}
}
}
return o;
}
function request(method, adress,sendData,callback){
var o = getRequestObject();
var async = (callback!==null);
if(method === 'GET'){
if(sendData!=null){adress+="?"+sendData;}
o.open(method, adress, async);
o.send(null);
}else if(method === 'POST'){
o.open(method, adress, async);
o.setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded');
o.send(sendData);
}
if(async){
o.onreadystatechange = function (){
if(o.readyState==4&&o.status==200){
callback(o.responseText);
}else if(o.readyState==4&&o.status!=200){
//Error
}
};
}
if(async){return ;}
else{return o.responseText;}
}
只有当函数 getHash 使用可变用户输入时,您尝试执行的操作才有意义。如果情况并非如此,并且计算哈希值的所有信息都可以在服务器上获得,则您应该直接在服务器上计算哈希值。另请注意,用户可以操纵哈希值(如果它是由 javascript 发送且不是在服务器上计算的)。
您还可以将哈希值保存在服务器上的 session 变量中。
关于javascript - 将 Javascript 从 PHP 变量保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29043657/