国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
5.2KB

  1. <?php
  2. /**
  3. *
  4. * 自定义表单
  5. *
  6. * @version $Id: diy.php$
  7. * @package DedeBIZ.Site
  8. * @copyright Copyright (c) 2021, DedeBIZ.COM
  9. * @license https://www.dedebiz.com/license
  10. * @link https://www.dedebiz.com
  11. */
  12. require_once(dirname(__FILE__) . "/../include/common.inc.php");
  13. $diyid = isset($diyid) && is_numeric($diyid) ? $diyid : 0;
  14. $action = isset($action) && in_array($action, array('post', 'list', 'view')) ? $action : 'post';
  15. $id = isset($id) && is_numeric($id) ? $id : 0;
  16. if (empty($diyid)) {
  17. showMsg('非法操作!', 'javascript:;');
  18. exit();
  19. }
  20. require_once DEDEINC . '/diyform.cls.php';
  21. $diy = new diyform($diyid);
  22. /*----------------------------
  23. function Post(){ }
  24. ---------------------------*/
  25. if ($action == 'post') {
  26. if (empty($do)) {
  27. $postform = $diy->getForm(true);
  28. include DEDEROOT . "/templets/plus/{$diy->postTemplate}";
  29. exit();
  30. } elseif ($do == 2) {
  31. $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
  32. $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
  33. if (!empty($dede_fields)) {
  34. if ($dede_fieldshash != md5($dede_fields . $cfg_cookie_encode)) {
  35. showMsg('数据校验不对,程序返回', '-1');
  36. exit();
  37. }
  38. }
  39. $diyform = $dsql->getOne("SELECT * from `#@__diyforms` WHERE diyid='$diyid' ");
  40. if (!is_array($diyform)) {
  41. showmsg('自定义表单不存在', '-1');
  42. exit();
  43. }
  44. $addvar = $addvalue = '';
  45. if (!empty($dede_fields)) {
  46. $fieldarr = explode(';', $dede_fields);
  47. if (is_array($fieldarr)) {
  48. foreach ($fieldarr as $field) {
  49. if ($field == '') continue;
  50. $fieldinfo = explode(',', $field);
  51. if ($fieldinfo[1] == 'textdata') {
  52. ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
  53. ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
  54. }
  55. //获取地址,表单添加text数据类型ip字段型后模板用<input type="hidden" name="ip" value="">
  56. if($fieldinfo[0] == 'ip')
  57. {
  58. ${$fieldinfo[0]}=GetIP();
  59. }
  60. //获取时间,表单添加text数据类型sj字段型后模板用<input type="hidden" name="sj" value="">
  61. if($fieldinfo[0] == 'sj')
  62. {
  63. ${$fieldinfo[0]}=date("Y-m-d H:i");
  64. } else {
  65. ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);
  66. }
  67. $addvar .= ', `' . $fieldinfo[0] . '`';
  68. $addvalue .= ", '" . ${$fieldinfo[0]} . "'";
  69. }
  70. }
  71. }
  72. $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue); ";
  73. if ($dsql->ExecuteNoneQuery($query)) {
  74. $id = $dsql->GetLastID();
  75. if ($diy->public == 2)
  76. {
  77. $goto = "diy.php?action=list&diyid={$diy->diyid}";
  78. $bkmsg = '发布成功,现在转向表单列表页';
  79. } else {
  80. $goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/';
  81. $bkmsg = '发布成功,请等待管理员处理';
  82. //提交后返回提交页面
  83. echo"<script>alert('提交成功');history.go(-1)</script>";
  84. }
  85. showmsg($bkmsg, $goto);
  86. }
  87. }
  88. }
  89. /*----------------------------
  90. function list(){ }
  91. ---------------------------*/
  92. else if ($action == 'list') {
  93. if (empty($diy->public)) {
  94. ShowMsg('后台关闭前台浏览', 'javascript:;');
  95. exit();
  96. }
  97. include_once DEDEINC . '/datalistcp.class.php';
  98. if ($diy->public == 2)
  99. $query = "SELECT * FROM `{$diy->table}` ORDER BY id DESC";
  100. else
  101. $query = "SELECT * FROM `{$diy->table}` WHERE ifcheck=1 ORDER BY id DESC";
  102. $datalist = new DataListCP();
  103. $datalist->pageSize = 10;
  104. $datalist->SetParameter('action', 'list');
  105. $datalist->SetParameter('diyid', $diyid);
  106. $datalist->SetTemplate(DEDEINC . "/../templets/plus/{$diy->listTemplate}");
  107. $datalist->SetSource($query);
  108. $fieldlist = $diy->getFieldList();
  109. $datalist->Display();
  110. } else if ($action == 'view') {
  111. if (empty($diy->public)) {
  112. showMsg('后台关闭前台浏览', 'javascript:;');
  113. exit();
  114. }
  115. if (empty($id)) {
  116. showMsg('非法操作!未指定id', 'javascript:;');
  117. exit();
  118. }
  119. if ($diy->public == 2) {
  120. $query = "SELECT * FROM `{$diy->table}` WHERE id='$id' ";
  121. } else {
  122. $query = "SELECT * FROM `{$diy->table}` WHERE id='$id' AND ifcheck=1";
  123. }
  124. $row = $dsql->GetOne($query);
  125. if (!is_array($row)) {
  126. showmsg('你访问的记录不存在或未经审核', '-1');
  127. exit();
  128. }
  129. $fieldlist = $diy->getFieldList();
  130. include DEDEROOT . "/templets/plus/{$diy->viewTemplate}";
  131. }