function material_photo_upload() { global $_MooClass, $dbTablePre, $userid, $user, $pic_size_arr, $user_arr, $memcached; $and_uuid = isset($_GET['uuid']) ? $_GET['uuid'] : ''; $uid = $_GET['uid'] = isset($_GET['uid']) ? $_GET['uid'] : ''; if ($uid) { $userid = $mem_uid = $memcached->get('uid_' . $uid); } $checkuuid = check_uuid($and_uuid, $userid); if (!$checkuuid) { $error = "uuid_error"; echo return_data($error, false); exit; } $user_arr = $user = MooMembersData($userid); $user_rank_id = get_userrank($userid); if (MOOPHP_ALLOW_FASTDB) { $usercer = MooFastdbGet('certification', 'uid', $userid); } else { $usercer = $_MooClass['MooMySQL']->getOne("SELECT * FROM {$dbTablePre}certification WHERE uid='{$userid}' LIMIT 1 ", true); } if ($_POST['isupload'] == '1') { //note 设定用户id $memberid = $userid; //note 设定用户上传图片大小限制 最小10240字节 = 10k 最大419430字节 = 400K $minfilesize = 20480; $maxfilesize = 1024000; $filesize = $_FILES['userfile']['size']; if ($filesize > $maxfilesize) { $notice = "请上传小于1000KB的照片。"; echo return_data($notice); exit; } if ($filesize < $minfilesize) { $notice = "请上传大于20KB的照片。"; echo return_data($notice); exit; } //note 判断文件类型 $flag = ''; $true_type = file_type($_FILES['userfile']['tmp_name']); $extname = strtolower(substr($_FILES['userfile']['name'], strrpos($_FILES['userfile']['name'], '.') + 1)); $images = array('/jpg/', '/jpeg/', '/gif/', '/png/', '/JPG/', '/JPEG/', '/GIF/', '/PNG/'); if (in_array('/' . $extname . '/', $images)) { foreach ($images as $v) { //note http://ask.wangmeng.cn/question/76 if (preg_match($v, $_FILES['userfile']['type']) && ('image/' . $true_type == $_FILES['userfile']['type'] || 'image/p' . $true_type == $_FILES['userfile']['type'] || 'image/x-' . $true_type == $_FILES['userfile']['type'])) { $file_content = file_get_contents($_FILES['userfile']['tmp_name']); $low_file_content = strtolower($file_content); $pos = strpos($low_file_content, '<?php'); if ($pos) { $notice = "照片中含有不安全信息请重新上传"; echo return_data($notice); exit; } else { $flag = 1; } } } } //echo $true_type,'_',$flag,'_',$_FILES['userfile']['type'];exit; if ($flag != 1) { $notice = "请上传JPEG,JPG,PNG或GIF格式"; echo return_data($notice); exit; } //note 设定该用户最多上传20张图片(形象照除外) $maxuploadnum = 20; //note 查询出来的总数 $query = $_MooClass['MooMySQL']->getOne("select count(1) as num from `{$dbTablePre}pic` where `uid` = '{$memberid}' AND `isimage` = '0'", true); $total = $query['num']; //note 还可以上传多少张 $leave_num = $maxuploadnum - $total; if ($leave_num <= 0) { $notice = '您已经有' . $maxuploadnum . '张照片了,'; if ($user_arr['mainimg']) { $notice .= '不可以再上传了。'; } else { $notice .= '请在相册中选一张作为形象照。'; } echo return_data($notice); exit; } //note 设定相册名 $album = ''; //note 设定全局路径 $orgin = "orgin"; //note 原图文件夹名 $thumb_path = PIC_PATH; //图片路径 $timestat = time(); $thumb_datedir = date("Y", $timestat) . "/" . date("m", $timestat) . "/" . date("d", $timestat); //原图路径 $main_img_path = $thumb_path . "/" . $thumb_datedir . "/" . $orgin . "/"; //note 调用文件操作类库,建立无限级目录 $mkdirs = MooAutoLoad('MooFiles'); !is_dir($main_img_path) && $mkdirs->fileMake($main_img_path, 0777); //note 上传到指定目录(原图),并且获得上传后的文件描述 $upload = MooAutoLoad('MooUpload'); $upload->config(array('targetDir' => $main_img_path, 'saveType' => '0')); $files = $upload->saveFiles('userfile'); //note 获得图片路径和缩略图的路径 $imgurl = $files[0]['path'] . $files[0]['name'] . "." . $files[0]['extension']; if ($files[0]['extension'] == 'gif') { $output = imagecreatefromgif($imgurl); imagegif($output, $imgurl, 100); imagedestroy($output); } $imgurl2 = $files[0]['path'] . $files[0]['name'] . "_nowater." . $files[0]['extension']; @copy($imgurl, $imgurl2); //拷贝一张无水印图片(用于形象照) $pic_name = $files[0]['name'] . "." . $files[0]['extension']; $pic_name2 = $files[0]['name'] . "_nowater." . $files[0]['extension']; $first = new Imagick($imgurl); //写入水印 $second = new Imagick('public/system/images/logo_original.png'); //$second->setImageOpacity (0.4);//设置透明度 $dw = new ImagickDraw(); $dw->setGravity(Imagick::GRAVITY_SOUTHEAST); //设置位置 //$dw->setGravity(Imagick::GRAVITY_SOUTH);//设置位置 $dw->composite($second->getImageCompose(), 0, 0, 50, 0, $second); $first->drawImage($dw); $first->writeImage($imgurl); //将第一张图片的大小控制成我们需要的大小 list($width, $height) = getimagesize($imgurl); $d = $width / $height; $off_wh = off_WH($width, $height); $new_width = $off_wh['width']; $new_height = $off_wh['height']; unset($off_wh); $big_path = $files[0]['path']; $big_name = $files[0]['name'] . '.' . $files[0]['extension']; $image = MooAutoLoad('MooImage'); $image->config(array('thumbDir' => $big_path, 'thumbStatus' => '1', 'saveType' => '0', 'thumbName' => $pic_name, 'waterMarkMinWidth' => '41', 'waterMarkMinHeight' => '57', 'waterMarkStatus' => 9)); $image->thumb($new_width, $new_height, $imgurl); $image->waterMark(); //note 缩略无水印图片 $image->config(array('thumbDir' => $big_path, 'thumbStatus' => '1', 'saveType' => '0', 'thumbName' => $pic_name2, 'waterMarkMinWidth' => '41', 'waterMarkMinHeight' => '57', 'waterMarkStatus' => 9)); $image->thumb($new_width, $new_height, $imgurl2); $image->waterMark(); $thumb1_width = $pic_size_arr["1"]["width"]; $thumb1_height = $pic_size_arr["1"]["height"]; $thumb2_width = $pic_size_arr["2"]["width"]; $thumb2_height = $pic_size_arr["2"]["height"]; $thumb3_width = $pic_size_arr["3"]["width"]; $thumb3_height = $pic_size_arr["3"]["height"]; //note 生成日期目录 $thumb1_path = $thumb_path . "/" . $thumb_datedir . "/" . $thumb1_width . "_" . $thumb1_height . "/"; $thumb2_path = $thumb_path . "/" . $thumb_datedir . "/" . $thumb2_width . "_" . $thumb2_height . "/"; $thumb3_path = $thumb_path . "/" . $thumb_datedir . "/" . $thumb3_width . "_" . $thumb3_height . "/"; !is_dir($thumb1_path) && $mkdirs->fileMake($thumb1_path, 0777); !is_dir($thumb2_path) && $mkdirs->fileMake($thumb2_path, 0777); !is_dir($thumb3_path) && $mkdirs->fileMake($thumb3_path, 0777); //note 缩略图文件名 $thumb_filename = md5($files[0]['name']) . "." . $files[0]['extension']; $c = 41 / 57; if ($d > $c) { $thumb1_width = 41; $b = $width / $thumb1_width; $thumb1_height = $height / $b; } else { $thumb1_height = 57; $b = $height / $thumb1_height; $thumb1_width = $width / $b; } $image->config(array('thumbDir' => $thumb1_path, 'thumbStatus' => '1', 'saveType' => '0', 'thumbName' => $thumb_filename, 'waterMarkMinWidth' => '41', 'waterMarkMinHeight' => '57', 'waterMarkStatus' => 9)); $image->thumb($thumb1_width, $thumb1_height, $imgurl); $image->waterMark(); $c = 139 / 189; if ($d > $c) { $thumb2_width = 139; $b = $width / $thumb2_width; $thumb2_height = $height / $b; } else { $thumb2_height = 189; $b = $height / $thumb2_height; $thumb2_width = $width / $b; } $image->config(array('thumbDir' => $thumb2_path, 'thumbStatus' => '1', 'saveType' => '0', 'thumbName' => $thumb_filename, 'waterMarkMinWidth' => '139', 'waterMarkMinHeight' => '189', 'waterMarkStatus' => 9)); $image->thumb($thumb2_width, $thumb2_height, $imgurl); $image->waterMark(); $c = 171 / 244; if ($d > $c) { $thumb3_width = 171; $b = $width / $thumb3_width; $thumb3_height = $height / $b; } else { $thumb3_height = 244; $b = $height / $thumb3_height; $thumb3_width = $width / $b; } $image->config(array('thumbDir' => $thumb3_path, 'thumbStatus' => '1', 'saveType' => '0', 'thumbName' => $thumb_filename, 'waterMarkMinWidth' => '171', 'waterMarkMinHeight' => '244', 'waterMarkStatus' => 9)); $image->thumb($thumb3_width, $thumb3_height, $imgurl); $image->waterMark(); //note 设定是否是形象照 1为形象照,0为普通照 $isimage = (int) $_POST['isimage']; $updatetime = time(); if ($isimage === 1) { $_MooClass['MooMySQL']->query("update `{$dbTablePre}members_base` set `mainimg`='{$imgurl}',`pic_date` = '{$thumb_datedir}',`pic_name` = '{$pic_name}' where `uid` = '{$memberid}'"); $_MooClass['MooMySQL']->query("update `{$dbTablePre}members_search` set images_ischeck='2' where `uid` = '{$memberid}'"); if (MOOPHP_ALLOW_FASTDB) { $image_arr = array(); $image_arr['mainimg'] = $imgurl; $image_arr['pic_date'] = $thumb_datedir; $image_arr['pic_name'] = $pic_name; $members_search['images_ischeck'] = '2'; MooFastdbUpdate('members_base', 'uid', $memberid, $image_arr); MooFastdbUpdate('members_search', 'uid', $memberid, $members_search); } searchApi("members_man members_women")->updateAttr(array('images_ischeck'), array($memberid => array(0))); UpdateMembersSNS($userid, '修改了形象照'); } //note 写入相册表 $isimage = 0; //web_members.mainimg == web_pic.imgurl 即形象照 $_MooClass['MooMySQL']->query("insert into `{$dbTablePre}pic` set `uid` = '{$memberid}',`isimage` = '{$isimage}',`album` = '{$album}',`imgurl` = '{$imgurl}',`pic_date` = '{$thumb_datedir}',`pic_name` = '{$pic_name}'"); //提交会员动态makui UpdateMembersSNS($userid, '修改了相册'); $notice = "成功"; echo return_data($notice); exit; } else { $user1 = $user_arr; } }
function material_upinfo_submit() { global $_MooClass, $dbTablePre, $userid, $user_arr, $memcached; $and_uuid = isset($_GET['uuid']) ? $_GET['uuid'] : ''; $uid = $_GET['uid'] = isset($_GET['uid']) ? $_GET['uid'] : ''; if ($uid) { $userid = $mem_uid = $memcached->get('uid_' . $uid); } $checkuuid = check_uuid($and_uuid, $userid); if (!$checkuuid) { $error = "uuid_error"; echo return_data($error, false); exit; } $user_arr = MooMembersData($userid); //checkAuthMod('index.php?n=material');//客服模拟登录操作没有修改权限 $validation = MooAutoLoad('MooValidation'); $uid = $userid; //$user_rank_id=get_userrank($userid); //var_dump($user_rank_id); //$update1_arr = $update2_arr = $update3_arr = array(); //note members表字段 $members_search = array(); $members_base = array(); $members_choice = array(); $members_introduce = array(); $birthyear = MooGetGPC('year', 'string', 'P'); $members_search['birthyear'] = $birthyear; $birthmonth = MooGetGPC('month', 'string', 'P'); $birthday = MooGetGPC('days', 'string', 'P'); $members_search['updatetime'] = time(); $members_search['nickname'] = safeFilter(MoogetGPC('nickname', 'string', 'P')); $members_search['telphone'] = MoogetGPC('telphone', 'string', 'P'); $members_search['marriage'] = MoogetGPC('marriage1', 'integer', 'P'); $members_search['height'] = MoogetGPC('height', 'integer', 'P'); $members_search['salary'] = MoogetGPC('salary', 'integer', 'P'); $members_search['education'] = MoogetGPC('education1', 'integer', 'P'); $members_search['children'] = MoogetGPC('children1', 'integer', 'P'); $members_search['house'] = MoogetGPC('house', 'integer', 'P'); $members_base['oldsex'] = MoogetGPC('oldsex', 'integer', 'P'); $members_search['province'] = MoogetGPC('province', 'integer', 'P'); $members_search['city'] = MoogetGPC('city', 'integer', 'P'); if (in_array($members_search['province'], array(10101201, 10101002))) { //note 修正广东省深圳和广州的区域查询 2010-09-04 $members_search['city'] = $members_search['province']; $members_search['province'] = 10101000; } //note choice表字段 $gender = $_MooClass['MooMySQL']->getOne("select gender from {$dbTablePre}members_search WHERE uid='{$uid}'", true); if ($gender['gender'] == 0) { $members_choice['gender'] = 1; } else { $members_choice['gender'] = 0; } //$update2_arr['sex'] = MoogetGpc('sex','integer','p'); $members_choice['age1'] = MoogetGPC('age1', 'integer', 'P'); $members_choice['age2'] = MoogetGPC('age2', 'integer', 'P'); $members_choice['workprovince'] = MoogetGPC('workProvince', 'integer', 'P'); $members_choice['workcity'] = MoogetGPC('workCity', 'integer', 'P'); if (in_array($members_choice['workprovince'], array(10101201, 10101002))) { //note 修正广东省深圳和广州的区域查询 2010-09-04 $members_choice['workcity'] = $members_choice['workprovince']; $members_choice['workprovince'] = 10101000; } $members_choice['marriage'] = MoogetGPC('marriage2', 'integer', 'P'); $members_choice['education'] = MoogetGPC('education2', 'integer', 'P'); $members_choice['children'] = MoogetGPC('children2', 'integer', 'P'); $members_choice['salary'] = MoogetGPC('salary1', 'integer', 'P'); $members_choice['height1'] = MoogetGPC('height1', 'integer', 'P'); $members_choice['height2'] = MoogetGPC('height2', 'integer', 'P'); $members_choice['hasphoto'] = MoogetGPC('hasphoto', 'integer', 'P'); $members_choice['nature'] = MoogetGPC('nature2', 'integer', 'P'); $members_choice['body'] = MoogetGPC('body2', 'integer', 'P'); $members_choice['weight1'] = MoogetGPC('weight1', 'integer', 'P'); $members_choice['weight2'] = MoogetGPC('weight2', 'integer', 'P'); $members_choice['occupation'] = MoogetGPC('occupation2', 'integer', 'P'); $members_choice['nation'] = MoogetGPC('stock2', 'integer', 'P'); $members_choice['hometownprovince'] = MoogetGPC('hometownProvince2', 'integer', 'P'); $members_choice['hometowncity'] = MoogetGPC('hometownCity2', 'integer', 'P'); if (in_array($members_choice['hometownprovince'], array(10101201, 10101002))) { //note 修正广东省深圳和广州的区域查询 2010-09-04 $members_choice['hometowncity'] = $members_choice['hometownProvince']; $members_choice['hometownprovince'] = 10101000; } $members_choice['wantchildren'] = MoogetGPC('wantchildren2', 'integer', 'P'); $members_choice['smoking'] = MoogetGPC('issmoking', 'integer', 'P'); $members_choice['drinking'] = MoogetGPC('isdrinking', 'integer', 'P'); $members_introduce['introduce_check'] = safeFilter(trim(MoogetGPC('introduce', 'string', 'P'))); $rs = $user_arr; //note 验证状态 if (MOOPHP_ALLOW_FASTDB) { $sta = MooFastdbGet('certification', 'uid', $uid); } else { $sta = $_MooClass['MooMySQL']->getOne("select telphone from {$dbTablePre}certification WHERE uid='{$uid}'", true); } $where_arr = array('uid' => $uid); foreach ($members_search as $key => $val) { //无手机号吗 if ($key == 'telphone' && $val == '') { continue; } $memberssearch[$key] = $val; } // foreach ($members_base as $key=>$val){ // $membersbase[$key]=$val; // } if (count($members_base) >= 1 || count($memberssearch) >= 1) { $members_search['updatetime'] = time(); if (!rtrim($members_search['nickname'])) { $error = "昵称必填"; echo return_data($error, false); exit; } if (preg_match('/^(1[345]\\d{9})|(18[024-9]\\d{8})|(010-?\\d{8})|(02)[012345789]-?\\d{8}|(0[3-9]\\d{2,2}-?\\d{7,8})|(.*@.*)$/', $members_search['nickname'])) { //MooMessage("昵称不符合规范!", "javascript:history.go(-1)"); $error = "昵称不符合规范!"; echo return_data($error, false); exit; } //echo 'sss';exit; str_length($members_search['nickname']); //note 昵称截取 $members_search['nickname'] = MooCutstr($members_search['nickname'], 18, $dot = ''); if ($members_search['telphone'] && !preg_match('/^((1[345]\\d{9})|(18[0-9]\\d{8}))$/', $members_search['telphone'])) { //MooMessage('请输入正确的手机号码','javascript:history.go(-1)'); $error = "请输入正确的手机号码"; echo return_data($error, false); exit; } //$birth=strtotime("$birthyear/$birthmonth/$birthday"); $birth = "{$birthyear}-{$birthmonth}-{$birthday}"; $members_base['birth'] = $birth; updatetable('members_base', $members_base, $where_arr); updatetable('members_search', $memberssearch, $where_arr); if (MOOPHP_ALLOW_FASTDB) { MooFastdbUpdate('members_base', 'uid', $uid, $members_base); MooFastdbUpdate('members_search', 'uid', $uid, $memberssearch); } //searchApi("members_man members_women")->UpdateAttributes(array($uid=>$members_search)); } //提交会员动态makui UpdateMembersSNS($uid, '修改了资料'); //内心独白必填 //if(rtrim($update2_arr['introduce_check'] != '')){ $members_introduce['introduce'] = ''; $members_introduce['introduce_pass'] = '******'; //if(isset($members_choice)){ $members_choice['updatetime'] = time(); updatetable('members_choice', $members_choice, $where_arr); //} updatetable('members_introduce', $members_introduce, $where_arr); if (MOOPHP_ALLOW_FASTDB) { $members_choice['uid'] = $uid; $members_introduce['uid'] = $uid; //print_r($update2_arr);exit; if (isset($members_choice)) { $members_choice['updatetime'] = time(); MooFastdbUpdate('members_choice', 'uid', $uid, $members_choice); } MooFastdbUpdate('members_introduce', 'uid', $uid, $members_introduce); } //searchApi("members_man members_women")->UpdateAttributes(array($uid=>$members_choice)); if (MOOPHP_ALLOW_FASTDB) { $userchoice = MooFastdbGet('members_choice', 'uid', $uid); $introduce = MooFastdbGet('members_introduce', 'uid', $uid); $userchoice = array_merge($userchoice, $introduce); } else { $userchoice = $_MooClass['MooMySQL']->getOne("SELECT * FROM {$dbTablePre}members_choice mc left join {$dbTablePre}members_introduce mi WHERE mc.uid=mi.uid AND uid = '{$uid}'", true); } //}else{ // MooMessage("内心独白必填!", "index.php?n=material&h=upinfo"); //} /* //低质量会员自动分配 if($user_rank_id == 0){ //以下信息都没选,都规为垃圾会员,自动分配给普通客服 if($update1_arr['height']=='-1' || $update1_arr['salary']=='-1' || $update1_arr['children']=='-1' || $update1_arr['oldsex']=='-1' || $update2_arr['age1']=='-1' || $update2_arr['age2']=='-1' || $update2_arr['marriage'] == '-1' || $update2_arr['children'] == '-1' || $update2_arr['body'] == '-1'){ invalid_user_allotserver($uid); } } */ if ($rs['telphone'] == $members_search['telphone'] || $sta['telphone'] == '' || $members_search['telphone'] == '') { $error = "修改成功"; echo return_data($error, true); exit; } else { //重新手机认证 $sql = "update {$dbTablePre}certification set telphone='' where uid='{$uid}'"; $_MooClass['MooMySQL']->query($sql); $certif_arr['telphone'] = ''; MooFastdbUpdate('certification', 'uid', $uid, $certif_arr); if (MOOPHP_ALLOW_FASTDB) { if (MOOPHP_ALLOW_FASTDB) { $certification_1 = MooFastdbGet('certification', 'uid', $userid); } else { $certification_1 = $_MooClass['MooMySQL']->getOne("SELECT * FROM {$dbTablePre}certification WHERE uid = '{$userid}'", true); } } //Message("您的手机信息有变动请再次通过我们的验证",'index.php?n=myaccount&h=telphone'); $error = "您的手机信息有变动请再次通过我们的验证"; echo return_data($error, true); exit; } //note 快速常用搜索表更新 //fastsearch_update($userid,'1'); //note 快速高级搜索表更新 //fastsearch_update($userid,'2'); }