Javascript输入问题

Javascript输入问题,javascript,php,Javascript,Php,我已经编写了一个代码,用于在提交表单时重定向页面。 我有一个下拉列表和文本框。 我输入了作为文本框的输入,这导致了正常的执行,但使用了)在屏幕上 这是我从firebug工具中得到的 <script type="text/javascript"> loadSearch('Customer',' </script> '); >: $i请求[ [搜索输入] ] /代码>是文本框,如果文本框以 作为输入 您为什么不考虑使用没有任何PHP的纯JavaScript?< /P>

我已经编写了一个代码,用于在提交表单时重定向页面。 我有一个下拉列表和文本框。 我输入了
作为文本框的输入,这导致了正常的执行,但使用了
在屏幕上

这是我从firebug工具中得到的

<script type="text/javascript">
loadSearch('Customer','
</script>
'); 

<> >:<代码> $i请求[ [搜索输入] ] /代码>是文本框,如果文本框以<代码> <代码>作为输入

您为什么不考虑使用没有任何PHP的纯JavaScript?< /P>
<input type="text" id="selM">
<input type="text" id="selK">
<input type="button" onclick="loadSearch(document.getElementById('selM').value,document.getElementById('selK').value);">

服务器端代码中存在严重漏洞。您应该始终使用
htmlspecialchars
等方法清除由用户输入产生的字符串

替换:

$_REQUEST['search_details']

与:

htmlspecialchars($_REQUEST['search_details'], ENT_QUOTES, 'UTF-8')


不这样做可能会使您的网站易受攻击,恶意用户可能会使用脚本窥探您的用户。此函数的作用是转换特殊字符,如
。问题是您正在将请求值转储到页面中,而不进行任何转义。由于这是JavaScript,一个快速修复方法是使用
json\u 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>";
}
?>

但问题仍然存在:如果您真正想做的是将用户重定向到搜索页面,那么首先为什么要使用这种迂回脚本方法?为什么不直接用PHP做一个测试?

我不知道你在问什么。请改进您的问题。我试图编辑您的问题,以便至少清楚什么是文本,什么是代码,但第一段仍然很混乱,我不知道是哪一段
是问题的一部分。请编辑此内容,将内联代码片段放在背景标记中,然后重新表述问题。@Chilion这不是问题吗?您既没有描述问题,也没有提出问题。我们能帮你什么?@Shikhar Bhardwaj Yep。改变了,tnx@NMN您是否删除了
搜索输入部分前后的
(单引号)?你需要这样做。重定向正在发生;但url变成/index.php?pg=search&selMod=Customer&selKey=“”;我希望它是/index.php?pg=search&selMod=Customer&selKey=@NMN应为
%2F
。这是在URL查询值中表示值
/
的正确方法。关于您在那里看到的一对引号,我再次询问,您是否确保删除
搜索输入部分前后的两个
部分?是;我在屏幕中显示时使用了json_解码textbox@NMN你能粘贴你正在尝试的当前PHP代码或其他东西让我看一下吗?
htmlspecialchars()
不是这个工作的合适工具。这些值将在JavaScript中被错误解释。
$_REQUEST['search_input']
htmlspecialchars($_REQUEST['search_details'], ENT_QUOTES, 'UTF-8')
htmlspecialchars($_REQUEST['search_input'], ENT_QUOTES, 'UTF-8')
<?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>";
}
?>
function loadSearch(selM,selK){
    document.location.href="index.php?pg=search&selM="+
                           encodeURIComponent(selM) + "&selK=" + 
                           encodeURIComponent(selK);
}