您好,欢迎来到95分类目录!站长微信:vip3632094
当前位置:95分类目录 » 站长资讯 » 35dir专区 » 文章详细 订阅RssFeed

给95分类目录后台网站审核状态加一个审核未通过的功能(附邮件通知未通过原因)

来源:本站原创 浏览:302次 时间:2025-06-09
简介:前端表单中允许管理员选择"审核不通过"状态并填写未通过原因。 后端接收未通过原因,并通过邮件发送给用户。 不保存未通过原因到数据库。



前端代码



前端表单部分保持之前建议的代码不变,确保包含"审核不通过"选项和未通过原因的输入框:




审核状态:



{#if $action == 'edit' || $action == 'attr'#}

   


       


       

   


{#/if#}









以及控制显示/隐藏的 JavaScript 代码:











后端代码修改(不存储到数据库)



以下是基于您提供的 文件的具体修改位置和代码:website.php





1. 在 部分添加"审核不通过"状态显示$action == 'list'



找到 中状态显示的部分(大约在第 94 行),修改 代码如下:if ($action == 'list') { ... }switch ($web['web_status'])






switch ($web['web_status']) {

    case 1 :

        $web_status = '黑名单';

        break;

    case 2 :

        $web_status = '待审核';

        break;

    case 3 :

        $web_status = '已审核';

        break;

    case 4 :

        $web_status = '审核不通过';

        break;

}




2. 在 部分设置未通过原因的默认值$action == 'edit'



找到 部分(大约在第 136 行),添加 的默认值赋值(因为不从数据库加载,所以默认值为空):if ($action == 'edit') { ... }reject_reason






if ($action == 'edit') {

    $pagetitle = '编辑站点';

    $web_id = intval($_GET['web_id']);

    $where = "w.web_id=$web_id";

    $row = get_one_website($where);

    if (!$row) {

        msgbox('指定的内容不存在!');

    }

    $category_option = get_category_option('webdir', 0, $row['cate_id'], 0);

    $smarty->assign('category_option', $category_option);

    $smarty->assign('ispay', $row['web_ispay']);

    $smarty->assign('istop', $row['web_istop']);

    $smarty->assign('isbest', $row['web_isbest']);

    $smarty->assign('status', $row['web_status']);

    // 设置未通过原因的默认值(因为不存储在数据库中,默认为空)

    $smarty->assign('reject_reason', '');

    $smarty->assign('row', $row);

    $smarty->assign('h_action', 'saveedit');

}






3. 在 部分处理未通过原因并发送邮件$action == 'saveedit'



找到 部分(大约在第 247 行),修改代码以处理未通过原因并发送邮件,但不保存到数据库:if ($action == 'saveedit') { ... }






} elseif ($action == 'saveedit') {

    $web_id = intval($_POST['web_id']);

    $where = array('web_id' => $web_id);

    unset($web_data['web_ctime']);

    // 更新数据库(不包含 reject_reason)

    $DB->update($table, $web_data, $where);

    $DB->update($DB->table('webdata'), $stat_data, $where);

    $DB->query("UPDATE ".$DB->table('categories')." SET cate_postcount=cate_postcount+1 WHERE cate_id=$cate_id");

    update_cache('archives');

    require(APP_PATH.'include/sendmail.php');

    require(APP_PATH.'module/prelink.php');

    $websites = $DB->fetch_all("SELECT * FROM ".$DB->table('websites')." WHERE web_id=$web_id");

    if (!empty($websites)) {

        $user_id = $websites[0]['user_id'];

        $user = $DB->fetch_all("SELECT * FROM ".$DB->table('users')." WHERE user_id=$user_id");

        if (!empty($options['smtp_host']) && !empty($options['smtp_port']) && !empty($options['smtp_auth']) && !empty($options['smtp_user']) && !empty($options['smtp_pass'])) {

            $smarty->assign('site_name', $options['site_name']);

            $smarty->assign('site_url', $options['site_url']);

            $smarty->assign('web_name', $websites[0]['web_name']);

            if ($web_status == 3) {

                $site_link = get_website_url($websites[0]['web_id'], true);

                $smarty->assign('site_link', $site_link);

                $mailbody = $smarty->fetch('audit_mail.html');

                $subject = '['.$options['site_name'].'] 网站已通过审核!';

                sendmail($user[0]['user_email'], $subject, $mailbody);

            } elseif ($web_status == 4) {

                $reject_reason = addslashes(trim($_POST['reject_reason']));

                $smarty->assign('reject_reason', $reject_reason);

                $mailbody = $smarty->fetch('reject_mail.html');

                $subject = '['.$options['site_name'].'] 网站审核未通过';

                sendmail($user[0]['user_email'], $subject, $mailbody);

            }

        }

    }

    msgbox('网站修改成功!', $fileurl);

}






添加位置说明




  • 未通过原因的获取和处理代码添加在邮件发送逻辑中,具体在 的条件分支内,直接从 获取值并赋值给 Smarty 变量用于邮件模板渲染。$web_status == 4$_POST['reject_reason']


  • 不添加未通过原因到 数组中,因此不会保存到数据库。$web_data





4. 在 部分处理未通过原因并发送邮件$action == 'saveattr'



找到 部分(大约在第 296 行),修改代码以处理未通过原因并发送邮件,但不保存到数据库:if ($action == 'saveattr') { ... }






if ($action == 'saveattr') {

    $web_ids = (array) $_POST['web_id'];

    $web_ispay = intval($_POST['web_ispay']);

    $web_istop = intval($_POST['web_istop']);

    $web_isbest = intval($_POST['web_isbest']);

    $web_status = intval($_POST['web_status']);

    if (empty($web_ids)) {

        msgbox('请选择要设置的内容!');

    }

    require(APP_PATH.'include/sendmail.php');

    require(APP_PATH.'module/prelink.php');

    $websites = $DB->fetch_all("SELECT w.web_id, w.web_name, u.user_email FROM $table w LEFT JOIN ".$DB->table("users")." u ON w.user_id=u.user_id WHERE w.web_id IN (".dimplode($web_ids).")");

    $reject_reason = '';

    if ($web_status == 4) {

        $reject_reason = addslashes(trim($_POST['reject_reason']));

    }

    foreach ($websites as $row) {

        if (!empty($options['smtp_host']) && !empty($options['smtp_port']) && !empty($options['smtp_auth']) && !empty($options['smtp_user']) && !empty($options['smtp_pass'])) {

            $smarty->assign('site_name', $options['site_name']);

            $smarty->assign('site_url', $options['site_url']);

            $smarty->assign('web_name', $row['web_name']);

            if ($web_status == 3) {

                $site_link = get_website_url($row['web_id'], true);

                $smarty->assign('site_link', $site_link);

                $mailbody = $smarty->fetch('audit_mail.html');

                sendmail($row['user_email'], '['.$options['site_name'].'] 网站已通过审核!', $mailbody);

            } elseif ($web_status == 4) {

                $smarty->assign('reject_reason', $reject_reason);

                $mailbody = $smarty->fetch('reject_mail.html');

                sendmail($row['user_email'], '['.$options['site_name'].'] 网站审核未通过', $mailbody);

            }

        }

        // 更新数据库(不包含 reject_reason)

        $DB->update($table, array('web_ispay' => $web_ispay, 'web_istop' => $web_istop, 'web_isbest' => $web_isbest, 'web_status' => $web_status), array('web_id' => $row['web_id']));

    }

    msgbox('网站属性设置成功!', $fileurl);

}






添加位置说明




  • 未通过原因的获取代码添加在 之后, 循环之前,直接从 获取值。if (empty($web_ids)) { ... }foreach$_POST['reject_reason']


  • 未通过原因的处理代码添加在邮件发送逻辑中,在 的条件分支内,将值赋值给 Smarty 变量用于邮件模板渲染。$web_status == 4


  • 不添加未通过原因到更新数据库的数组中,因此不会保存到数据库。







邮件模板



确保 模板文件存在并正确配置,用于发送审核未通过的邮件通知,包含未通过原因的内容。模板内容如下:新建reject_mail.html







































  您提交在{#$site_name#}的网站审核未通过!


您好!


很遗憾地通知您,您提交在{#$site_name#}的网站:{#$web_name#}, 未通过我们的审核!


未通过原因:


{#$reject_reason#}



您可以根据上述原因进行修改后重新提交审核。



本站网址:{#$site_url#}


请注意:此邮件系 {#$site_name#} 自动发送,请勿直接回复。
如果此邮件不是您请求的,请忽略并删除!











总结



通过以上修改,您可以在不存储未通过原因到数据库的情况下实现"审核不通过"功能的完整流程:




  • 管理员在前端表单中选择"审核不通过"状态并填写原因。


  • 后端接收原因并通过邮件发送给用户。


  • 不修改数据库结构,不保存原因数据。





关键添加位置




  • $action == 'saveedit':未通过原因的获取和邮件发送逻辑添加在 之后,邮件发送条件分支内。update_cache('archives');


  • $action == 'saveattr':未通过原因的获取添加在 之后,邮件发送逻辑添加在 循环内的邮件发送条件分支中。if (empty($web_ids)) { ... }foreach


© 版权声明

💬 文章评论

正在加载评论统计...

发表评论

0/1000字符
正在加载评论...
🆕最新收录 📚数据归档 🔥TOP排行 🚫黑名单 不通过 📊数据公示 🗺️站点地图

95分类目录 - 专业的网站分类目录平台,精心收录 网站目录VIP优质网站站长资讯

关键词:网站目录 · 网站收录 · 分类目录 · 网站推荐 · 优质网站 · 免费收录

Monitor your Domain Rating with FrogDR
Copyright © 2026 95dir.com All Rights Reserved · 鄂ICP备2024062716号-1 · Processed in 0.071814 second(s), 27 Queries, Gzip Enabled
当前在线 ...| 总访客 ...| 🐧交流群
百度统计