具有 1 个字段输入验证的 PHP-MySQL 表单


PHP-MySQL form with 1 field input validation

在PHP中得到了一个简单的形式,其中包含1个字段,必须对其进行验证,并且其字符串从两侧剥离。从字符串中,我保留某些字符,并希望匹配此剥离字符串是否在 mysql DB 中。如果它存在于数据库中,那么我将字符串输入到 DB 到另一个表,如果没有,我丢弃它。

问题是目前我输入的所有内容都由 if 语句验证为 true 并插入到数据库中。它只需要在 if 语句为真时执行插入,而不是每次都这样做。我在没有剥线的情况下让它工作,但是当我从废话中剥离绳子时,我无法让它再次工作......

这是带有字符串条的代码,它验证所有内容是否为真

    ...
    $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)
    ...

如果你想比较字符串,我建议你使用字符串比较函数,如strcmp。要了解有关strcmp的更多信息,请访问strcmp - PHP Manual。

如果两个字符串相等,此函数将返回 0。此比较区分大小写。

在设置$txt=substr($_POST[ZZ_ID],12,-1);之前只需var_dump($_POST[ZZ_ID])

然后var_dump($txt).

我认为substr()功能是你的问题!