婷姐 发表于 2023-11-25 19:36:57

怎么在门户首页新增一个类似我要投诉的邮箱系统? New

想要在建好的discuz门户上新增一个类似我要投诉的功能,用户点击我要投诉进入到投诉页面,发布完以后,相应部门后台能够收到相关投诉信息。如何实现呢?用邮件能实现么?我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-16 14:57:41

要在Discuz门户首页新增一个“我要投诉”的功能,并且实现用户发布投诉后,相关部门能够收到相关投诉信息,可以通过以下步骤来实现:

### 1. 创建投诉页面
首先,你需要创建一个投诉页面,用户可以在该页面填写投诉信息并提交。

#### 1.1 创建模板文件
在Discuz的模板目录中创建一个新的模板文件,例如 `template/default/portal/complaint.htm`。在这个文件中,你可以设计投诉表单的样式和内容。

<form action="portal.php?mod=complaint&action=submit" method="post">
    <div>
      <label for="title">投诉标题:</label>
      <input type="text" id="title" name="title" required>
    </div>
    <div>
      <label for="content">投诉内容:</label>
      <textarea id="content" name="content" required></textarea>
    </div>
    <div>
      <label for="email">您的邮箱:</label>
      <input type="email" id="email" name="email" required>
    </div>
    <div>
      <button type="submit">提交投诉</button>
    </div>
</form>

#### 1.2 创建处理投诉的PHP文件
在 `source/module/portal/` 目录下创建一个新的PHP文件,例如 `complaint.php`。这个文件将处理用户提交的投诉信息。

<?php
if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

if ($_GET['action'] == 'submit') {
    $title = dhtmlspecialchars($_POST['title']);
    $content = dhtmlspecialchars($_POST['content']);
    $email = dhtmlspecialchars($_POST['email']);

    // 保存投诉信息到数据库
    $data = array(
      'title' => $title,
      'content' => $content,
      'email' => $email,
      'dateline' => TIMESTAMP,
    );
    C::t('common_complaint')->insert($data);

    // 发送邮件通知相关部门
    $to = 'complaint@example.com'; // 替换为实际接收投诉的邮箱
    $subject = "新的投诉:{$title}";
    $message = "投诉内容:\n{$content}\n\n投诉人邮箱:{$email}";
    $headers = "From: no-reply@example.com";

    mail($to, $subject, $message, $headers);

    showmessage('投诉已提交,我们会尽快处理!', 'portal.php');
}

// 显示投诉页面
include template('portal/complaint');

### 2. 创建数据库表
为了保存用户的投诉信息,你需要在数据库中创建一个新的表。

CREATE TABLE `pre_common_complaint` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `title` varchar(255) NOT NULL,
    `content` text NOT NULL,
    `email` varchar(255) NOT NULL,
    `dateline` int(10) unsigned NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

### 3. 在门户首页添加投诉链接
在门户首页的适当位置添加一个“我要投诉”的链接,指向你刚刚创建的投诉页面。

<a href="portal.php?mod=complaint">我要投诉</a>

### 4. 配置邮件发送
确保你的Discuz系统已经正确配置了邮件发送功能。你可以在Discuz后台的 `全局 -> 邮件设置` 中配置SMTP服务器等信息。

### 5. 测试功能
完成以上步骤后,你可以测试一下功能是否正常工作。用户提交投诉后,相关部门应该能够收到邮件通知。

### 6. 后台管理投诉信息
你可以在Discuz后台创建一个新的管理页面,用于查看和处理用户的投诉信息。这个页面的实现方式与前面的投诉页面类似,只是需要从数据库中读取投诉信息并展示出来。

### 总结
通过以上步骤,你可以在Discuz门户首页新增一个“我要投诉”的功能,并且实现用户提交投诉后,相关部门能够收到邮件通知。这个功能的核心是通过表单收集用户输入的信息,并将这些信息保存到数据库中,同时通过邮件通知相关部门。

如果你在实现过程中遇到任何问题,欢迎随时在DZ插件网(https://www.dz-x.net)寻求帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 怎么在门户首页新增一个类似我要投诉的邮箱系统? New