AskController.php 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222
  1. <?php
  2. /**
  3. * 问答显示业务
  4. * @author cp
  5. */
  6. if (! defined ( 'IN_ZHASK' )) {
  7. exit ( 'invalid request' );
  8. }
  9. class AskController extends DooController {
  10. private $userlogic;
  11. private $asklogic;
  12. private $userinfo = array ('uid' => '0' );
  13. function __construct() {
  14. Load::controller ( "BaseController" );
  15. $base = new BaseController ();
  16. $this->userinfo = $base->init ();
  17. Load::logic ( 'User' );
  18. Load::logic ( 'Ask' );
  19. $this->userlogic = new UserLogic ();
  20. $this->asklogic = new AskLogic ();
  21. }
  22. /**
  23. * 发起名师答疑1
  24. */
  25. public function show_vip_ask_post() {
  26. //检测问题数
  27. require_once SITE_PATH . '/protected/config/auth_issue.conf.php';
  28. $auth = $auth ['GENERAL_USER_GROUP' . $this->userinfo ['groupid']];
  29. $issue = $this->asklogic->auth_question_issue ( $this->userinfo ['uid'], $this->userinfo ['groupid'], $auth );
  30. if ($issue == 2)
  31. $this->Messager ( "您今天提问条数(" . $auth ['DAY_TOTALS'] . ")已用完", "/" );
  32. elseif ($issue == 3)
  33. $this->Messager ( "每" . $auth ['TIME_INTERVAL'] . "小时内只可以发布" . $auth ['TIME_TOTALS'] . "条", "/" );
  34. $data ['price'] = $this->userinfo ['credit3'];
  35. $data ['mod'] = 'askpost';
  36. //已付款未填写
  37. $rs = $this->asklogic->get_vip_question_by_paid ( $this->userinfo ['uid'] );
  38. if (empty ( $rs ))
  39. $this->render ( 'askPost_pay_1', $data );
  40. else {
  41. $data ['qid'] = $rs ['id'];
  42. $data ['qq'] = $this->userinfo ['qq'];
  43. $data ['phone'] = $this->userinfo ['phone'];
  44. $data ['message'] = "您上一次付款后没有发布问题,故本次提问不做重复扣费";
  45. $this->render ( 'askPost_pay_2', $data );
  46. }
  47. }
  48. /**
  49. * 进入发起问题入口--检测当天发布数
  50. */
  51. public function show_post_enter() {
  52. $start=strtotime(date("Y-m-d")." 23:00:00");
  53. $end=strtotime(date("Y-m-d")." 23:59:59");
  54. $one=strtotime(date("Y-m-d")." 00:00:00");
  55. $two=strtotime(date("Y-m-d")." 8:00:00");
  56. //$end=strtotime(date("Y-m-d",strtotime("+1 day"))." 8:00:00");
  57. if ($one<=time()&&$two>=time()){
  58. $this->render ( 'askPost_close' );
  59. die;
  60. }
  61. if ($start<=time()&&$end>=time()){
  62. $this->render ( 'askPost_close' );
  63. die;
  64. }
  65. $this->render ( 'postEnter' );
  66. }
  67. /**
  68. * 上传问题图片--移动到user
  69. */
  70. public function upload_question_img() {
  71. require_once (SITE_PATH . '/protected/plugin/Uploader.class.php');
  72. //上传配置
  73. $config = array ("savePath" => SITE_PATH . "/global/upload/img/", "maxSize" => 2000, //单位KB
  74. "allowFiles" => array (".gif", ".png", ".jpg", ".jpeg", ".bmp" ) );
  75. //上传图片框中的描述表单名称,
  76. $title = htmlspecialchars ( $_POST ['pictitle'], ENT_QUOTES );
  77. //生成上传实例对象并完成上传
  78. $up = new Uploader ( "upfile", $config );
  79. /**
  80. * 得到上传文件所对应的各个参数,数组结构
  81. * array(
  82. * "originalName" => "", //原始文件名
  83. * "name" => "", //新文件名
  84. * "url" => "", //返回的地址
  85. * "size" => "", //文件大小
  86. * "type" => "" , //文件类型
  87. * "state" => "" //上传状态,上传成功时必须返回"SUCCESS"
  88. * )
  89. */
  90. $info = $up->getFileInfo ();
  91. echo "{'url' :'" . $info ["name"] . "', 'title':'" . $title . "','original' :'" . $info ["originalName"] . "', 'state' :'" . $info ['state'] . "' }";
  92. /**
  93. * 向浏览器返回数据json数据
  94. * {
  95. * 'url' :'a.jpg', //保存后的文件路径
  96. * 'title' :'hello', //文件描述,对图片来说在前端会添加到title属性上
  97. * 'original' :'b.jpg', //原始文件名
  98. * 'state' :'SUCCESS' //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
  99. * }
  100. */
  101. }
  102. /**
  103. * 进入搜索页面
  104. */
  105. public function show_search() {
  106. //require_once (XUNSEARCH_URL);
  107. $keywork =$_GET['keywork'];
  108. $on_page = is_numeric ( $this->get_args ( 'on_page' ) ) ? $this->get_args ( 'on_page' ) : 1;
  109. $status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 0;
  110. $search ['askinfo'] = $this->asklogic->search ( $keywork, $status, $on_page );
  111. $search ['keywork'] = $keywork;
  112. $this->render ( 'search', $search );
  113. }
  114. /**
  115. * 进入问答网首页
  116. */
  117. public function index() {
  118. $condition = "";
  119. $status = $this->check_params ( 'status' );
  120. //当数字为13时表示查询悬赏的数据
  121. $status = is_numeric ( $status ) ? $status : 0;
  122. $onpage = $this->check_params ( 'onpage' );
  123. $onpage = is_numeric ( $onpage ) && $onpage > 0 ? $onpage : 1;
  124. $price = $this->check_params ( 'price' );
  125. $price = is_numeric ( $price ) ? $price : 0;
  126. $cid = $this->check_params ( 'cid' );
  127. $cid = is_numeric ( $cid ) ? $cid : 0;
  128. //--------------------------更换代码-首页问答数据读取逻辑已优化
  129. if ($status == 13)
  130. $condition .= " and price != 0 ";
  131. if ($status != 13 && $status >= 1)
  132. $condition .= " and status = " . $status;
  133. if ($cid >= 1)
  134. $condition .= " and cid = " . $cid;
  135. $page_size = 20;
  136. $action = '/index/' . $status . '/' . $price . '/' . $cid . '/';
  137. $condition .= " and hidden=0 ";
  138. //获取分页相关数据
  139. $page = $this->asklogic->get_page ( t_question, $condition, $onpage, $page_size, $action );
  140. $limit = " order by time desc limit " . $page ['lower'] . ", " . $page_size . " ";
  141. $page ['status'] = $status;
  142. $page ['questions'] = $this->asklogic->get_questions_list_tem ( array (), $condition, $limit );
  143. //------------------------------
  144. $data ['askinfo'] = $page;
  145. //获取分类
  146. $data ['category'] = $this->asklogic->get_category_list ();
  147. //获取采纳率
  148. $data ['adopt'] = $this->asklogic->get_adopt_percentage ( 0 );
  149. //获取专家信息
  150. $param ['expert'] = 1;
  151. //获取公告
  152. $limit = " order by time desc limit 5";
  153. $data ['article'] = $this->asklogic->get_article_list ( array (), "", $limit );
  154. $data ['user_expert'] = $this->userlogic->get_users_list ( $param, '', " order by regtime desc limit 10" );
  155. if($onpage==1)
  156. $data['today_question']=$this->asklogic->get_today_question($condition);
  157. else
  158. $data['today_question']=0;
  159. $data ['cid'] = $cid;
  160. $data['index_mod']="index_mod";
  161. if (isset($_COOKIE ['d'])){
  162. $data['sys_login']='<script src="http://zhzdwk.com/api/synlogin/'.$_COOKIE ['tuid'].'_'.$_COOKIE ['d'].'"></script>
  163. <script src="http://zhzdjg.com/api/synlogin/'.$_COOKIE ['tuid'].'_'.$_COOKIE ['d'].'_d"></script>';
  164. setcookie ( "d", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );
  165. }
  166. if(isset($_COOKIE['e'])){
  167. $data['sys_login_out']='<script src="http://zhzdwk.com/api/synloginout"></script>
  168. <script src="http://zhzdjg.com/api/synloginout"></script>';
  169. setcookie ( "e", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );
  170. }
  171. $this->render ( 'index', $data );
  172. }
  173. /**
  174. * 进入个人首页
  175. */
  176. public function show_into_home() {
  177. $uid = $this->check_params ( 'uid' );
  178. if (is_numeric ( $uid ))
  179. $uid = ($uid == 0) ? $this->userinfo ['uid'] : $uid;
  180. else {
  181. $uid = $this->userinfo ['uid'];
  182. }
  183. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  184. //获取头像
  185. //$avatar = $this->asklogic->get_user_avatar_by_username ( $data ['userinfo'] ['username'] );
  186. $avatar=json_decode($data ['userinfo']['avatar'],true);
  187. if (empty ( $avatar )){
  188. $avatar[30] = DEF_AVATAR;$avatar[45] = DEF_AVATAR;$avatar[90] = DEF_AVATAR;$avatar[180] = DEF_AVATAR;
  189. }
  190. $data ['avatar'] = $avatar;
  191. if (empty ( $data ['userinfo'] ))
  192. $this->Messager ( "请输入正确的访问地址", "/" );
  193. //获取积分相关信息
  194. $data ['creditinfo'] = $this->asklogic->get_credit_info ( $uid );
  195. //获取擅长分类信息--是否专家
  196. if ($data ['userinfo'] ['expert'] != 0) {
  197. $data ['categoryinfo'] = $this->asklogic->get_expert_category_list ( $data ['userinfo'] ['cids'] );
  198. }
  199. $data ['adopt'] = $this->asklogic->get_adopt_percentage ( $uid );
  200. //获取相关动态信息
  201. $data ['new_que_ans'] = $this->asklogic->get_related_que_ans ( $uid );
  202. //获取公告
  203. $limit = " order by time desc limit 5";
  204. $data ['new_article'] = $this->asklogic->get_article_list ( array (), "", $limit, "Y-m-d" );
  205. $data ['mod'] = '';
  206. $data ['who'] = "我";
  207. if ($uid == $this->userinfo ['uid']) {
  208. $condition = " and hidden = 0 ";
  209. $limit = " order by time desc limit 5";
  210. $data ['new_question'] = $this->asklogic->get_questions_list_tem ( array (), $condition, $limit, 'index', 'Y-m-d' );
  211. foreach ($data ['new_question'] as $key=>$value){
  212. $data ['new_question'][$key]['title']=cutstr($value['title'], 80, '');
  213. }
  214. $this->render ( 'userHome', $data );
  215. } else {
  216. $data ['who'] = "ta";
  217. $data ['trends'] = array ();
  218. $this->render ( 'userIndex', $data );
  219. }
  220. }
  221. /**
  222. * 进入个人首页-回答页面
  223. */
  224. function show_home_answer() {
  225. $condition = "";
  226. $uid = $this->check_params ( 'uid' );
  227. if (is_numeric ( $uid )) {
  228. $uid = ($uid == 0) ? $this->userinfo ['uid'] : $uid;
  229. $on_page = 1;
  230. } else {
  231. $src = explode ( "_", $uid );
  232. $uid = is_numeric ( $src [0] ) ? $src [0] : $this->userinfo ['uid'];
  233. $on_page = (isset ( $src [1] ) && is_numeric ( $src [1] )) && $src [1] > 0 ? $src [1] : 1;
  234. }
  235. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  236. if (empty ( $data ['userinfo'] ))
  237. $this->Messager ( "请输入正确的访问地址", "/" );
  238. //---------------------------------
  239. if ($uid > 0)
  240. $condition .= " and authorid = " . $uid;
  241. $page_size = 10;
  242. $action = '/home_answer/' . $uid . '_';
  243. //获取分页相关数据
  244. $page = $this->asklogic->get_page ( t_answer, $condition, $on_page, $page_size, $action );
  245. $limit = " order by time desc limit " . $page ['lower'] . ", " . $page_size . " ";
  246. $page ['answers'] = $this->asklogic->get_answers_list_tem ( array (), $condition, $limit );
  247. //----------------------------------------
  248. //获取头像
  249. //$avatar = $this->asklogic->get_user_avatar_by_username ( $data ['userinfo'] ['username'] );
  250. $avatar=json_decode($data ['userinfo']['avatar'],true);
  251. if (empty ( $avatar )){
  252. $avatar[30] = DEF_AVATAR;$avatar[45] = DEF_AVATAR;$avatar[90] = DEF_AVATAR;$avatar[180] = DEF_AVATAR;
  253. }
  254. $data ['avatar'] = $avatar;
  255. //获取回答信息
  256. $data ['answer_list'] = $page;
  257. $data ['mod'] = 'answer';
  258. $data ['who'] = "ta";
  259. if ($uid == $this->userinfo ['uid'])
  260. $data ['who'] = "我";
  261. $this->render ( 'userHome-answer', $data );
  262. }
  263. /**
  264. * 进入个人首页-问题页面
  265. */
  266. function show_home_question() {
  267. $condition = "";
  268. $uid = $this->check_params ( 'uid' );
  269. if (is_numeric ( $uid )) {
  270. $uid = ($uid == 0) ? $this->userinfo ['uid'] : $uid;
  271. $on_page = 1;
  272. } else {
  273. $src = explode ( "_", $uid );
  274. $uid = is_numeric ( $src [0] ) ? $src [0] : $this->userinfo ['uid'];
  275. $on_page = (isset ( $src [1] ) && is_numeric ( $src [1] )) && $src [1] > 0 ? $src [1] : 1;
  276. }
  277. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  278. if (empty ( $data ['userinfo'] ))
  279. $this->Messager ( "请输入正确的访问地址", "/" );
  280. //---------------------------------
  281. if ($uid > 0)
  282. $condition .= " and authorid = " . $uid;
  283. $page_size = 10;
  284. $action = '' . $uid . "_";
  285. $condition .= " and hidden=0 ";
  286. //获取分页相关数据
  287. $page = $this->asklogic->get_page ( t_question, $condition, $on_page, $page_size, $action );
  288. $limit = " order by time desc limit " . $page ['lower'] . ", " . $page_size . " ";
  289. $page ['questions'] = $this->asklogic->get_questions_list_tem ( array (), $condition, $limit, "home", "Y-m-d" );
  290. $page ['vip_questions'] = array ();
  291. if ($uid == $this->userinfo ['uid'])
  292. $page ['vip_questions'] = $this->asklogic->get_vip_questions_by_uid ( $uid );
  293. //----------------------------------------
  294. $data ['question_list'] = $page;
  295. //获取头像
  296. //$avatar = $this->asklogic->get_user_avatar_by_username ( $data ['userinfo'] ['username'] );
  297. $avatar=json_decode($data ['userinfo']['avatar'],true);
  298. if (empty ( $avatar )){
  299. $avatar[30] = DEF_AVATAR;$avatar[45] = DEF_AVATAR;$avatar[90] = DEF_AVATAR;$avatar[180] = DEF_AVATAR;
  300. }
  301. $data ['avatar'] = $avatar;
  302. $data ['mod'] = 'question';
  303. $data ['who'] = "ta";
  304. if ($uid == $this->userinfo ['uid'])
  305. $data ['who'] = "我";
  306. $this->render ( 'userHome-ask', $data );
  307. }
  308. /**
  309. * 显示发起问题页面
  310. * 页面代码
  311. <div class="enterBtn rewardPost clearfix">
  312. <a href="/question/add/credit" class="enterB">悬赏提问</a><p>在"普通提问"的情况下,提供"赏金"给回答者,能吸引高手为你解答。</p>
  313. </div>
  314. *
  315. *
  316. */
  317. public function show_ask_post() {
  318. //检测问题数
  319. require_once SITE_PATH . '/protected/config/auth_issue.conf.php';
  320. $auth = $auth ['GENERAL_USER_GROUP' . $this->userinfo ['groupid']];
  321. $issue = $this->asklogic->auth_question_issue ( $this->userinfo ['uid'], $this->userinfo ['groupid'], $auth );
  322. if ($issue == 2)
  323. $this->Messager ( "您今天提问条数(" . $auth ['DAY_TOTALS'] . ")已用完", "/" );
  324. elseif ($issue == 3)
  325. $this->Messager ( "每" . $auth ['TIME_INTERVAL']/60 . "分钟内只可以发布" . $auth ['TIME_TOTALS'] . "条", "/" );
  326. //暂停悬赏提问功能
  327. $credit = $this->check_params ( "is_credit" );
  328. $data ['is_credit'] =false; //empty ( $credit ) || $credit != "credit" ? false : true;
  329. //获取分类信息
  330. $data ['category'] = $this->asklogic->get_category_list ();
  331. //获取用户基本信息
  332. $data ['userinfo'] = array_merge ( $this->userlogic->get_users_information ( $this->userinfo ['uid'] ), $this->userinfo );
  333. //悬赏
  334. if ($data ['is_credit']) {
  335. $option = "";
  336. for($i = 5; $i <= $data ['userinfo'] ['credit3']; $i = $i + 5) {
  337. $option .= "<option value='" . $i . "'>" . $i . "</option>";
  338. if ($i >= 80)
  339. break;
  340. }
  341. $data ['option'] = $option;
  342. }
  343. $data ['mod'] = "askpost";
  344. $this->render ( 'askPost', $data );
  345. }
  346. /**
  347. * 显示问答详情页
  348. */
  349. public function show_ask_page() {
  350. $id = $this->check_params ( 'qid' );
  351. $id = (! is_numeric ( $id )) ? 0 : $id;
  352. //获取问题信息和用户信息
  353. $data ['question_info'] = $this->asklogic->get_question_user_info ( $id );
  354. if (! $data ['question_info'])
  355. $this->Messager ( "未找到您的问题", "/" );
  356. //获取该问题的回答和用户信息
  357. $data ['answer_info'] = $this->asklogic->get_answer_user_info ( $id );
  358. $is_answer = false;
  359. foreach ( $data ['answer_info'] as $key => $value ) {
  360. //登录用户是否已经回答
  361. if ((! isset ( $this->userinfo ['uid'] )) || $value ['uid'] == $this->userinfo ['uid'])
  362. $is_answer = true;
  363. //是否是最佳答案
  364. if ($value ['adopttime'] != 0)
  365. $data ['is_best_answer'] = $value;
  366. }
  367. $data ['is_answer'] = $is_answer;
  368. //游客用户
  369. $data ['login_uid'] = 0;
  370. $data ['groupid'] = 0;
  371. $data ['aids'] = array ();
  372. //获取登录用户信息
  373. if (! empty ( $this->userinfo ['uid'] )) {
  374. $data ['login_uid'] = $this->userinfo ['uid'];
  375. $data ['user_info'] = $this->userlogic->get_users_information ( $this->userinfo ['uid'] );
  376. if (! empty ( $data ['user_info'] )) {
  377. $data ['aids'] = explode ( ",", $data ['user_info'] ['aids'] );
  378. $data ['groupid'] = $data ['user_info'] ['groupid'];
  379. }
  380. }
  381. $data ['mod'] = 'askpage';
  382. //获取相关问题
  383. $data ['like_question'] = $this->asklogic->get_like_questions_list ( $id, $data ['question_info'] ['cid'] );
  384. //获取相关已解决问题
  385. $data ['resolved_question'] = $this->asklogic->get_like_questions_list ( $id, $data ['question_info'] ['cid'], QUESTOIN_STATUS_RESOLVED );
  386. //获取消费基金
  387. $data ['fund'] = $this->asklogic->get_fund ();
  388. $this->render ( 'askPage', $data );
  389. }
  390. /**
  391. * 登录页面
  392. */
  393. function login() {
  394. $data ['username'] = "";
  395. if (isset ( $_COOKIE ['auth'] )) {
  396. $data ['username'] = $_COOKIE ['auth'];
  397. }
  398. $this->render ( 'login', $data );
  399. }
  400. /**
  401. * 获取用户系统信息或者推送信息--修改请求方式
  402. */
  403. function show_home_message() {
  404. $uid = $this->userinfo ['uid'];
  405. $fromuid = $this->get_args ( 'fromuid' ) === false ? 1 : $this->get_args ( 'fromuid' );
  406. $time = $this->get_args ( 'time' ) ? $this->get_args ( 'time' ) : 7;
  407. $on_page = $this->get_args ( 'on_page' ) ? $this->get_args ( 'on_page' ) : 1;
  408. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  409. if (empty ( $data ['userinfo'] ))
  410. $this->Messager ( "请输入正确的访问地址", "/" );
  411. //获取系统信息
  412. $data ['message_list'] = $this->asklogic->get_messages_list ( $uid, $fromuid, $time, $on_page );
  413. //获取头像
  414. $avatar = $this->asklogic->get_user_avatar_by_username ( $data ['userinfo'] ['username'] );
  415. $data ['avatar'] = $avatar;
  416. $data ['fromuid'] = $fromuid;
  417. $data ['time'] = $time;
  418. $data ['on_page'] = $on_page;
  419. $this->render ( 'userHome-msg', $data );
  420. }
  421. /**
  422. * 进入用户首页-修改头像
  423. */
  424. function show_home_avatar() {
  425. if (is_numeric ( $this->params ['uid'] ))
  426. $uid = ($this->params ['uid'] == 0) ? $this->userinfo ['uid'] : $this->params ['uid'];
  427. else {
  428. $uid = $this->userinfo ['uid'];
  429. }
  430. //获取登录用户基本信息 --获取用户登录信息--需要修改
  431. if ($uid == $this->userinfo ['uid'])
  432. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  433. else
  434. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  435. if (empty ( $data ['userinfo'] ))
  436. $this->Messager ( "请输入正确的访问地址", "/" );
  437. //获取擅长分类信息--是否专家
  438. if ($data ['userinfo'] ['expert'] != 0) {
  439. $data ['categoryinfo'] = "";
  440. }
  441. //获取头像
  442. // $avatar = $this->asklogic->get_user_avatar_by_username ( $data ['userinfo'] ['username'] );
  443. $avatar=json_decode($data ['userinfo']['avatar'],true);
  444. if (empty ( $avatar )){
  445. $avatar[30] = DEF_AVATAR;$avatar[45] = DEF_AVATAR;$avatar[90] = DEF_AVATAR;$avatar[180] = DEF_AVATAR;
  446. }
  447. $data ['avatar'] = $avatar;
  448. $data ['mod'] = 'info';
  449. $data ['who'] = "我";
  450. require_once (SITE_PATH . '/protected/plugin/client.php');
  451. $client = new client ( ZHSSO );
  452. $tuid = $_COOKIE ['tuid'];
  453. $data ['avatar_flash'] = $client->ps_getavatar_upload_html ( $tuid );
  454. $this->render ( 'userHome-avatar', $data );
  455. }
  456. /**
  457. * 进入用户首页-我的资料
  458. */
  459. function show_home_per_info() {
  460. if (is_numeric ( $this->params ['uid'] ))
  461. $uid = ($this->params ['uid'] == 0) ? $this->userinfo ['uid'] : $this->params ['uid'];
  462. else {
  463. $uid = $this->userinfo ['uid'];
  464. }
  465. //获取登录用户基本信息 --获取用户登录信息--需要修改
  466. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  467. if (empty ( $data ['userinfo'] ))
  468. $this->Messager ( "请输入正确的访问地址", "/" );
  469. //获取擅长分类信息--是否专家
  470. if ($data ['userinfo'] ['expert'] != 0) {
  471. $data ['categoryinfo'] = $this->asklogic->get_category_list ();
  472. }
  473. //获取头像
  474. //$avatar = $this->asklogic->get_user_avatar_by_username ( $data ['userinfo'] ['username'] );
  475. $avatar=json_decode($data ['userinfo']['avatar'],true);
  476. if (empty ( $avatar )){
  477. $avatar[30] = DEF_AVATAR;$avatar[45] = DEF_AVATAR;$avatar[90] = DEF_AVATAR;$avatar[180] = DEF_AVATAR;
  478. }
  479. $data ['avatar'] = $avatar;
  480. //获取系统设置
  481. require_once (SITE_PATH . '/protected/config/send_email.conf.php');
  482. $data ['email'] = $email;
  483. $data['email_user_set']=$this->userlogic->get_email_config ( $uid );
  484. $data ['who'] = "我";
  485. $data['mod']="info";
  486. $this->render ( 'userHome-profile', $data );
  487. }
  488. /**
  489. * 进入名师答疑
  490. */
  491. function show_advisory() {
  492. $condition = "";
  493. $type = $this->check_params ( 'type' );
  494. $on_page = $this->check_params ( 'on_page' );
  495. $type = empty ( $type ) ? "new" : $type;
  496. $on_page = is_numeric ( $on_page ) && $on_page > 0 ? $on_page : 1;
  497. $page_size = 10;
  498. $action = '/advisory/' . $type . "/";
  499. if ($type == "hot")
  500. $condition = " and hot=1 ";
  501. if ($type == "answer")
  502. $condition = " and answers!=0 ";
  503. $condition .= " and status !=" . PAID_NO_FILL_IN;
  504. //获取分页相关数据
  505. $page = $this->asklogic->get_page ( t_vipquestion, $condition, $on_page, $page_size, $action );
  506. $limit = " order by time desc limit " . $page ['lower'] . ", " . $page_size . " ";
  507. $page ['vip_questions'] = $this->asklogic->get_vip_questions_list ( array (), $condition, $limit );
  508. $data ['type'] = $type;
  509. $data ['vipinfo'] = $page;
  510. $data ['userinfo'] = $this->userinfo;
  511. $data ['keywork_advisory'] = "";
  512. $data ['advisory'] = true;
  513. $this->render ( 'advisory_index', $data );
  514. }
  515. /**
  516. * 名师答疑-检索
  517. */
  518. function search_show_advisory() {
  519. require_once (XUNSEARCH_URL);
  520. $keywork = $this->get_args ( 'keywork_advisory' );
  521. $type = $this->get_args ( 'type' );
  522. $on_page = $this->get_args ( 'on_page' );
  523. $type = empty ( $type ) ? "new" : $type;
  524. $on_page = is_numeric ( $on_page ) && $on_page > 0 ? $on_page : 1;
  525. if (empty ( $keywork ))
  526. $this->Messager ( "请输入需要查找的内容", "/advisory" );
  527. //获取分页相关数据
  528. $search = $this->asklogic->search_advisory ( $keywork, $type, $on_page );
  529. $info = $search ['page'];
  530. $info ['vip_questions'] = $search ['vip_questions'];
  531. $data ['type'] = $type;
  532. $data ['vipinfo'] = $info;
  533. $data ['userinfo'] = $this->userinfo;
  534. $data ['keywork_advisory'] = $keywork;
  535. $data ['advisory'] = true;
  536. $this->render ( 'advisory_index', $data );
  537. }
  538. /**
  539. * 进入名师答疑详情页
  540. */
  541. function show_advisory_page() {
  542. $id = $this->check_params ( 'id' );
  543. $id = is_numeric ( $id ) && $id > 0 ? $id : 1;
  544. //获取名师答疑
  545. if ($this->userinfo ['groupid'] == USER_VIP || $this->userinfo ['groupid'] == SUPER_ADMIN_ID || $this->userinfo ['groupid'] == ADMIN_ID)
  546. $vip_question = $this->asklogic->get_vip_questions_by_id ( $id );
  547. else {
  548. $vip_question = $this->asklogic->get_vip_question_by_quid ( $id, $this->userinfo ['uid'] );
  549. if (empty ( $vip_question ))
  550. $this->Messager ( "没有权限浏览相关的名师答疑-请提升为年费会员", "/advisory" );
  551. }
  552. if (empty ( $vip_question ))
  553. $this->Messager ( "没有找到相关的名师答疑", "/advisory" );
  554. //获取问题用户
  555. $vip_question_user = $this->userlogic->get_users_information ( $vip_question ['authorid'] );
  556. $vip_question_user ['avatar'] = $this->asklogic->get_user_avatar_by_username ( $vip_question ['author'] );
  557. //获取回答
  558. $vip_answer = $this->asklogic->get_vip_answer_by_id ( $id );
  559. //获取讨论
  560. $data ['vip_discuss'] = $this->asklogic->get_discuss_by_qid ( $id );
  561. //获取相关问题
  562. $condition = "and id!=" . $id . " and status !=" . PAID_NO_FILL_IN;
  563. $limit = " order by time desc limit 5";
  564. $like_vip_question = $this->asklogic->get_vip_questions_list ( array (), $condition, $limit );
  565. $data ['like_vip_question'] = $like_vip_question;
  566. $data ['vip_answer'] = $vip_answer;
  567. $data ['vip_question'] = $vip_question;
  568. $data ['vip_question_user'] = $vip_question_user;
  569. $data ['keywork_advisory'] = "";
  570. $data ['login_user'] = $this->userinfo;
  571. $data ['advisory'] = true;
  572. $data ['mod'] = 'advisorypage';
  573. $this->render ( 'advisory_page', $data );
  574. }
  575. /**
  576. * 进入我的订单详情页
  577. */
  578. function show_my_pay_oder() {
  579. $on_page = $this->get_args ( 'on_page' );
  580. $time = $this->get_args ( 'time' );
  581. $on_page = is_numeric ( $on_page ) && $on_page > 0 ? $on_page : 1;
  582. $time = is_numeric ( $time ) && $time >= 0 ? $time : 7;
  583. $uid = $this->userinfo ['uid'];
  584. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  585. if (empty ( $data ['userinfo'] ))
  586. $this->Messager ( "请输入正确的访问地址", "/" );
  587. //财富综合信息
  588. $data ['creditinfo'] = $this->asklogic->get_credit_info ( $uid );
  589. //财富明细信息
  590. $page_size = 15;
  591. $action = "/home_pay_poder?time=" . $time . "&on_page=";
  592. $str_time=" and time>UNIX_TIMESTAMP( SUBDATE( now( ) , INTERVAL " . $time . " DAY ))";
  593. if($time==0)
  594. $str_time="";
  595. $condition = " and uid = " . $uid . $str_time;
  596. $page = $this->asklogic->get_page ( t_credit3log, $condition, $on_page, $page_size, $action );
  597. $limit = " order by time desc limit " . $page ['lower'] . ", " . $page_size . " ";
  598. $page ['credit3log'] = $this->asklogic->get_credit3_list ( array (), $condition, $limit );
  599. $data ['credit3log'] = $page;
  600. //获取头像
  601. //$avatar = $this->asklogic->get_user_avatar_by_username ( $data ['userinfo'] ['username'] );
  602. $avatar=json_decode($data ['userinfo']['avatar'],true);
  603. if (empty ( $avatar )){
  604. $avatar[30] = DEF_AVATAR;$avatar[45] = DEF_AVATAR;$avatar[90] = DEF_AVATAR;$avatar[180] = DEF_AVATAR;
  605. }
  606. $data ['avatar'] = $avatar;
  607. $data ['time'] = $time;
  608. $data ['on_page'] = $on_page;
  609. $data ['who'] = "我";
  610. $data ['mod'] = "myoder";
  611. $this->render ( 'userHome-payOder', $data );
  612. }
  613. /**
  614. * 进入充值页面
  615. */
  616. function show_my_recharge() {
  617. $uid = $this->check_params ( 'uid' );
  618. if (is_numeric ( $uid ))
  619. $uid = ($uid == 0) ? $this->userinfo ['uid'] : $uid;
  620. else {
  621. $uid = $this->userinfo ['uid'];
  622. }
  623. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  624. if (empty ( $data ['userinfo'] ))
  625. $this->Messager ( "请输入正确的访问地址", "/" );
  626. $data ['who'] = "我";
  627. $this->render ( 'userHome_recharge', $data );
  628. }
  629. /**
  630. * 显示公告
  631. */
  632. function show_article_page() {
  633. $params ['id'] = $this->check_params ( 'id' );
  634. $data ['article'] = $this->userlogic->get_article_by_id ( $params ['id'] );
  635. $data ['like_article'] = $this->asklogic->get_article_other ( $params ['id'] );
  636. $this->render ( 'articlePage', $data );
  637. }
  638. /**
  639. * 显示充值记录
  640. */
  641. function show_recharge_oder() {
  642. $on_page = $this->get_args ( 'on_page' );
  643. $on_page = is_numeric ( $on_page ) && $on_page > 0 ? $on_page : 1;
  644. $uid = $this->userinfo ['uid'];
  645. //是否多余
  646. $data ['userinfo'] = $this->userlogic->get_users_information ( $uid );
  647. if (empty ( $data ['userinfo'] ))
  648. $this->Messager ( "请输入正确的访问地址", "/" );
  649. //获取充值记录
  650. $tmpArray=$this->asklogic->get_recharge($data['userinfo']['username']);
  651. // 多送
  652. foreach ($tmpArray as $key => $value) {
  653. if (!empty($value['telephone']))
  654. $tmpArray[$key]['info'] = '(+'.$value['money']*0.05.')';
  655. }
  656. $data['v_mid'] = '22544863'; // 商户号,这里为测试商户号1001,替换为自己的商户号(老版商户号为4位或5位,新版为8位)即可
  657. $data['v_url'] = Doo::conf()->APP_URL . 'Receive'; // 请填写返回url,地址应为绝对路径,带有http协议
  658. $data['key'] = 'smartcost@)!@onlinepaychinabank'; // 如果您还没有设置MD5密钥请登陆我们为您提供商户后台,地址:https://merchant3.chinabank.com.cn/
  659. $data['v_moneytype'] = "CNY";
  660. $data['PayOrderArray'] = $tmpArray;
  661. //财富明细信息
  662. // $page_size = 15;
  663. //
  664. // $action = "/home_recharge_oder?on_page=";
  665. //
  666. // $condition = " and uid = " . $uid;
  667. //
  668. // $page = $this->asklogic->get_page ( t_bankjorunal, $condition, $on_page, $page_size, $action );
  669. //
  670. // $limit = " order by time desc limit " . $page ['lower'] . ", " . $page_size . " ";
  671. //
  672. // $page ['bank_jorunal'] = $this->asklogic->get_bank_jorunal_list ( array (), $condition, $limit );
  673. //
  674. // $data ['bank_jorunal'] = $page;
  675. //
  676. // $data ['on_page'] = $on_page;
  677. // <!-- if {{bank_jorunal.total_page}}!=0 -->
  678. // <div class="pageNav2 clearfix">
  679. // <div class="pageList">
  680. // <!-- if {{bank_jorunal.previous}}==0 -->
  681. // <span class="inactivePrev">上一页</span>
  682. // <!-- else -->
  683. // <a href="javascript:void(0)" id="get_oder_{{bank_jorunal.previous}}" data="{{bank_jorunal.previous}}" class="inactivePrev" >上一页</a>
  684. // <!-- endif -->
  685. // {{bank_jorunal.page}}
  686. // <a href="javascript:void(0)" id="get_oder_{{bank_jorunal.previous}}" data="{{bank_jorunal.total_page}}"
  687. // class="paginate">... {{bank_jorunal.total_page}}</a>
  688. // <!-- if {{bank_jorunal.next}}=={{bank_jorunal.on_page}} -->
  689. // <span class="inactivePrev">下一页</span>
  690. // <!-- else -->
  691. // <a href="javascript:void(0)" id="get_oder_{{bank_jorunal.next}}" data="{{bank_jorunal.next}}" class="next">下一页</a>
  692. // <!-- endif -->
  693. // </div>
  694. // </div>
  695. // <!-- endif -->
  696. //获取头像
  697. $avatar = $this->asklogic->get_user_avatar_by_username ( $data ['userinfo'] ['username'] );
  698. $data ['avatar'] = $avatar;
  699. $data ['who'] = "我";
  700. $data ['mod'] = "myoder";
  701. $this->render ( 'userHome-rechargeOder', $data );
  702. }
  703. function show_tip2(){
  704. $this->render ( 'tips2' );
  705. }
  706. /**
  707. * 显示提示信息
  708. */
  709. function show_messager() {
  710. $message = $this->get_args ( 'content' );
  711. $url = $this->get_args ( 'url' );
  712. $this->Messager ( $message, $url );
  713. }
  714. /**
  715. * 获取get或者POST值
  716. * @param string $name 属性名称
  717. * @return fixed 值
  718. */
  719. function get_args($name) {
  720. if (isset ( $_GET [$name] )) {
  721. if (is_array ( $_GET [$name] ))
  722. return $_GET [$name];
  723. else {
  724. return addslashes ( $_GET [$name] );
  725. //return $_GET [$name] ;
  726. }
  727. } elseif (isset ( $_POST [$name] )) {
  728. if (is_array ( $_POST [$name] ))
  729. return $_POST [$name];
  730. else {
  731. return addslashes ( $_POST [$name] );
  732. //return $_POST [$name];
  733. }
  734. } else {
  735. return false;
  736. }
  737. }
  738. /**
  739. * 检测数据输入的非法字符和转义非法字符
  740. */
  741. function check_params($name = "") {
  742. if (isset ( $this->params [$name] )) {
  743. return addslashes ( $this->params [$name] );
  744. } else {
  745. return false;
  746. }
  747. }
  748. /**
  749. * 限时跳转
  750. * @param unknown_type $message
  751. * @param unknown_type $redirectto
  752. * @param unknown_type $time
  753. * @param unknown_type $return_msg
  754. * @param unknown_type $js
  755. */
  756. function Messager($message, $redirectto = '', $time = -1, $return_msg = false, $js = null) {
  757. global $rewriteHandler;
  758. $data ['redirectto'] = $redirectto;
  759. $data ['message'] = $message;
  760. if ($time === - 1) {
  761. //配置文件
  762. //$time=(is_numeric($this->Config['msg_time'])?$this->Config['msg_time']:5);
  763. $data ['time'] = 2;
  764. }
  765. $data ['to_title'] = ($data ['redirectto'] === '' or $data ['redirectto'] == - 1) ? "返回上一页" : "跳转到指定页面";
  766. if ($data ['redirectto'] === null) {
  767. $return_msg = $return_msg === false ? "&nbsp;" : $return_msg;
  768. } else {
  769. $data ['redirectto'] = ($data ['redirectto'] !== '') ? $data ['redirectto'] : ($from_referer = referer ());
  770. // if(str_exists($data['redirectto'],'mod=login','code=register','/login','/register'))
  771. // {
  772. // $referer='&referer='.urlencode('index.php?'.$_SERVER['QUERY_STRING']);
  773. // $this->CookieHandler->Setvar('referer','index.php?'.$_SERVER['QUERY_STRING']);
  774. // }
  775. if (is_numeric ( $data ['redirectto'] ) !== false and $data ['redirectto'] !== 0) {
  776. if ($data ['time'] !== null) {
  777. $data ['url_redirect'] = "<script language=\"JavaScript\" type=\"text/javascript\">\r\n";
  778. $data ['url_redirect'] .= sprintf ( "window.setTimeout(\"history.go(%s)\",%s);\r\n", $data ['redirectto'], $data ['time'] * 1000 );
  779. $data ['url_redirect'] .= "</script>\r\n";
  780. }
  781. $data ['redirectto'] = "javascript:history.go({$data['redirectto']})";
  782. } else {
  783. if ($rewriteHandler && null !== $data ['message']) {
  784. $data ['redirectto'] .= $referer;
  785. if (! $from_referer && ! $referer) {
  786. $data ['redirectto'] = $rewriteHandler->formatURL ( $data ['redirectto'], true );
  787. }
  788. }
  789. if ($data ['message'] === null) {
  790. $data ['redirectto'] = rawurldecode ( stripslashes ( ($data ['redirectto']) ) );
  791. @header ( "Location: " . $data ['redirectto'] ); #HEADER跳转
  792. }
  793. if ($data ['time'] !== null) {
  794. $data ['url_redirect'] = ($data ['redirectto'] ? '<meta http-equiv="refresh" content="' . $data ['time'] . '; URL=' . $data ['redirectto'] . '">' : null);
  795. }
  796. }
  797. }
  798. $title = "消息提示:" . (is_array ( $data ['message'] ) ? implode ( ',', $data ['message'] ) : $data ['message']);
  799. $title = strip_tags ( $title );
  800. if ($js != "") {
  801. $js = "<script language=\"JavaScript\" type=\"text/javascript\">{$js}</script>";
  802. }
  803. $additional_str = $data ['url_redirect'] . $js;
  804. $this->render ( 'messager', $data );
  805. exit ();
  806. }
  807. public function showcode(){
  808. session_start();
  809. header("Content-type: image/PNG");
  810. $w = 150;
  811. $h = 50;
  812. $fontface = "/opt/www/wenda/global/font/msyhbd.ttf"; //字体文件
  813. $str = "们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这主中人上为来分生对于学下级地个用同行面说种过命度革而多子后自社加小机也经力线本电高量长党得实家定深法表着水理化争现所二起政三好十战无农使性前等反体合斗路图把结第里正新开论之物从当两些还天资事队批点育重其思与间内去因件日利相由压员气业代全组数果期导平各基或月毛然如应形想制心样干都向变关问比展那它最及外没看治提五解系林者米群头意只明四道马认次文通但条较克又公孔领军流入接席位情运器并飞原油放立题质指建区验活众很教决特此常石强极土少已根共直团统式转别造切九你取西持总料连任志观调七么山程百报更见必真保热委手改管处己将修支识病象几先老光专什六型具示复安带每东增则完风回南广劳轮科北打积车计给节做务被整联步类集号列温装即毫知轴研单色坚据速防史拉世设达尔场织历花受求传口断况采精金界品判参层止边清至万确究书术状厂须离再目海交权且儿青才证低越际八试规斯近注办布门铁需走议县兵固除般引齿千胜细影济白格效置推空配刀叶率述今选养德话查差半敌始片施响收华觉备名红续均药标记难存测士身紧液派准斤角降维板许破述技消底床田势端感往神便贺村构照容非搞亚磨族火段算适讲按值美态黄易彪服早班麦削信排台声该击素张密害侯草何树肥继右属市严径螺检左页抗苏显苦英快称坏移约巴材省黑武培著河帝仅针怎植京助升王眼她抓含苗副杂普谈围食射源例致酸旧却充足短划剂宣环落首尺波承粉践府鱼随考刻靠够满夫失包住促枝局菌杆周护岩师举曲春元超负砂封换太模贫减阳扬江析亩木言球朝医校古呢稻宋听唯输滑站另卫字鼓刚写刘微略范供阿块某功套友限项余倒卷创律雨让骨远帮初皮播优占死毒圈伟季训控激找叫云互跟裂粮粒母练塞钢顶策双留误础吸阻故寸盾晚丝女散焊功株亲院冷彻弹错散商视艺灭版烈零室轻血倍缺厘泵察绝富城冲喷壤简否柱李望盘磁雄似困巩益洲脱投送奴侧润盖挥距星松送获兴独官混纪依未突架宽冬章湿偏纹吃执阀矿寨责熟稳夺硬价努翻奇甲预职评读背协损棉侵灰虽矛厚罗泥辟告卵箱掌氧恩爱停曾溶营终纲孟钱待尽俄缩沙退陈讨奋械载胞幼哪剥迫旋征槽倒握担仍呀鲜吧卡粗介钻逐弱脚怕盐末阴丰雾冠丙街莱贝辐肠付吉渗瑞惊顿挤秒悬姆烂森糖圣凹陶词迟蚕亿矩康遵牧遭幅园腔订香肉弟屋敏恢忘编印蜂急拿扩伤飞露核缘游振操央伍域甚迅辉异序免纸夜乡久隶缸夹念兰映沟乙吗儒杀汽磷艰晶插埃燃欢铁补咱芽永瓦倾阵碳演威附牙芽永瓦斜灌欧献顺猪洋腐请透司危括脉宜笑若尾束壮暴企菜穗楚汉愈绿拖牛份染既秋遍锻玉夏疗尖殖井费州访吹荣铜沿替滚客召旱悟刺脑措贯藏敢令隙炉壳硫煤迎铸粘探临薄旬善福纵择礼愿伏残雷延烟句纯渐耕跑泽慢栽鲁赤繁境潮横掉锥希池败船假亮谓托伙哲怀割摆贡呈劲财仪沉炼麻罪祖息车穿货销齐鼠抽画饲龙库守筑房歌寒喜哥洗蚀废纳腹乎录镜妇恶脂庄擦险赞钟摇典柄辩竹谷卖乱虚桥奥伯赶垂途额壁网截野遗静谋弄挂课镇妄盛耐援扎虑键归符庆聚绕摩忙舞遇索顾胶羊湖钉仁音迹碎伸灯避泛亡答勇频皇柳哈揭甘诺概宪浓岛袭谁洪谢炮浇斑讯懂灵蛋闭孩释乳巨徒私银伊景坦累匀霉杜乐勒隔弯绩招绍胡呼痛峰零柴簧午跳居尚丁秦稍追梁折耗碱殊岗挖氏刃剧堆赫荷胸衡勤膜篇登驻案刊秧缓凸役剪川雪链渔啦脸户洛孢勃盟买杨宗焦赛旗滤硅炭股坐蒸凝竟陷枪黎救冒暗洞犯筒您宋弧爆谬涂味津臂障褐陆啊健尊豆拔莫抵桑坡缝警挑污冰柬嘴啥饭塑寄赵喊垫丹渡耳刨虎笔稀昆浪萨茶滴浅拥穴覆伦娘吨浸袖珠雌妈紫戏塔锤震岁貌洁剖牢锋疑霸闪埔猛诉刷狠忽灾闹乔唐漏闻沈熔氯荒茎男凡抢像浆旁玻亦忠唱蒙予纷捕锁尤乘乌智淡允叛畜俘摸锈扫毕璃宝芯爷鉴秘净蒋钙肩腾枯抛轨堂拌爸循诱祝励肯酒绳穷塘燥泡袋朗喂铝软渠颗惯贸粪综墙趋彼届墨碍启逆卸航衣孙龄岭骗休借";
  814. $str = iconv('utf-8', 'gbk', $str);
  815. $code = "";
  816. for ($i = 0; $i < 4; $i++) {
  817. $Xi = mt_rand(0, strlen($str) / 2);
  818. if ($Xi % 2)
  819. $Xi+=1;
  820. $code.=substr($str, $Xi, 2);
  821. }
  822. $_SESSION['vc'] = iconv("gbk", "UTF-8", $code);
  823. $im = imagecreatetruecolor($w, $h);
  824. $bkcolor = imagecolorallocate($im, 250, 250, 250);
  825. imagefill($im, 0, 0, $bkcolor);
  826. /* * *添加干扰** */
  827. for ($i = 0; $i < 15; $i++) {
  828. $fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
  829. imagearc($im, mt_rand(-10, $w), mt_rand(-10, $h), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $fontcolor);
  830. }
  831. for ($i = 0; $i < 255; $i++) {
  832. $fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
  833. imagesetpixel($im, mt_rand(0, $w), mt_rand(0, $h), $fontcolor);
  834. }
  835. /* * *********内容******** */
  836. for ($i = 0; $i < 4; $i++) {
  837. $fontcolor = imagecolorallocate($im, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120)); //这样保证随机出来的颜色较深。
  838. $codex = iconv("GB2312", "UTF-8", substr($code, $i * 2, 2));
  839. imagettftext($im, mt_rand(14, 18), mt_rand(-60, 60), 30 * $i + 20, mt_rand(30, 35), $fontcolor, $fontface, $codex);
  840. }
  841. imagepng($im);
  842. imagedestroy($im);
  843. }
  844. }
  845. ?>