繁体   English   中英

用于Javascript和PHP的此类数据有什么问题

[英]What is the Problem with this kind of Data for Javascript and PHP

我有一个Html表,该表包含通过服务器端php生成的数据。它包含许多行。每行包含一个称为“批准”的按钮。 当单击“批准”时,它将转到一个php文件并执行其数据库事务处理

这是我在php中“批准按钮”的代码

$cntrl = "<input name=btn1  type=button  id=btn1  value=Approve  onClick=\"callApprove('".$row['val1']."','".$row['val2']."');\"";

这是单击“批准”时调用的JS函数。

function  callApprove(val1,val2){
 var url = 'approve.php?id=<?php echo $_REQUEST['var3'];?>&param1='+val1+'&param2='+val2;
window.open(url)
}

现在,这里的问题是当我将数据作为“ ABC6252756 / A#1829533”时。当我将这种数据val2传递给approve.php时,就像当我们拥有这种数据“ ABC07-USVDL2”时一样值已成功传递。 (/,#)字符有什么问题吗? 为了安全起见,我已为(“ ABC6252756 / A#1829533”)此数据输入了val2警报。 可能是什么问题?

您在callApprove中引用了val1val2callApprove在设置它们的地方包含代码。 另外,您可以在onClick函数中使用参数调用callApprove,但是定义中没有参数( function callApprove ),也许这就是初始化它们的目的?

我认为哈希是您的问题。 哈希符号 #在URL中具有特定含义,并且该含义仅是客户端方面的问题; 由于这是客户端/浏览器问题,因此哈希以及哈希之后的所有内容都不会发送到服务器。 当您在URL中插入“ ABC6252756 / A#1829533”时,浏览器将在将URL发送到服务器之前删除“#1829533” 及其后的所有内容

解决方案是对查询字符串的每个部分进行正确的URL编码。 您可能会在JavaScript中使用encodeURIComponent ,或者在PHP中使用urlencode

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM