帝国cms ReturnDoMemberF()函数代码注释
<?php
//组合复选框数据
function ReturnMCheckboxAddF($r,$f,$checkboxf){
$val=$r;
//如果是单行文本框、多行文本框、单选按钮则直接返回其值
if(is_array($r)&&strstr($checkboxf,",".$f.",")){
$val="";
$count=count($r);
for($i=0;$i<$count;$i++){
$val.=$r[$i]."|";
}
if($val){
$val="|".$val;
}
}
return $val;
}
//返回会员字段
function ReturnDoMemberF($fid,$add,$mr,$ecms=0,$username='',$admin=0){
global $empire,$dbtbpre,$ecms_config,$public_r;
//openmembertranimg 文件设置-会员表单附件设置, 开启上传图片, 1为开启
//memberimgsize 最大图片5120KB=5M
//memberimgtype 图片扩展名.gif|.jpg|.png|.jpeg|.bmp
//openmembertranfile 开启上传附件, 1为开启
//memberfilesize 最大附件500KB
//memberfiletype 附件扩展名.zip|.rar
$pr=$empire->fetch1("select
openmembertranimg,memberimgsize,memberimgtype,
openmembertranfile,memberfilesize,memberfiletype
from {$dbtbpre}enewspublic limit 1");
//fid 表单ID
//enter text 录入项
//mustenter text 必填项
//filef varchar(255) 附件字段集合
//imgf varchar(255) 图片字段集合
//canaddf text 可增加项
//caneditf text 可修改项
//checkboxf text 复选字段集合
$formr=$empire->fetch1("select
fid,enter,mustenter,filef,imgf,
canaddf,caneditf,checkboxf
from {$dbtbpre}enewsmemberform where fid='$fid'");
//检测必填字段
$mustr=explode(",",$formr['mustenter']);
$mustcount=count($mustr);
for($i=1;$i<$mustcount-1;$i++){
$mf=$mustr[$i];
//如果是必填附件字段或者是必填图片字段
if(strstr($formr['filef'],",".$mf.",")||strstr($formr['imgf'],",".$mf.",")){
$mfilef=$mf."file";
//用户系统中的文件名称
if($_FILES[$mfilef]['name']){
if(strstr($formr['imgf'],",".$mf.",")){
//是否开启上传图片
if(!$pr["openmembertranimg"]){
//系统关闭上传图片功能
printerror("CloseQTranPic","",1);
}
}else{
//是否开启上传附件
if(!$pr["openmembertranfile"]){
//系统关闭了上传附件功能
printerror("CloseQTranFile","",1);
}
}
}elseif(!trim($add[$mf])&&!$mr[$mf]){
//请将信息填写完整
printerror("EmptyQMustF","",1);
}
}else{
$chmustval=ReturnMCheckboxAddF($add[$mf],$mf,$formr['checkboxf']);
if(!trim($chmustval)){
printerror("EmptyQMustF","",1);
}
}
}
//字段处理
$dh="";
$tranf="";
$record="<!--record-->";
$field="<!--field--->";
//真实姓名<!--field--->truename<!--record-->
//联系电话<!--field--->mycall<!--record-->
//手机<!--field--->phone<!--record-->
//QQ号码<!--field--->oicq<!--record-->
//网站地址<!--field--->homepage<!--record-->
//会员头像<!--field--->userpic<!--record-->
//联系地址<!--field--->address<!--record-->
//简介<!--field--->saytext<!--record-->
$fr=explode($record,$formr['enter']);
$count=count($fr);
for($i=0;$i<$count-1;$i++)
{
$fr1=explode($field,$fr[$i]);
$f=$fr1[1];
//如果不是可增加项或可修改项则跳过当前循环
if($admin==0 && (($ecms==0&&!strstr($formr['canaddf'],','.$f.','))||($ecms==1&&!strstr($formr['caneditf'],','.$f.',')))){
continue;
}
//附件
$add[$f]=str_replace('[!#@-','ecms',$add[$f]);
if(strstr($formr['filef'],",".$f.",")||strstr($formr['imgf'],",".$f.","))
{
//上传附件
$filetf=$f."file";
if($_FILES[$filetf]['name'])
{
//取得文件类型
$filetype=GetFiletype($_FILES[$filetf]['name']);
if(CheckSaveTranFiletype($filetype)){
//您上传的文件扩展名有误
printerror("NotQTranFiletype","",1);
}
//图片
if(strstr($formr['imgf'],",".$f.","))
{
//是否开启上传图片
if(!$pr['openmembertranimg']){
//系统关闭上传图片功能
printerror("CloseQTranPic","",1);
}
if(!strstr($pr['memberimgtype'],"|".$filetype."|")){
//您上传的文件扩展名有误
printerror("NotQTranFiletype","",1);
}
//文件的字节大小
if($_FILES[$filetf]['size']>$pr['memberimgsize']*1024){
//您上传的文件大小超过系统限制
printerror("TooBigQTranFile","",1);
}
if(!strstr($ecms_config['sets']['tranpicturetype'],','.$filetype.',')){
printerror("NotQTranFiletype","",1);
}
//附件
}else{
//是否开启上传附件
if(!$pr['openmembertranfile']){
//系统关闭了上传附件功能
printerror("CloseQTranFile","",1);
}
if(!strstr($pr['memberfiletype'],"|".$filetype."|")){
//您上传的文件扩展名有误
printerror("NotQTranFiletype","",1);
}
if($_FILES[$filetf]['size']>$pr['memberfilesize']*1024){
//您上传的文件大小超过系统限制
printerror("TooBigQTranFile","",1);
}
}
$tranf.=$dh.$f;
$dh=",";
$fval="[!#@-".$f."-@!]";
}
else
{
//modmemberedittran 会员附件字段支持填写 1是 0否
if($public_r['modmemberedittran']==1)
{
$fval=$add[$f];
if($ecms==1&&$mr[$f]&&!trim($fval))
{
$fval=$mr[$f];
}
}
else
{
$fval='';
if($ecms==1)
{
$fval=$mr[$f];
}
}
}
}
else
{
$add[$f]=ReturnMCheckboxAddF($add[$f],$f,$formr['checkboxf']);
$fval=$add[$f];
}
$fval=DoMemberFValue($fval);
$fval=RepPostStr2($fval);
$fval=addslashes($fval);
//添加
if($ecms==0)
{
$ret_r[0].=",`".$f."`";
$ret_r[1].=",'".$fval."'";
//编辑
}else{
$ret_r[0].=",`".$f."`='".$fval."'";
}
}
//上传附件
if($tranf)
{
$infoid=0;
$filepass=0;
$classid=0;
$filepass=(int)$mr['add_filepass'];
$tranr=explode(",",$tranf);
$count=count($tranr);
for($i=0;$i<$count;$i++)
{
$tf=$tranr[$i];
$tffile=$tf."file";
//tmp_name 文件在Web服务器中临时存储的位置
//name 用户系统中的文件名称
//type 文件的MIME类型
//size 文件的字节大小
$tfr=DoTranFile($_FILES[$tffile]['tmp_name'],$_FILES[$tffile]['name'],$_FILES[$tffile]['type'],$_FILES[$tffile]['size'],$classid);
if($tfr['tran'])
{
if(strstr($formr['imgf'],",".$tf.","))//图片
{
$type=1;
}
else//附件
{
$type=0;
}
//写入数据库
$filesize=(int)$_FILES[$tffile]['size'];
eInsertFileTable($tfr[filename],$filesize,$tfr[filepath],'[EditInfo]'.$username,$classid,'Member['.$tf.']',$type,$filepass,$filepass,$public_r[fpath],0,6,0);
//删除旧文件
if($ecms==1&&$mr[$tf])
{
DelYMemberTranFile($mr[$tf],$tf,$username);
}
$repfval=$tfr['url'];
}
else
{
$repfval=$mr[$tf];
}
if($ecms==0)//添加
{
$ret_r[1]=str_replace("[!#@-".$tf."-@!]",$repfval,$ret_r[1]);
}
else//编辑
{
$ret_r[0]=str_replace("[!#@-".$tf."-@!]",$repfval,$ret_r[0]);
}
}
}
return $ret_r;
}
?>