处理php联系表单上的错误

时间:2010-04-04 22:36:48

标签: php error-handling

下面的代码非常适合处理联系表单中文本字段的错误,但是如何使用相同的方法来处理下拉选项框和textareas?

<input type="text" name="name" value="<?php if($errors){echo $name;} ?>" id="name" size="30" />

例如:

<textarea name="message" value="<?php if($errors){echo $message;} ?>" id="message" rows="10" cols="40"></textarea>

不起作用。

3 个答案:

答案 0 :(得分:3)

对于textarea,您必须将默认值放在标记本身中。 例如:

<textarea name="message" id="message" rows="10" cols="40"><?php if($errors){echo $message;} ?></textarea>

答案 1 :(得分:1)

这就是你应该怎么做INPUT:它就像你拥有它一样,但你真的应该用htmlentities(或htmlspecialchars等)来逃避用户提供的内容,以防它们在文本中有引号,括号等这将被浏览器解释为HTML字符。这只是一种很好的做法。

<input type="text" name="name" id="name" size="30"
  value="<?php if ($errors) { echo $name; } ?>" />

这是你应该如何做TEXTAREA:把内容放在textarea打开/关闭标签之间。并确保也妥善逃脱。

<textarea name="message" id="message" rows="10" cols="40"
  ><?php if ($errors) { echo htmlentities($message); } ?></textarea>

这是处理SELECT标记的方法。为了便于阅读,我将代码分开,以便您了解正在发生的事情。基本上你只需要在你想要选择的OPTION元素中输出selected="selected"

<select>
  <option value = "val1" 
    <?php if ($error && ($selval=="val1")) { echo 'selected="selected"'; } ?>
  >
    Option Label 1
  </option>
  <option value = "val2" 
    <?php if ($error && ($selval=="val2")) { echo 'selected="selected"'; } ?>
  >
    Option Label 2
  </option>
  ... (additional <option> tags here) ...
</select>

答案 2 :(得分:0)

用于文本区域:

textarea name="message" id="message" rows="10" cols="40"><?php if($errors){echo $message;} ?></textarea>

对于下拉列表,您需要执行以下操作:

<select>
  <option value = "1" <? echo ($errror && $myposted_val == "1") ? "selected = \"selected\"" : ""; ?></option>
</select>