前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我用ChatGPT做开发之一键清理Discuz论坛帖子

我用ChatGPT做开发之一键清理Discuz论坛帖子

原创
作者头像
半夜喝可乐
发布2023-05-02 01:08:47
6870
发布2023-05-02 01:08:47
举报
文章被收录于专栏:小轻论坛

由于工作需要,我用ChatGPT帮我写了一个一键清理Discuz文章的页面,虽然开始运行起来有一些问题,不过后续让其帮忙调试就没什么问题了。另外,我还顺便让它把前端美化了下。今天写的内容小白都能看得懂,请放心食用!

删帖界面
删帖界面

先说说用它开发我遇到哪些问题,以便于各位在使用ChatGPT开发时不断调试。

一、自动省略

首先,我直接了当地问“写一个可以删除dz文章的php代码,通过批量输入链接即可删除文章”。系统立马帮我写出了相应的代码,但是其中的数据库连接及登录验证代码直接给我省略了。

第一次对话
第一次对话

如果我自己写那我就输了,所以我……

第二次对话
第二次对话

二、系统报错

其实GPT写出代码报错率很高,但是其纠错能力是嘎嘎强啊!

和上面调试的方式一样,你需要先给定原有代码然后给出错误提示,然后等待系统纠错。

第三次对话
第三次对话

三、优化代码

因为我们使用Discuz程序时,一般都会对其进行伪静态处理,但是GPT使用的是原始的数据处理,所以这里要给他例子,并让他重新生成​。

第四次对话
第四次对话

四、优化前端

GPT在帮我们写代码时并不会注重前端体验,只会满足功能需求,所以我们要将最终的代码进行前端优化,告诉GPT“优化上述代码,让前端展示更加美观,并且能够自适应设备”。

​以上就是我与ChatGPT对一键删除DZ帖子的完整功能开发的详细介绍,下面我将代码共享给大家,由于涉及数据库,请谨慎测试

代码语言:javascript
复制
<?php
$servername = "数据库地址";
$username = "用户名";
$password = "数据库密码";
$dbname = "数据库名称";

// 创建连接
$con = mysqli_connect($servername, $username, $password, $dbname);

// 检测连接
if (!$con) {
    die("连接失败:" . mysqli_connect_error());
}

if(isset($_POST['delete_links'])) {
    $links = $_POST['delete_links'];
    $link_array = explode("\n", $links); // 将用户输入的链接按行分割成数组
    
    foreach($link_array as $link) {
        $link = trim($link); // 清除链接前后的空格
        if(empty($link)) continue; // 若链接为空则跳过
        
        preg_match('/thread-(\d+)-/', $link, $matches); // 从链接中提取出帖子编号
        
        if(!empty($matches[1])) {
            $tid = $matches[1];
            $sql = "DELETE FROM `pre_forum_thread` WHERE `tid` = ?";
            $stmt = mysqli_prepare($con, $sql);
            mysqli_stmt_bind_param($stmt, 'i', $tid);
            mysqli_stmt_execute($stmt);
            
            if(mysqli_stmt_errno($stmt) != 0) { // 检查是否有错误
                echo "<p class='error'>删除ID为 {$tid} 的帖子 失败:" . mysqli_stmt_error($stmt) . "</p>";
            } else {
                echo "<p class='success'>删除ID为 {$tid} 的帖子 成功。</p>";
            }
        } else {
            echo "<p class='error'>无效的链接:{$link}</p>";
        }
    }
}

mysqli_close($con);
?>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>一键删除DZ文章</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: "Microsoft YaHei", Arial, Helvetica, sans-serif;
        }
        
        body {
            background-color: #F5F5F5;
        }
        
        .container {
            max-width: 600px;
            margin: 30px auto;
            background-color: #FFF;
            border-radius: 5px;
            box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
            padding: 20px;
        }
        
        h1 {
            text-align: center;
            font-size: 28px;
            color: #333;
            margin-bottom: 20px;
        }
        
        label {
            display: block;
            font-size: 16px;
            color: #333;
            margin-bottom: 10px;
        }
        
        textarea {
            width: 100%;
            height: 150px;
            resize: none;
            margin-bottom: 20px;
            font-size: 14px;
            line-height: 20px;
            color: #666;
            padding: 10px;
            border-radius: 5px;
            border: 1px solid #DDD;
        }
        
        input[type='submit'] {
            display: block;
            width: 80px;
            height: 30px;
            line-height: 30px;
            margin: 0 auto;
            background-color: #28A745;
            color: #FFF;
            font-size: 14px;
            text-align: center;
            border-radius: 5px;
            cursor: pointer;
            border: none;
        }
        
        .error {
            color: #F44336;
        }
        
        .success {
            color: #28A745;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>批量删除帖子</h1>
        <form method="post">
            <label for="delete_links">请输入要删除的帖子链接:</label>
            <textarea name="delete_links" id="delete_links" placeholder="每行一个链接"></textarea>
            <input type="submit" value="删除帖子">
        </form>
    </div>
</body>
</html>

五、更多优化

由于我强迫症严重,虽然这个页面仅面向网站管理员,但是我比较注重体验,所以继续问了ChatGPT​以下问题:

“不要显示太多行的成功提示,直接罗列出所有删除的ID即可”;

“修改代码要求删除后罗列删除的ID,并在三秒后自动返回”;

“要求修改代码,要求对输入的链接进行去重,并将已删除的ID进行去重展示”;

……

从我的对话来看,与GPT的高效沟通才是快速开发的关键,所以这都是技巧!

好了​!今天的开发就到这儿,咱们下期见!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、自动省略
  • 二、系统报错
  • 三、优化代码
  • 四、优化前端
  • 五、更多优化
相关产品与服务
Discuz!
Discuz! 是全球领先的论坛社区应用系统,自2001年6月面世以来,服务超过300多万网站用户案例。现在,借助 Discuz! ,您不仅可以使用搭建传统的社区论坛,更可轻易的构建面向移动互联网时代的私域流量和社交圈子类的应用,并快速启动业务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档