-2

次のフォームは、訪問者の色の好みに関するデータを収集します。

ユーザーが空白のフォームを送信した場合に、定義済みの代替値を mysql データベースに挿入する方法。

ここで考慮すべきことは、ユーザーがフォーム検証を使用して空白のフォームを送信できないようにしたくないということです。

私の現在のバックエンドコードは次のとおりです。

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO users (color_name) VALUES (%s)",


   GetSQLValueString($_POST['color_name'], "text")),

  mysql_select_db($database_x, $x);
  $Result1 = mysql_query($insertSQL, $x) or die(mysql_error());

  $insertGoTo = "choicecolor.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }

<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
<table align="center">
  <tr valign="baseline">
    <td align="right" nowrap="nowrap">Enter Color Name:</td>
    <td><input type="text" name="color_name" value="" size="32" /></td>
  </tr>
   <tr valign="baseline">
    <td nowrap="nowrap" align="right"><input type="hidden" name="MM_insert" value="form1" /></td>
                    <td>
                    <input type="submit" value="Submit Color Name" />
                    </td>
                  </tr>
                </table>
              </form>
              </td>
            </tr>
      </table>
</form>

訪問者が値を入力せずに"no choice"空白のフォームを送信すると、定義済みの値 (たとえば、"yellow""yellow"

この場合、PHPを使用して値を事前定義する方法は?

4

1 に答える 1

0

これをphpで行うには、次のようなものを追加します

$toInsert = isset($_POST['color_name'])? $_POST['color_name']: 'Your default string';

そして、この行を変更します

$insertSQL = sprintf("INSERT INTO users (color_name) VALUES (%s)", GetSQLValueString($_POST['color_name'], "text"));

これに

$insertSQL = sprintf("INSERT INTO users (color_name) VALUES (%s)", GetSQLValueString($toInsert, "text"));

ただし、最初に PDO などを確認する必要があります。また、ダークウィッシュが述べたように、php ではなくデータベースレベルでこれを行う方が良いかもしれません。

于 2012-10-24T11:30:11.910 に答える