PHP では、検証が必要な 1 つのフィールドとその文字列が両側から削除された単純なフォームを取得しました。文字列から特定の文字を保持し、この削除された文字列がmysql DBにある場合に一致させたい. DBに存在する場合は、文字列をDBに別のテーブルに入力し、存在しない場合は破棄します。
問題は、現在、入力したすべてが if ステートメントによって true として検証され、データベースに挿入されることです。毎回ではなく、if ステートメントが true の場合にのみ挿入する必要があります。ストリングストリッピングなしで動作するようになりましたが、がらくたからストリングを除去すると、再び動作することはありません...
これは文字列ストリップを含むコードで、すべてが true であると検証されます
...
$txt=substr($_POST[ZZ_ID],12,-1);
$test = mysql_query("SELECT ZZcode FROM ZZcodes WHERE ZZcode='$txt'");
$row = mysql_fetch_array($test);
if ($row['ZZcode']== $txt)
$sql="INSERT INTO Data
VALUES
('$_POST[ZZ_ID]','$_POST[ID]', TIMESTAMP(8))";
else
echo "ZZ code error";
echo "<br />";
echo $txt;
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con)
...
動作する文字列ストリップのないコードのブロックは次のとおりです。
...
$test = mysql_query("SELECT ZZcode FROM ZZcodes WHERE ZZcode='$_POST[ZZ_ID]'");
$row = mysql_fetch_array($test);
if ($row['ZZcode']== $_POST[ZZ_ID])
$sql="INSERT INTO Data
VALUES
('$_POST[ZZ_ID]','$_POST[ID]', TIMESTAMP(8))";
else
echo "ZZ koodi ei saa sisestada";
echo "<br />";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con)
...