0

OK-私はこの問題に数日間取り組んできました。私はグーグルやスタックオーバーフローなどの場所を検索し、これを機能させるために多くのことを試みましたが、これまでのところ運がありません. おそらく}を置き忘れたか、コード内で何かを間違った順序で実行したためです。

シナリオ: フォームを使用して検索クエリを生成し、結果を表示しようとしています。これは、単一テーブル データベースを検索しようとしています。また、これはすべて閉じたネットワーク上にあるため、インジェクションやセキュリティの脆弱性については今のところ心配していません。

この問題は、私が検索関数を作成しようとしていたときに発生し、スーパーグローバルであるため $_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
}
?>

助けてくれてありがとう。このコミュニティは素晴らしいリソースです。実は私が質問したのはこれが初めてです:)

4

0 に答える 0