好的-我已经为这个问题纠结了几天了。我搜索了 google 和 stackoverflow 以及其他地方,我尝试了很多方法来尝试完成这项工作,但到目前为止还没有运气。我将此归因于我对 php 和 mysql 的菜鸟,因为我可能放错了 } 或在代码中做错了事。
场景:我正在尝试使用表单来生成搜索查询并显示结果。这是试图搜索我的单表数据库。此外,这一切都在一个封闭的网络上,所以我现在并不担心注入/安全漏洞。
当我尝试编写搜索功能并了解如何不能再使用 $_POST 时,问题就出现了,因为它是一个超全局的。
现在,当我尝试使用搜索表单时,它不会产生任何错误,所以我真的很困惑如何让它工作。
编辑:我从用于创建记录的表单中回收了很多代码。希望这不是一个错误。
这是代码:
<?php
if(isset($_POST['search']))
{
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
if(! get_magic_quotes_gpc() )
{
$Client = addslashes ($_POST['Client']);
$Product = addslashes ($_POST['Product']);
$Type = addslashes ($_POST['Type']);
$Date = addslashes ($_POST['Date']);
$Category = addslashes ($_POST['Category']);
$Disc = addslashes ($_POST['Disc']);
}
else
{
$Client = ($_POST['Client']);
$Product = ($_POST['Product']);
$Type = ($_POST['Type']);
$Date = ($_POST['Date']);
$Category = ($_POST['Category']);
$Disc = ($_POST['Disc']);
}
//search function!
function search_designarchive($_post) {
$Client = $_post['Client'];
$Product = $_post['Product'];
$Type = $_post['Type'];
$Date = $_post['Date'];
$Category = $_post['Category'];
$Disc = $_upost['Disc'];
//is this where 'real escaping' should be?
mysql_select_db('desarch');
$query = "SELECT * FROM designarchive";
$conditions = array();
if($Client !="") {
$conditions[] = "Client='$Client'";
}
if($Product !="") {
$conditions[] = "Product='$Product'";
}
if($Type !="") {
$conditions[] = "Type='$Type'";
}
if($Date !="") {
$conditions[] = "Date='$Date'";
}
if($Category !="") {
$conditions[] = "Category='$Category'";
}
if($Disc !="") {
$conditions[] = "Disc='$Disc'";
}
$sql = $query;
if (count($conditions) > 0) {
$sql .= " WHERE " . implode(' AND ', $conditions);
}
$result = mysql_query($sql, $conn) or die(mysql_error());
return $result;
if(! $result )
{
die('Result query did not work: ' . mysql_error());
}
}
mysql_close($conn);
}
else
{
?>
这是表格:
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Client</td>
<td><input name="Client" type="text" id="Client" size="40"></td>
</tr>
<tr>
<td width="100">Product</td>
<td><input name="Product" type="text" id="Product" size="40"></td>
</tr>
<tr>
<td width="10">Type</td>
<td><input type="radio" name="Type" value="Sold" id="Type"> Sold<br>
<input type="radio" name="Type" value="Spec" id="Type"> Spec<br>
<input type="radio" name="Type" value="Marketing" id="Type"> Marketing<br></td>
</tr>
<tr>
<td width="6">Date</td>
<td><input name="Date" type="text" id="Date" size="6" maxlength="6"> <i>ex. Oct-13</i>
</td>
</tr>
<tr>
<td width="100">Category</td>
<td><input name="Category" type="text" id="Category"></td>
</tr>
<tr>
<td width="3">Disc #</td>
<td><input name="Disc" type="text" id="Disc" size="4" maxlength="3"></td>
</tr>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="search" type="submit" id="search" value="Search">
</td>
</tr>
</table>
</form>
<?php
}
?>
提前感谢您的帮助。这个社区一直是一个很好的资源。然而,这实际上是我第一次提出问题 :)