[英]PHP-MySQL form with 1 field input validation
在PHP中,有一個帶有1個字段的簡單表單,必須進行驗證,並且從兩側剝離字符串。 我從字符串中保留某些字符,如果此剝離的字符串在mysql DB中,則要匹配。 如果它存在於DB中,那么我將字符串輸入DB到另一個表中,如果不存在,我將其丟棄。
問題是當前我輸入的所有內容都通過if語句驗證為true並插入到數據庫中。 它僅在if語句為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)
...
在設置$txt=substr($_POST[ZZ_ID],12,-1);
之前,只需var_dump($_POST[ZZ_ID])
$txt=substr($_POST[ZZ_ID],12,-1);
然后是var_dump($txt)
。
我認為substr()
函數是您的問題!
如果要比較字符串,我建議您使用字符串比較功能,例如strcmp。 要了解有關strcmp的更多信息,請訪問strcmp-PHP手冊 。
如果兩個字符串相等,此函數將返回0。 此比較區分大小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.