0

だから私はこの「フォーム」と記事のあるデータベースを持っています。私がやりたいのは次のとおりです。「inputaddtobill」というテキストボックスが1つあり、フォーカスを離すとボタンが自動的に押されます。

これでテキストボックスにバーコードを入れる必要があります。そしてそれらのバーコードは記事名を参照します。テキストボックスにバーコードを入れると、対応する記事が表示され、次のバーコードを入れると、2つの記事が表示されます。

これが私のhtmlです

<html>
<head>
<title>Verkoop</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="../js/artverklostfoc.js"></script>
<link rel="icon" href="../img/favicon.png">
<link rel="stylesheet" href="../css/style.css"/>
</head>
<body>
<form method="post" action="kassaverkoop.php?a=b" name="frmkassaverkoop">
<input type='text' onBlur='lostFocus()' name='inputaddtobill' class='inputaddtobill'>
<input type='submit' value='toevoegen' name='butaddtobill' id='butaddtobill' />
</form>
</body>
</html>

これが私のPHPです

<?php
include "connect_to_mysql.php";
if(isset($_GET['a']) && $_GET['a'] == 'b')
{
    $input = array($_POST['inputaddtobill']);
    $queryart = mysql_query("SELECT * FROM tbl_artikel WHERE FLD_Barcode IN ($input)");

    while ($row = mysql_fetch_array($queryart))
    {
        echo $row['FLD_Artikel'];
    }
}
?>
4

1 に答える 1

0

あなたのコードは機能しません。

$input = array($_POST[...']);

インデックス 0 に単一の値 ($_POST からの値) を持つ配列を作成します。

次に、クエリで $input を直接使用します。つまり、文字列コンテキストで配列を使用していることを意味します。つまり、実際に単語Arrayをクエリ文字列に挿入し、最終的には

SELECT ... WHERE FLD_Barcode IN (Array)

また、これが機能したとしても、ユーザーが指定したデータをクエリ文字列に直接挿入することになり、SQL インジェクション攻撃を受けやすくなることに注意してください。

于 2013-01-15T18:30:19.787 に答える