UserModel.class.php(UserModel模型):
<?php
//命名空间 php5.3以后版本支持
namespace Model;
use Think\Model;
//User模型model类
//父类:ThinkPHP/Library/Think/Model.class.php
class UserModel extends Model{
//设置验证规则
// 是否批处理验证
protected $patchValidate = true; //设置为true后,就会一次性验证所有控件,而不是一个一个地验证。
// 自动验证定义
protected $_validate = array(
//为表单域定义具体验证规则
//一、 验证用户名,非空
//array(字段名称 表单域name属性值,验证规则,错误提示[,验证条件,附加规则,验证时间])
array('username','require','用户名不能为空'),
array('username','','用户名已经被占用',0,'unique'),
//二、 密码,非空
array('password','require','密码不能为空'),
//三、 确认密码,非空/与密码保持一致
array('password2','require','确认密码不能为空'),
array('password2','password','与密码保持一致',0,'confirm'), //0 表示存在字段就验证,即使值为空也要验证
//四、 邮箱验证,符合邮箱格式
array('user_email','email','邮箱格式不正确',2), //2 表示值为空就不验证。
//五、 qq号码,纯数字,位数为5-12位
array('user_qq','number','qq号码为数字信息'),
array('user_qq','5,12','qq号码长度为5-12位',0,'length'),
//六、 学历,必须选择一个
array('user_xueli','2,3,4,5','学历必须选择一个',0,'in'),
//七、 爱好,至少选择两个或以上
//通过当前模型(Model)类的check_hobby()方法进行验证
array('user_hobby','check_hobby','爱好至少选择两个或以上',1,'callback'), //1 表示必须验证,如果没有选择复选框(表单中没有user_hobby字段)也必须验证
);
//$arg参数 代表被收集到的表单域信息
function check_hobby($arg){
if(count($arg)<2){
return false;
}
return true;
}
}
UserController.class.php(用户控制器):
<?php
//用户控制器
//命名空间
namespace Home\Controller;
use Think\Controller;
//Controller父类:ThinkPHP/Library/Think/Controller.class.php
class UserController extends Controller{
//注册系统
function register(){
$user = new \Model\UserModel(); //必须实例化普通model对象(内部有验证规则)
//两个逻辑:展示、收集
if(!empty($_POST)){ //表单提交给自己。通过判断$_POST是否为空 来确定是展示表单还是收集表单。
//$z = $user -> add($_POST); //该方式未进行表单验证
$data = $user -> create(); //收集信息、表单自动验证
if($data){
//验证成功,就会通过$data体现收集到的表单信息
//爱好的数组变为字符串
$data['user_hobby'] = implode(',',$data['user_hobby']); //爱好多选框收集的数组信息转成字符串。
$z = $user -> add($data);
if($z)
$this -> redirect('Index/index');
}else{
//验证失败,输出查看错误信息
$this -> assign('errorInfo',$user->getError());
}
}
$this -> display(); //展示表单模板页面
}
}
register.html(前端视图模板页):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="Generator" content="YONGDA v1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="Keywords" content="YONGDA商城" />
<meta name="Description" content="YONGDA商城" />
<title>YONGDA商城 - Powered by YongDa</title>
<link href="{$smarty.const.CSS_URL}style.css" rel="stylesheet" type="text/css" />
</head>
<body class="index_body">
<div class="block clearfix" style="position: relative; height: 98px;">
<a href="#" name="top"><img class="logo" src="{$smarty.const.IMG_URL}logo.gif"></a>
<div id="topNav" class="clearfix">
<div style="float: left;">
<font id="ECS_MEMBERZONE">
<div id="append_parent"></div>
欢迎光临本店
<a href="./index.php?r=user/login"> 登录</a>
<a href="./index.php?r=user/register">注册</a>
</font>
</div>
<div style="float: right;">
<a href="#">查看购物车</a>
|
<a href="#">选购中心</a>
|
<a href="#">标签云</a>
|
<a href="#">报价单</a>
</div>
</div>
<div id="mainNav" class="clearfix">
<a href="#" class="cur">首页<span></span></a>
<a href="#">GSM手机<span></span></a>
<a href="#">双模手机<span></span></a>
<a href="#">手机配件<span></span></a>
<a href="#">优惠活动<span></span></a>
<a href="#">留言板<span></span></a>
</div>
</div>
<div class="header_bg">
<div style="float: left; font-size: 14px; color:white; padding-left: 15px;">
</div>
<form id="searchForm" method="get" action="#">
<input name="keywords" id="keyword" type="text" />
<input name="imageField" value=" " class="go" style="cursor: pointer; background: url('{$smarty.const.IMG_URL}sousuo.gif') no-repeat scroll 0% 0% transparent; width: 39px; height: 20px; border: medium none; float: left; margin-right: 15px; vertical-align: middle;" type="submit" />
</form>
</div>
<div class="blank5"></div>
<div class="header_bg_b">
<div class="f_l" style="padding-left: 10px;">
<img src="{$smarty.const.IMG_URL}biao6.gif" />
北京市区,现在下单(截至次日00:30已出库),<b>明天上午(9-14点)</b>送达 <b>免运费火热进行中!</b>
</div>
<div class="f_r" style="padding-right: 10px;">
<img style="vertical-align: middle;" src="{$smarty.const.IMG_URL}biao3.gif">
<span class="cart" id="ECS_CARTINFO">
<a href="#" title="查看购物车">您的购物车中有 0 件商品,总计金额 ¥0.00元。</a></span>
<a href="#"><img style="vertical-align: middle;" src="{$smarty.const.IMG_URL}biao7.gif"></a>
</div>
</div>
<div class="block block1">
<div class="block box">
<div class="blank"></div>
<div id="ur_here">
当前位置: <a href="#">首页</a> <code>></code> 用户注册
</div>
</div>
<div class="blank"></div>
<!--放入view具体内容-->
<div class="block box">
<div class="usBox">
<div class="usBox_2 clearfix">
<div class="logtitle3"></div>
<form id="yw0" action="{$smarty.const.__SELF__}" method="post">
<table cellpadding="5" cellspacing="3" style="text-align:left; width:100%; border:0;">
<tbody>
<tr>
<td style="width:13%; text-align: right;"><label for="User_username" class="required">用户名
<span class="required">*</span></label>
</td>
<td style="width:87%;">
<input class="inputBg" size="25" name="username" id="User_username" type="text" value="" />
<span style="color:red;">{$errorInfo.username}</span>
</td>
</tr>
<tr>
<td align="right">
<label for="User_password" class="required">密码 <span class="required">*</span></label>
</td>
<td>
<input class="inputBg" size="25" name="password" id="User_password" type="password" value="" /> <span style="color:red;">{$errorInfo.password}</span>
</td>
</tr>
<tr>
<td align="right"><label for="User_password2">密码确认</label></td>
<td>
<input class="inputBg" size="25" name="password2" id="User_password2" type="password" />
<span style="color:red;">{$errorInfo.password2}</span>
</td>
</tr>
<tr>
<td align="right"><label for="User_user_email">邮箱</label></td>
<td>
<input class="inputBg" size="25" name="user_email" id="User_user_email" type="text" value="" /> <span style="color:red;">{$errorInfo.user_email}</span>
</td>
</tr>
<tr>
<td align="right"><label for="User_user_qq">qq号码</label></td>
<td>
<input class="inputBg" size="25" name="user_qq" id="User_user_qq" type="text" value="" />
<span style="color:red;">{$errorInfo.user_qq}</span>
</td>
</tr>
<tr>
<td align="right"><label for="User_user_tel">手机</label></td>
<td>
<input class="inputBg" size="25" name="user_tel" id="User_user_tel" type="text" value="" /><span style="color:red;">{$errorInfo.user_tel}</span>
</td>
</tr>
<tr>
<!--radioButtonList($model,$attribute,$data,$htmlOptions=array())-->
<td align="right"><label for="User_user_sex">性别</label></td>
<td>
<input id="ytUser_user_sex" type="hidden" value="" name="user_sex" />
<span id="User_user_sex">
<input id="User_user_sex_0" value="1" checked="checked" type="radio" name="user_sex" />
<label for="User_user_sex_0">男</label>
<input id="User_user_sex_1" value="2" type="radio" name="user_sex" />
<label for="User_user_sex_1">女</label>
<input id="User_user_sex_2" value="3" type="radio" name="user_sex" />
<label for="User_user_sex_2">保密</label></span>
</td>
</tr>
<tr>
<!--dropDownList($model,$attribute,$data,$htmlOptions=array())-->
<td align="right"><label for="User_user_xueli">学历</label></td>
<td>
<select name="user_xueli" id="User_user_xueli">
<option value="1" selected="selected">-请选择-</option>
<option value="2">小学</option>
<option value="3">初中</option>
<option value="4">高中</option>
<option value="5">大学</option>
</select>
<span style="color:red;">{$errorInfo.user_xueli}</span>
<div class="errorMessage" id="User_user_xueli_em_" style="display:none"></div> </td>
</tr>
<tr>
<!--checkBoxList($model,$attribute,$data,$htmlOptions=array())-->
<td align="right"><label for="User_user_hobby">爱好</label></td>
<td>
<span id="User_user_hobby">
<input id="User_user_hobby_0" value="1" type="checkbox" name="user_hobby[]" />
<label for="User_user_hobby_0">篮球</label>
<input id="User_user_hobby_1" value="2" type="checkbox" name="user_hobby[]" />
<label for="User_user_hobby_1">足球</label>
<input id="User_user_hobby_2" value="3" type="checkbox" name="user_hobby[]" />
<label for="User_user_hobby_2">排球</label>
<input id="User_user_hobby_3" value="4" type="checkbox" name="user_hobby[]" />
<label for="User_user_hobby_3">棒球</label>
</span>
<span style="color:red;">{$errorInfo.user_hobby}</span>
</td>
</tr>
<tr>
<!--textArea($model,$attribute,$htmlOptions=array())-->
<td align="right"><label for="User_user_introduce">简介</label></td>
<td>
<textarea cols="50" rows="5" name="user_introduce" id="User_user_introduce"></textarea>
</td>
</tr>
<tr>
<td> </td>
<td align="left">
<input value="" class="us_Submit_reg" type="submit" />
</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
</div>
<!--放入view具体内容-->
</div>
<div class="blank"></div>
<div class="block">
<a href="#" target="_blank" title="YONGDA商城"><img alt="YONGDA商城" src="{$smarty.const.IMG_URL}di.jpg"></a>
<div class="blank"></div>
</div>
<div class="block">
<div class="box">
<div class="helpTitBg" style="clear: both;">
<dl>
<dt><a href="#" title="新手上路 ">新手上路 </a></dt>
<dd><a href="#" title="售后流程">售后流程</a></dd>
<dd><a href="#" title="购物流程">购物流程</a></dd>
<dd><a href="#" title="订购方式">订购方式</a></dd>
</dl>
<dl>
<dt><a href="#" title="手机常识 ">手机常识 </a></dt>
<dd><a href="#" title="如何分辨原装电池">如何分辨原装电池</a></dd>
<dd><a href="#" title="如何分辨水货手机 ">如何分辨水货手机</a></dd>
<dd><a href="#" title="如何享受全国联保">如何享受全国联保</a></dd>
</dl>
<dl>
<dt><a href="#" title="配送与支付 ">配送与支付 </a></dt>
<dd><a href="#" title="货到付款区域">货到付款区域</a></dd>
<dd><a href="#" title="配送支付智能查询 ">配送支付智能查询</a></dd>
<dd><a href="#" title="支付方式说明">支付方式说明</a></dd>
</dl>
<dl>
<dt><a href="#" title="会员中心">会员中心</a></dt>
<dd><a href="#" title="资金管理">资金管理</a></dd>
<dd><a href="#" title="我的收藏">我的收藏</a></dd>
<dd><a href="#" title="我的订单">我的订单</a></dd>
</dl>
<dl>
<dt><a href="#" title="服务保证 ">服务保证 </a></dt>
<dd><a href="#" title="退换货原则">退换货原则</a></dd>
<dd><a href="#" title="售后服务保证 ">售后服务保证</a></dd>
<dd><a href="#" title="产品质量保证 ">产品质量保证</a></dd>
</dl>
<dl>
<dt><a href="#" title="联系我们 ">联系我们 </a></dt>
<dd><a href="#" title="网站故障报告">网站故障报告</a></dd>
<dd><a href="#" title="选机咨询 ">选机咨询</a></dd>
<dd><a href="#" title="投诉与建议 ">投诉与建议</a></dd>
</dl>
</div>
</div>
</div>
<div class="blank"></div>
<div id="bottomNav" class="box block">
<div class="box_1">
<div class="links clearfix">
<a href="#" target="_blank" title="YONGDA商城"><img src="{$smarty.const.IMG_URL}ecmoban_link.jpg" alt="YONGDA商城" border="0"></a>
<a href="#" target="_blank" title="YONGDA 网上商店管理系统">
<img src="{$smarty.const.IMG_URL}yongda_logo.gif" alt="YONGDA 网上商店管理系统" border="0" />
</a>
[<a href="#" target="_blank" title="免费申请网店">免费申请网店</a>]
[<a href="#" target="_blank" title="免费开独立网店">免费开独立网店</a>]
[<a href="#" target="_blank" title="免费开独立网店">yongda商城</a>]
</div>
</div>
</div>
<div class="blank"></div>
<div id="bottomNav" class="box block">
<div class="bNavList clearfix">
<a href="#">免责条款</a>
|
<a href="#">隐私保护</a>
|
<a href="#">咨询热点</a>
|
<a href="#">联系我们</a>
|
<a href="#">Powered by <strong><span style="color: rgb(51, 102, 255);">YongDa</span></strong></a>
|
<a href="#">批发方案</a>
|
<a href="#">配送方式</a>
</div>
</div>
<div id="footer">
<div class="text">
© 2005-2012 YONGDA 版权所有,并保留所有权利。<br />
</div>
</div>
</body>
</html>