public function basic_save() { $uid = $this->_uinfo['uid']; $action = $this->input->post('action'); if ($uid) { $old = StudentModel::get_student($uid); if (empty($old)) { StudentModel::studentAjaxLogout(); message('信息不存在', 'student/index/login'); } } $message = array(); $student_fullname = trim($this->input->post('full_name')); $len = mb_strlen($student_fullname, 'utf-8'); $student['last_name'] = mb_substr($student_fullname, 0, 1, 'utf-8'); $student['first_name'] = mb_substr($student_fullname, 1, $len - 1, 'utf-8'); $student['sex'] = intval($this->input->post('sex')) == 1 ? 1 : 2; $student['birthday'] = strtotime($this->input->post('birthday')); $student['idcard'] = trim($this->input->post('idcard')); $student['external_account'] = trim($this->input->post('student_ticket')); $student['email'] = trim($this->input->post('email')); $student['grade_id'] = intval($this->input->post('grade_id')); $student['school_id'] = intval($this->input->post('school_id')); $student['school_name'] = trim($this->input->post('school_name')); $student['mobile'] = trim($this->input->post('mobile')); if (empty($student['email']) or !is_email($student['email'])) { $message[] = '请正确填写Email地址'; } if (!$uid) { $password = trim($this->input->post('password')); $password_confirm = trim($this->input->post('password_confirm')); if ($action == 'add') { if (is_string($passwd_msg = is_password($password))) { $message[] = $passwd_msg; } else { $student['password'] = $password; } } elseif (strlen($password) > 0) { $student['password'] = $password; } if (isset($student['password']) && $password !== $password_confirm) { $message[] = '两次密码输入不一致!'; } } if (empty($student['first_name']) || empty($student['last_name'])) { $message[] = '请填写姓名'; } if (empty($student['birthday'])) { $message[] = '请填写出生日期'; } if (empty($student['idcard']) || !is_idcard($student['idcard'])) { message('请正确填写身份证号码!'); } if ($student['grade_id'] < 1 or $student['grade_id'] > 12) { $message[] = '请选择就读年级'; } if (empty($student['school_id'])) { $message[] = '请选择就读学校'; } if (strlen($student['mobile']) > 0 && !is_phone($student['mobile'])) { $message[] = '请正确填写手机号码'; } // 检查email是否已注册 $tmp_student = $this->db->select('uid, email_validate')->get_where('student', array('email' => $student['email']))->row_array(); if ($tmp_student && $tmp_student['uid'] != $uid) { $message[] = '该Email地址已被注册!'; } //检查身份证否已注册 $student_idcard = $this->db->select('uid')->get_where('student', array('idcard' => $student['idcard']))->row_array(); if ($student_idcard && $student_idcard['uid'] != $uid) { $message[] = '该身份证号码已被注册'; } if ($_FILES['picture']['name']) { if ($uid) { $config['upload_path'] = _UPLOAD_ROOT_PATH_ . 'uploads/student/' . date('Ym') . '/'; } else { $config['upload_path'] = _UPLOAD_ROOT_PATH_ . 'uploads/student/temp/' . date('Ym') . '/'; } $config['allowed_types'] = 'gif|jpg'; $config['max_size'] = '1024'; $config['max_width'] = '2000'; $config['max_height'] = '2000'; $config['encrypt_name'] = TRUE; $this->load->library('upload', $config); if ($this->upload->do_upload('picture')) { $student['picture'] = $this->upload->data('file_relative_path'); } else { $msg = array("头像图片限制:", "1、图片大小小于 1M", "2、尺寸不超过2000 x 2000像素", "3、图片格式为 jpg 或 gif"); $message[] = $this->upload->display_errors() . '<hr/><font style="font-weight:bold;font-size:12px;">' . implode('</br>', $msg) . '</font><hr/>'; } } if ($message) { if (!empty($student['picture'])) { @unlink(_UPLOAD_ROOT_PATH_ . $student['picture']); } message(implode('<br/>', $message)); } /*************** COPY FROM base_save() START ***********************/ if ($uid) { $student2 = array(); $student2['grade_id'] = intval($this->input->post('grade_id')); //$student2['address'] = trim($this->input->post('address')); $student2['zipcode'] = trim($this->input->post('zipcode')); $sbinfo = array(); $sbinfo['sb_addr_provid'] = intval($this->input->post('sb_addr_provid')); $sbinfo['sb_addr_cityid'] = intval($this->input->post('sb_addr_cityid')); $sbinfo['sb_addr_areaid'] = intval($this->input->post('sb_addr_areaid')); $sbinfo['sb_addr_desc'] = trim($this->input->post('sb_addr_desc')); // 培训机构、培训课程、授课教师 $sbcinfo = array(); $sbcinfo['no_tiid'] = intval($this->input->post('no_tiid')); $sbcinfo['sbc_tiid'] = intval($this->input->post('sbc_tiid')); $sbcinfo['ti_name'] = trim($this->input->post('ti_name')); $sbcinfo['sbc_corsid'] = intval($this->input->post('sbc_corsid')); $sbcinfo['cors_cmid'] = intval($this->input->post('cors_cmid')); $sbcinfo['cors_name'] = trim($this->input->post('cors_name')); $sbcinfo['sbc_teachers'] = trim($this->input->post('sbc_teachers')); $sbs_stunumtype = $this->input->post('sbs_stunumtype'); if (!is_array($sbs_stunumtype)) { $sbs_stunumtype = array(); } $sbclassid_classid = $this->input->post('sbclassid_classid'); if (!is_array($sbclassid_classid)) { $sbclassid_classid = array(); } /*if (empty($student2['address'])) { $message[] = '请填写家庭地址'; }*/ if (empty($student2['zipcode'])) { $message[] = '请填写邮编'; } if ($sbinfo['sb_addr_provid'] == 0) { $message[] = '请填写家庭所在省市'; } if ($sbinfo['sb_addr_desc'] == '') { $message[] = '请填写家庭住址'; } if (empty($sbcinfo['no_tiid'])) { if ($sbcinfo['ti_name'] == '') { $message[] = '请填写培训机构'; } if ($sbcinfo['cors_name'] == '') { $message[] = '请填写培训课程'; } if ($sbcinfo['sbc_teachers'] == '') { $message[] = '请填写授课教师'; } } if (empty($sbs_stunumtype)) { $message[] = '请选择可接受授课模式'; } if (empty($sbclassid_classid)) { $message[] = '请选择希望辅导难度'; } if ($message) { message(implode('<br/>', $message)); } } /*************** COPY FROM base() END ******************************/ if ($uid) { // 在用户修改信息时才发,注册不发邮件 if (empty($tmp_student) || !$tmp_student['email_validate']) { $student['email_validate'] = 0; // 发送邮件 $email_tpl = C('email_template/register'); $mail = array('student' => $student, 'hash' => email_hash('encode', $uid)); send_email($email_tpl['subject'], $this->load->view($email_tpl['tpl'], $mail, TRUE), $student['email']); } } if ($uid) { unset($student['password']); if (isset($student['external_account'])) { unset($student['external_account']); } // 已注册,更新数据库 if (isset($student['school_name'])) { unset($student['school_name']); } unset($student['uid']); Fn::db()->update('rd_student', $student, 'uid = ' . $uid); if (!empty($student['picture']) && $old['picture']) { @unlink(_UPLOAD_ROOT_PATH_ . $old['picture']); } StudentModel::studentUpdateSession(); /****************** COPY FROM base_save() START ****************/ unset($student2['grade_id']); // 已注册,更新数据库 $db = Fn::db(); $bOk = false; try { if ($db->beginTransaction()) { $db->update('rd_student', $student2, "uid = {$uid}"); $db->delete('t_student_base', "sb_uid = {$uid}"); $sbinfo['sb_uid'] = $uid; $db->insert('t_student_base', $sbinfo); $db->delete('t_student_base_classid', "sbclassid_uid = {$uid}"); foreach ($sbclassid_classid as $v) { $db->insert('t_student_base_classid', array('sbclassid_uid' => $uid, 'sbclassid_classid' => $v)); } $db->delete('t_student_base_stunumtype', "sbs_uid = {$uid}"); foreach ($sbs_stunumtype as $v) { $db->insert('t_student_base_stunumtype', array('sbs_uid' => $uid, 'sbs_stunumtype' => $v)); } $db->delete('t_student_base_course', 'sbc_uid = ' . $uid); if (empty($sbcinfo['no_tiid'])) { $now_time = time(); if (!$sbcinfo['sbc_tiid']) { $row = array('ti_name' => $sbcinfo['ti_name'], 'ti_typeid' => 1, 'ti_flag' => $now_time, 'ti_priid' => 0, 'ti_provid' => $sbinfo['sb_addr_provid'], 'ti_cityid' => $sbinfo['sb_addr_cityid'], 'ti_areaid' => $sbinfo['sb_addr_areaid'], 'ti_addtime' => date('Y-m-d H:i:s', $now_time), 'ti_adduid' => 1); $db->insert('t_training_institution', $row); $ti_id = $db->lastInsertId('t_training_institution', 'ti_id'); $sbcinfo['sbc_tiid'] = $ti_id; } if (!$sbcinfo['sbc_corsid']) { if ($sbcinfo['cors_cmid'] != 1) { $sbcinfo['cors_cmid'] = 2; } $row = array('cors_name' => $sbcinfo['cors_name'], 'cors_cmid' => $sbcinfo['cors_cmid'], 'cors_flag' => $now_time, 'cors_tiid' => $sbcinfo['sbc_tiid'], 'cors_stunumtype' => $sbcinfo['cors_cmid'], 'cors_addtime' => date('Y-m-d H:i:s', $now_time), 'cors_adduid' => 1, 'cors_lastmodify' => date('Y-m-d H:i:s', $now_time)); $db->insert('t_course', $row); $cors_id = $db->lastInsertId('t_course', 'cors_id'); $sbcinfo['sbc_corsid'] = $cors_id; } $db->insert('t_student_base_course', array('sbc_uid' => $uid, 'sbc_idx' => 0, 'sbc_tiid' => $sbcinfo['sbc_tiid'], 'sbc_corsid' => $sbcinfo['sbc_corsid'], 'sbc_teachers' => $sbcinfo['sbc_teachers'])); } $bOk = $db->commit(); if (!$bOk) { $err = $db->errorInfo()[2]; $db->rollBack(); message('学习概况保存失败(' . $err . ')'); } } if (!$bOk) { message('学习概况保存失败(执行事务处理失败)'); } } catch (Exception $e) { message('学习概况保存失败(' . $e->getMessage() . ')'); } /*************** COPY FROM base_save() END ********************/ } else { isset($student['password']) && ($student['password'] = my_md5($student['password'])); if (!isset($student['picture'])) { $student['picture'] = ''; } $old = $this->session->userdata('student'); if ($old) { if (empty($student['password'])) { $student['password'] = $old['password']; } if (!empty($old['picture'])) { if (empty($student['picture'])) { $student['picture'] = $old['picture']; } else { @unlink(_UPLOAD_ROOT_PATH_ . $old['picture']); } } } // 未注册,更新session $this->session->set_userdata(array('student' => $student)); } if (!$uid && C('register_simple')) { $this->session->set_userdata('complete', 1); redirect('student/profile/submit_simple'); } else { if ($uid or $this->session->userdata('complete')) { message('基本信息和学习概况修改成功', 'student/profile/preview', 'success'); } else { redirect('student/profile/preview'); //redirect('student/profile/base'); } } }