JavaScript输入问题

NMN

我已经编写了用于重定向提交表单页面的代码。我有一个下拉菜单和该形式的文本框。</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>作为输入提供的

JLRishe

问题在于您将请求值转储到页面中而不进行任何转义。由于这是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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章