确切的问题:试图从url传递一个参数到搜索框的目标页面。
参数是"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中看到subbid在form action中当我进入这里
http://www.domain.com/?subid=3456但是当我在表单中运行查询时,没有传递到yahoo.
那么问题在哪里?
您也应该将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>
根据作者的要求,对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
函数