我正在进行搜索并从网络提交表单调用搜索。我似乎无法将变量从搜索框传递到参数中。
这适用于Instagram搜索应用。我正在尝试检索特定用户Feed:
这是获取用户Feed的调用:
$result = $instagram->searchUser($id);
这称为此功能:
public function searchUser($name, $limit = 0) {
return $this->_makeCall('users/search', false, array('q' => $name, 'count' => $limit));
}
我的问题是将'$ id'传递给此。这就是我到目前为止在html中所拥有的,我意识到我可能会离开这里,但我(显然)是新的。
<form id="sform" method="post">
<fieldset>
<input id="s" type="text" />
<input type="submit" value="Submit" id="id" />
<div id="searchInContainer">
<input type="radio" name="check" value="site" id="id" checked />
>
</div>
</fieldset>
</form>
答案 0 :(得分:1)
您的代码中存在一些不一致之处。首先,您对searchUser()
的原始调用会传入名为$id
的变量,然后该函数的定义会有一个名为$name
的变量 - 这对此没有任何问题从技术上讲,但是当你的论点被命名为不同而且通常都是这样时,很容易混淆你的论点。
您的问题是您的表单,您有多个ID分配给元素,这违反了HTML规范。您还需要为文本框指定名称属性,否则不会将任何数据发布到您的表单。
接下来,您需要为表单标记定义一个操作,以告诉浏览器指向帖子位置的位置 - 这是您调用API的PHP文件。让我们说它myfile.php
,尝试这样的形式:
<form id="sform" action="myfile.php" method="post">
<fieldset>
<input name="search" id="search" type="text" />
<input type="submit" value="Submit" name="submitButton" id="submitButtom" />
<div id="searchInContainer">
<input type="radio" name="check" value="site" id="yourCheckbox" checked />
</div>
</fieldset>
</form>
一旦你的HTML被整理出来,你只需要用PHP获取变量并将其传递给你的API:
$id = $_POST['search'];
$result = $instagram->searchUser($id);
我建议使用上面的语法来解决一些基本的SQL注入漏洞,如果您希望发送一个数字,请使用:$id = (int) $_POST['search'];
强制变量为整数(删除恶意字符)等)。
答案 1 :(得分:1)
你所追求的是$_POST
超全球。提交表单时,每个字段的内容都会放入一个$_POST
变量中,该变量可由脚本访问。
<form id="sform" method="post" action="searchUser.php">
<fieldset>
<input id="s" name="userid" type="text" />
<input type="submit" value="Submit" id="id" />
<div id="searchInContainer">
<input type="radio" name="check" value="site" checked />
</div>
</fieldset>
</form>
当用户提交该表单时, searchUser.php
将被调用,并且将包含包含文本字段内容的变量$_POST['userid']
。这意味着:
$result = $instagram->searchUser($_POST['userid']);
然后会起作用!此时也可以使用$_POST['check']
,如果您需要调试,可以var_dump($_POST)
查看表单中的内容!
我会强烈建议在任何用户提交的数据字段上进行一些数据验证,但是!不要假设$_POST
变量中的内容是安全的!
您可以查看PHP Documentation了解更多内容! $_POST
是超级全球家族中的一员,可以帮助你!