zoukankan      html  css  js  c++  java
  • HTML表单处理

    一、表单简介

    表单的处理是一个多进程。首先创建一张表单,以供用固话输入详细的请求信息。接着,输入的数据被发送到服务器,在服务器里这些数据得到编译和错误检测。如果PHP代码识别出一个或多个需要重新输入的字段,则带有相关错误信息的表单会被重新显示。当精确的输入信息满足代码的需要时,代码会采取一些调用数据库的行动。

    要建立一个表单,至少要有下面这些元素:

    • 一个打开的<form>和关闭的</form>标记
    • 一个指定POST或GET方法的提交类型
    • 一个或多个输入字段
    • 表单数据提交的目的地址
      <?phpe //formtext.php
      if(isset($_POST['name'])) $name = $_POST['name'];
      else $name = "(not entered)";
      
      echo <<<_END
      <html>
          <head>
              <title>Form Text</titile>
          </head>
          <body>
          <form method="post" action="formtext.php">
              What is your name?
              <input type="text" name="name" />
              <input type="submit" />
          </form>
          </body>
      </html>
      _END;
      ?>
      View Code

    PHP的isset()函数用来测试变量是否已经被赋值。

    二、输入类型

    HTML表单非常灵活,允许提交各种类型的输入,常见的有:文本框、文本域、复选框和单选按钮等。

    1.文本框:以单行的形式接受各种字母、文字和其他字符,一般文本框的输入格式如下:

    <imput type="text" name="name" size="size" maxlength="length" value="value" />

     name参数设定输入数据的名称,当表单传到PHP文件时可以使用 $_POST['name']或$_GET['name'] 获取输入的文本;size参数用于设置文本框的宽度;maxlength参数允许指定输入字符的最大长度;value参数用于指定默认值。

    2.文本域:和文本框类似,但允许多行输入,文本域的输入格式如下:

    <textarea name="name" cols="width" rows="hight" wrap="type">Text</textarea>

    wrap参数用于控制换行,可选参数值有:不换行的(off)、换行,当一串字符没有回车换行时发送给服务器(soft)、换行,当一串字符有软回车时以换行格式发送给服务器(hard)。

    3.复选框:为用户提供不同的选项,以供用户选择其中的一个或几个,使用格式如下:

    <input type="checkbox" name="name" value="value" checked="checked" />

    引入checked参数,当浏览器显示时,复选框已被选定。若不包含这个参数,复选框则显示未被检测。

    注意:如果允许依次选中多个条目,要将它们赋予相同的名字。然而,这样只有最后一个被选中的条目会被提交,除非把数组作为名字来传递。

    <form method="post" action="mytest.php">
      Vanilla <input type="checked" name="ice" values="vanilla" />
      Chocolate <input type="checked" name="ice" values="chocolate" />
      Strawberry <input type="checked" name="ice" values="strawberry" />
    </form>

    上面表单中,如果只有一个复选框被选中,那就只有一项会被提交(即字段ice会被赋予的值);但如果有两个或多个被选中,只有最后一个选中的值会被提交,先前的值会被忽视。想提交多个选择,我们要用数组来传递,对上面的代码做一点小小的额修改:

    <form method="post" action="mytest.php">
      Vanilla <input type="checked" name="ice[]" values="vanilla" />
      Chocolate <input type="checked" name="ice[]" values="chocolate" />
      Strawberry <input type="checked" name="ice[]" values="strawberry" />
    </form>

    这样,当表单被提交时,如果选中其中任意项,一个叫做ice的数组将被提交,数组包含所有选中的值。

    4.单选按钮:用于从两个或多个选项中只选择一个。一组中的所有按钮必须使用相同的名字,因为只有一个单值被返回,所以不需要数组传递。

    <form method="post" acthion="mytest.php">
        8am-Noon<input type="radio" name="time" value="1" /> |
        Noon-4pm<input type="radio" name="time" value="2" /> |
        4pm-8pm<input type="radio" name="time" value="3" /> 
    </form>

    5.select标记:用于创建下拉选项列表,提供了单选或多选。使用格式如下:

    <select name="name" size="size" multiple="multiple">

    size参数表示要显示的行数,即在网页上同时显示的选项的数量;multiple参数用于让用户按住Ctrl键后可以从列表中点击选择多个选项。另外,如果想给定默认选项,可以使用selected参数,将参数的值设置为"selected"就可以了。

    <form method="post" action="mytest.php">
        Vegetables : <select name="veg" size="2" multiple="multiple">
            <option value="Peas">Peas</option>
            <option value="Beans">Beans</option>
            <option value="Carrots">Carrots</option>
            <option value="Cabbage">Cabbage</option>
            <option value="Broccoli">Broccoli</option>
        </select>
    </form>

    6.lebel标记:运用标记可以环绕表单元素,通过点击<label>标记间的任意可见部分使表单可选,给用户一个良好的体验。

    <label>8am-Noon<input type="radio" name="time" value="1" /></label>

    7.Submit按钮:提交表单的按钮,为了适应被提交表单的类型,可以通过使用value参数的值改变提交按钮的标题名,也可以通过使用选定的图片来替代标准的文本按钮。

    <input type="submit" name="mysubmit" value="这是一个提交按钮" />
    <input type="image" name="submit" src="image.gif" />

    三、输入净化

    在处理从用户得到的信息之前,绝不能轻易相信任何从$_GET或$_POST数组中得到的变量。如果没有这么做,用户可能会尝试将JavaScript插入到这些数据中来干扰你的网站的操作,或企图添加MySQL命令来损坏你的数据库。

    <?php
    $variable = $_POST['user_input'];
    
    function sanitizeString($var)
    {
        if (get_magic-quotes_gpc()) $var = stripslashes($var); //除去字符里的反斜线""
        $var = htmlentities($var); //把字符转化为HTML实体
        $var = strip_tage($var); //去除字符中的HTML标签
        return $var;
    }
    
    function sanitizeString($var)
    {
        $var = mysql_real_escape_string($var); //转义sql使用的特殊字符
        $var = sanitizeString($var);
        return $var;
    }
    ?>
  • 相关阅读:
    vim高亮
    mengning
    4.4内核osal
    tmpvalgrind
    为什么引入协程
    alloc_call_show(转)
    TSAN
    如何查看哪些进程占用Buffer和Cache高(转)
    ASAN详解其他参考链接
    Linux系统与程序监控工具atop教程(转)
  • 原文地址:https://www.cnblogs.com/jxc321/p/8594401.html
Copyright © 2011-2022 走看看