php 一个完整的表单提交实例

时间:2016-06-13
php表单提交是web开发中必须掌握的知识点,本文章向大家介绍一个完整的表单提交实例,本实例使用到表单post提交数据的方式,需要的朋友可以参考一下本文章。

本文章是关于使用form表单来发送邮件的一个实例,文章既提到了form表单的使用方法和php处理数据的方法,又提到了php邮件发送的方法,请看下面实例代码:

html代码如下:

<html>
  <head>
  <title>使用form表单发送邮件实例</title>
  </head>
  <body>
  <h1>Mail Form</h1>
  <form name="form1" method="post" action="SimpleEmail.php">
  <table>
      <tr><td><b>To</b></td><td><input type="text" name="mailto" size="35"></td></tr>
      <tr><td><b>Subject</b></td>
          <td><input type="text" name="mailsubject" size="35"></td></tr>
      <tr><td><b>Message</b></td>
          <td><textarea name="mailbody" cols="50" rows="7"></textarea></td>
      </tr>
      <tr><td colspan="2">
            <input type="submit" name="Submit" value="Send">
          </td>
      </tr>
   </table>
 </form>
 </body>
 </html>

该表单包括了常用表单元素:单行文本框、多行文本框、以及提交按钮。下面对这些表单元素的属性进行说明:

name:文本框的名称,PHP根据该名称,在超级全局数组中建立以name为名称的键名,name属性主要用于服务器接收数据。

size:文本框的宽度,在select下拉菜单中,表示可以看到的选项行数

value:文本框中的默认值,注意,该值不能应用到type=password密码文本框以及type=file文件文本框中

rows:多行文本框显示时可以容纳的字符列数宽度

cols:多行文本框显示时可以容纳的字符行数高度

php服务器处理表单代码:

 <?php
    $mailto=$_POST['mailto'];
    $mailsubject=$_POST['mailsubject'];
    $mailbody=$_POST['mailbody'];
    if (empty ($mailto) ) {
       die ( "Recipient is blank! ") ;
    }

    if (empty ($mailsubject) ){
       $mailsubject=" " ;
    }

    if (empty ($mailbody) ) {
       $mailbody=" " ; 
    }

    $result = mail ($mailto, $mailsubject, $mailbody) ;

    if ($result) {
       echo "Email sent successfully!" ;
    }else{
       echo "Email could not be sent." ;
    }
?>

由于表单是以post方式传送到服务器的,所以获取数据时需要使用$_POST来获取,如:

$_POST['mailto']表示表单元素name为mailto的value

获取到表单数据后,将这些数据进行处理并使用mail函数发送邮件。

这里使用到php empty函数对表单数据进行了验证,大家可以自己研究一下。

说明:使用POST方式提交表单,通过HTTP协议的header部分传递表单数据,理论上数据的大小无上限。不过,在使用PHP进行POST提交时,文件大小受PHP配置文件(php.ini)限制,我们可以修改php.ini文件中的post_max_size参数,可将默认的2M字节,修改为自己需要的大小,但由于HTTP协议的特性,这个值不宜设置过大,最大以8M为宜。