用PEAR中的QuickForm实现了一个用户注册的界面,具体的操作数据库没有写。可能是我还不太熟练吧,没发现它的优点,反而不如JS,HTML直接编写来得迅速。也许它的好处就是可以控制很多吧(不是指外观)。下面的例子就实现了用户名,EMAIL地址的格式检查,证件号码等等的检查,当然这些用JS都可以轻松完成的,大家见仁见智吧。下面是最终效果图:
下面是PHP代码
<?php
/**
* QuickForm手工篇
*
* QuickForm手工输入之熟练篇
* 用QuickForm完成一个用户注册页面(包括信息的审查功能)
* @author jxyuhua at gmail.com
*/
require_once("HTML/QuickForm.php");
echo("<link rel="stylesheet" href="css.css" />");
$quickForm = new HTML_QuickForm("registerFrm");
$country = array("1" => "中国",
"2" => "日本",
"3" => "美国",
"4" => "英国",
"0" => "其它");
$city = array("1" => "北京",
"2" => "广东",
"3" => "江西",
"0" => "其它");
$industry = array("1" => "学生",
"2" => "科研机构",
"3" => "IT产业",
"0" => "其它");
$from = array("1" => "网吧",
"2" => "单位",
"3" => "家里",
"0" => "其它");
$quickForm->setDefaults(array("idtype" => 1,
"secret" => 1));
$quickForm->addElement("header", null, "新用户注册");
$quickForm->addElement("text", "name", "用户登录呢称:", array("size" => 20, "maxlength" => 20));
$quickForm->addElement("password", "pass", "密码:", array("size" => 20, "maxlength" => 20));
$quickForm->addElement("password", "repass", "重复输入密码:", array("size" => 20, "maxlength" => 20));
$quickForm->addElement("text", "email", "EMAIL地址:", array("size" => 20, "maxlength" => 50));
$quickForm->addElement("text", "passquestion", "密码提示问题:", array("size" => 50, "maxlength" => 50));
$quickForm->addElement("text", "passanswer", "密码提示答案:", array("size" => 50, "maxlength" => 50));
$quickForm->addElement("text", "alias", "用户中文呢称:", array("size" => 30, "maxlength" => 50));
$quickForm->addElement("textarea", "description", "个人描述信息:", array("rows" => 3, "cols" => 50, "class" => "textBox"));
$radio[] = &$quickForm->createElement("radio", null, null, "以下信息对不外公开", "1");
$radio[] = &$quickForm->createElement("radio", null, null, "以下信息对外公开", "0");
$quickForm->addGroup($radio, "secret");
//?如何设置默认选中为身份证?
//中转的办法,设默认值
$quickForm->addElement("text", "idnuber", "证件号码:", array("size" => 30, "maxlength" => 30));
$radio2[] = $quickForm->createElement("radio", "idtype", null, "身份证", null, array("value" => 1, "checked" => "true"));
$radio2[] = $quickForm->createElement("radio", "idtype", null, "其它证件", null, array("value" => 2));
$quickForm->addGroup($radio2);
$quickForm->addElement("text", "realname", "真实姓名:", array("size" => 20, "maxlength" => 30));
$quickForm->addElement("select", "gender", "性别:", array("male" => "男", "female" => "女"));
$quickForm->addElement("date", "born", "出生于:", array("format" => "Y 年m 月d", "minYear" => 1940, "maxYear" => 1995));
$quickForm->addElement("select", "country", "所在国家:", $country);
$quickForm->addElement("select", "city", "省(市):", $city);
$quickForm->addElement("text", "town", "市(县):", array("size" => 20, "maxlength" => 20));
$quickForm->addElement("text", "address", "联系地址:", array("size" => 50, "maxlength" => 50));
$quickForm->addElement("text", "zipcode", "邮政编码:", array("size" => 20, "maxlength" => 20));
$quickForm->addElement("text", "phone", "联系电话:", array("size" => 20, "maxlength" => 20));
$quickForm->addElement("text", "company", "所在单位:", array("size" => 30, "maxlength" => 30));
$quickForm->addElement("text", "department", "所在部门:", array("size" => 20, "maxlength" => 20));
$quickForm->addElement("select", "industry", "所在行业:", $industry);
$quickForm->addElement("select", "source", "主要在哪里<br />访问我们的网站:", $from);
$quickForm->addElement("text", "webpage", "个人主页:", array("size" => 50, "maxlength" => 50));
$quickForm->addElement("submit", null, "注册用户");
//设定表单的规则
$quickForm->applyFilter("name", "trim");
$quickForm->addRule("name", "用户登录昵称必须填写!!", "required");
$quickForm->addRule("pass", "密码不能为空", "required");
$quickForm->addRule("email", "电子邮件EMAIL不能为空", "required");
$quickForm->addRule("passquestion", "请填写密码提示问题", "required");
$quickForm->addRule("passanswer", "请填写密码提示答案", "required");
$quickForm->addRule("idnuber", "请填写证件号码", "required");
$quickForm->addRule("realname", "请填写真实姓名", "required");
$quickForm->addRule("gender", "性别不能为空", "required");
$quickForm->addRule("born", "出生日期不能为空", "required");
$quickForm->addRule("country", "国家不能为空", "required");
$quickForm->addRule("city", "城市不能为空", "required");
$quickForm->addRule("address", "请填写你的联系地址", "required");
$quickForm->addRule("name", "用户登录呢称最少为5个字符", "minlength", 5);
$quickForm->addRule("pass", "密码太简单,不能少于5位", "minlength", 5);
$quickForm->addRule(array("pass", "repass"), "两次的密码不一致", "compare");
$quickForm->addRule("email", "请输入正确的EMAIL地址(user@domain)", "email");
$quickForm->addRule("idnuber", "证件号码不能少于5位", "minlength", 5);
$quickForm->addRule("i