我已经编写了用于重定向提交表单页面的代码。我有一个下拉菜单和该形式的文本框。我</script>
输入了textbox作为输入,这导致正常执行,但显示);
在屏幕上。
这是我从萤火虫工具中得到的
<script type="text/javascript">
loadSearch('Customer','
</script>
');
PHP代码提交
<?php
if($_POST['searchButton']){
echo "<script type='text/javascript'>loadSearch('".$_REQUEST['search_details']."','".$_REQUEST['search_input']."'); </script>";
}
?>
JAVASCRIPT
function loadSearch(selM,selK){
document.location.href="index.php?pg=search&selM="+selM+"&selK="+selK;
}//loadSearch
注意:$_REQUEST['search_input']
是文本框,如果文本框是</script>
作为输入提供的
问题在于您将请求值转储到页面中而不进行任何转义。由于这是JavaScript,因此一种快速解决方案是使用json_encode()
将该值编码为JSON:
<?php
if($_POST['searchButton']){
echo "<script type='text/javascript'>loadSearch(".
str_replace(json_encode($_REQUEST['search_details']), '<', '\x3C') . ", " .
str_replace(json_encode($_REQUEST['search_input']), '<', '\x3C').
");</script>";
}
?>
另外,您的函数应使用encodeURIComponent()
:
function loadSearch(selM,selK){
document.location.href="index.php?pg=search&selM="+
encodeURIComponent(selM) + "&selK=" +
encodeURIComponent(selK);
}
但是问题仍然存在:如果您真正想做的是将用户重定向到搜索页面,为什么首先要使用这种回旋脚本方法?为什么不直接从您的PHP中进行重定向?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句