确切问题:尝试将一个参数从网址传递到搜索框目标网页。
这种方式是“subid”:
http://www.domain.com/?subid=3456
和php中的当前(不工作)搜索表单代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<form action="http://search.yahoo.com/search?subid=<?php print $_GET['subid'];?>&" target="_blank" id="search-box">
<input type="text" name="p" size="31" />
<input type="submit" value="Search" />
</form>
</body>
</html>
我可以看到firebug,当我去这里时,subid处于表单动作中:
http://www.domain.com/?subid=3456
但是当我在表单中运行查询时,并没有传递给雅虎。
那么问题出在哪里?
答案 0 :(得分:4)
您还应将subid
作为参数发布,并将方法指定为get
。
<form action="http://search.yahoo.com/search" target="_blank" method="get" id="search-box">
<input type="hidden" name="subid" value="<?php print $_GET['subid'];?>" />
<input type="text" name="p" size="31" />
<input type="submit" value="Search" />
</form>
答案 1 :(得分:0)
正如作者所要求的,为GET参数添加了一些过滤:
<form action="http://search.yahoo.com/search" target="_blank" method="get" id="search-box">
<input type="hidden" name="subid" value="<?=(int)$_GET['subid']?>" />
<input type="text" name="p" size="31" />
<input type="submit" value="Search" />
</form>
或者您可以在输出之前使用strip_tags
+ htmlentities
个函数。