-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 等。同样正如Dark Wish提到的,在数据​​库级别而不是使用 php 可能会更好。

于 2012-10-24T11:30:11.910 回答