前言
我的电影群人越来越多,虽然我已经在群内已经设置了相关的机器人回复,但取资源的可能还是不能很快找到相应的资源。另外,也有其他需要分享的人,不同的人可能求同一个资源,消息一多,就被淹没了。
为了保证大家能够及时找到合适的资源,甚至可以不通过群内关键词获取资源,我使用ChatGPT开发了这个资源库,这个资源库和网上大多数的资源一样,是可以进行搜索和发资源的,但是这个资源库的作用是,去除更多不需要的功能,打造极简且易于管理的系统。

话不多说,讲讲它的功能:
1.免登陆投稿功能,直接解析资源为XX云盘;
2.支持单个和批量投稿,保证效率;
3.支持精确搜索功能;
4.备注可以注明资源相关介绍,保证准确;
5.免登陆前端管理系统,可以对资源进行修改和删除工作;
6.支持去重功能,保证上传的资源名称和链接不会有重复;

在页面上,可以看到,网站使用的是bootstrap样式搭建的,极简样式,几乎没有任何的自建样。再者使用了页码和前端修改功能,可能对于新手用户来说还是比较麻烦的,但是看了我上期《我用ChatGPT做开发之小轻世界聊天系统》就知道,其实页码功能不是最难的,前端修改功能才是多难的。
前端修改功能,需要加一个弹窗,检测修改的链接是否为真实链接,还要对其查重等等,其中的逻辑比较麻烦,在后面我会一点点给大家讲到,这里会从零开始,教新手怎么去开发这样的系统。
一、界面
网站需要这几个页面:
- index.php(首页)
- tougao.php(单个投稿)
- resources.php(批量投稿)
- edit.php(编辑)
- delete.php(删除)
- config.php(数据库信息)


二、开发页面
为了开发成本更低,我们确定使bootstrap样式开发页面,开发更省心。
因为几乎每个页面都会加载数据库,以保证数据的上传和下载。
数据库
同样,我们直接问ChatGPT如何分离数据库信息,以方便在其他页面调用数据库文件,系统会给出这个代码:
connect_error) {
die("连接失败: " . $conn->connect_error);
}
mysqli_set_charset($conn, "utf8");;
复制
然后我们就可以在其他页面中这样引入这个文件了:
复制
现在的数据库是没有任何设置的,我们需要询问ChatGPT,自己需要哪些内容,并告诉这些内容的用途,比如“我需要一个数据库。用于存放资源名、资源链接、资源备注,请给出完整SQL代码”。

自己需要先在服务器中创建一个数据库,并打开数据库的phpMyAdmin管理页面 ,输入相关的代码:
CREATE TABLE resources (
id INT AUTO_INCREMENT PRIMARY KEY,
resource_name VARCHAR(255),
resource_link VARCHAR(255),
resource_remark VARCHAR(255)
);
复制
其中resources是数据表名,是可以自定义的。
首页
我们要确定整个页面展示资源名、资源链接、资源备注、资源设置这几个参数,ChatGPT给出这个代码:
复制
这个是表格的样式,数据也是示例数据,我们需要的是,将表格链接到数据库,以展示动态数据。
现在已经有数据库的参数、表格样式,把已有信息告诉ChatGPT,并要求其完成数据对接:

我们调整后index.php代码为:
0) {
// 输出表头
echo '
';
// 输出每行数据
while ($row = mysqli_fetch_assoc($result)) {
echo '
';
}
// 输出表尾
echo '
资源名称 | 链接 | 备注 | 操作 |
---|---|---|---|
‘ . $row[‘resource_name’] . ‘ | ‘ . $row[‘resource_link’] . ‘ | ‘ . $row[‘resource_remark’] . ‘ | 操作 |
';
} else {
echo "没有找到资源信息";
}
// 关闭数据库连接
mysqli_close($conn);
?>
复制
但是我的习惯一般是前后端分离,就是会将后端查询和前端展示内容做个代码分离,这样方便我们去查阅问题所在。
close();
?>
资源名称 | 链接 | 备注 | 操作 |
---|---|---|---|
待定 |
复制
这就是简单的雏形了,这里我们需要上传一条数据看看是否能够展示出来。
接下来我们来开发投稿页面。
投稿页面
用同样的方法,直接告诉ChatGPT你的需求,“需要用bootstrap样式只做一个表单,用于提交resource_name、resource_link、resource_remark数据。
这里比较简单,对接好数据库就行,下面是我自己的资源库投稿页面部分代码:

我的投稿页面加入了查重和检测网址的功能,投稿完成后自动跳转到主页(index.php)。
检测网址的代码如下:
复制
现在我们可以测试一下是否能提交,如果能提交,则主页会直接展示数据库的内容。
编辑与删除
在主页列表中,直接设置编辑按钮,以便管理员可以直接修改数据。这里需要引入的是编辑(edit.php)和删除(delete.php)页面。
需要先对这两个页面进行设置,才能在列表中对其调用。这两个页面是可以直接通过询问ChatGPT获取到的,基本不需要调试,拿着就可以用,如果有任何报错,携带源码后加入保存内容,如源码+“为什么会出现空白,请修改”。
编辑(edit.php):
0) {
// 检查是否与现有记录完全匹配
$sql_check = "SELECT * FROM resources WHERE (resource_name='$resource_name' OR resource_url='$resource_url') AND id!='$id'";
$result_check = mysqli_query($conn, $sql_check);
if ($result_check && mysqli_num_rows($result_check) > 0) {
echo 'similar_record';
exit();
}
// 更新该条记录
$sql_update = "UPDATE resources SET name='$resource_name', resource_url='$resource_url', resource_remark='$resource_remark' WHERE id='$id'";
if (mysqli_query($conn, $sql_update)) {
echo 'success';
} else {
echo 'failed';
}
} else {
// 检查是否存在相同链接或者名称的记录
$sql_check = "SELECT * FROM resources WHERE (resource_name='$resource_name' OR resource_url='$resource_url')";
$result_check = mysqli_query($conn, $sql_check);
if ($result_check && mysqli_num_rows($result_check) > 0) {
echo 'similar_record';
exit();
}
// 插入新纪录
$sql_insert = "INSERT INTO resources (resource_name, resource_url, resource_remark) VALUES ('$resource_name', '$resource_url', '$resource_remark')";
if (mysqli_query($conn, $sql_insert)) {
echo 'success';
} else {
echo 'failed';
}
}
$conn->close();
?>
复制
其中这个插入代码是有查重功能的,按需可以增删。
删除(delete.php):
0) {
// 删除该条记录
$sql_delete = "DELETE FROM resources WHERE id='$id'";
if (mysqli_query($conn, $sql_delete)) {
echo 'success';
} else {
echo 'failed';
}
} else {
echo 'record_not_found';
}
} else {
echo 'password_error';
}
$conn->close();
?>
复制
其中 ,password是需要自己设置的,也就是说,我们是通过直接设置密码来验证的,并不是数据库,验证密码通过后就可以直接对数据进行删除操作。
在操作按钮处调用这俩页面,需要设置一个窗口,并设置相关的按钮,完成这个操作。可以直接让ChatGPT直接为我们设置一个按钮,点击后弹出这个输入内容的弹窗,底下加入编辑和删除、取消功能,如图设计:

批量投稿
批量投稿页面使用的是文本框中按格式填写去识别数据的,一行一个资源,数据用英文逗号隔开“,”,备注设置的是非必要内容。

这部分需要长时间多次调试才能设置成功,ChatGPT并不能直接给出正确的结果,需要不断优化和调试。
以下是我的资源库批量投稿的完整代码,数据与上述举例的数据库命名并不对应,所以需要自行修改统一,此页面并非必须,只是我觉得这样上传资源方便些!
= 2 && count($data) <= 3) {
$name = $conn->real_escape_string(trim($data[0]));
$url = $conn->real_escape_string(trim($data[1]));
if (!filter_var($url, FILTER_VALIDATE_URL)) {
$response = array('status' => 'error', 'msg' => '链接格式错误:' . $url);
echo json_encode($response);
exit;
}
$tips = count($data) === 3 ? "'" . $conn->real_escape_string(trim($data[2])) . "'" : 'NULL';
// 查重
$checkSql = "SELECT COUNT(*) AS count FROM lianjie WHERE name = '$name' AND yunurl = '$url'";
$checkResult = $conn->query($checkSql);
if ($checkResult->num_rows > 0) {
while ($row = $checkResult->fetch_assoc()) {
$count = intval($row["count"]);
if ($count > 0) { // 已存在相同记录
echo json_encode(array('status' => 'error', 'msg' => '已存在相同资源:' . $resource));
exit;
}
}
}
array_push($insertValues, "('$name', '$url', $tips)");
} else {
// 提示参数不正确
echo json_encode(array('status' => 'error', 'msg' => '参数格式错误'));
exit;
}
}
// 执行插入操作
if (!empty($insertValues)) {
$sql = "INSERT INTO lianjie (name, yunurl, tips) VALUES " . implode(',', $insertValues) . " ON DUPLICATE KEY UPDATE tips = VALUES(tips)";
if ($conn->query($sql) === FALSE) {
echo json_encode(array('status' => 'error'));
} else {
echo json_encode(array('status' => 'success'));
}
} else {
echo json_encode(array('status' => 'empty'));
}
exit;
}
?>
批量添加资源
资源列表(每行一条,格式:“名称,链接,[备注]”) 返回单个投稿提交
复制
至此,所有页面的开发已经完成,现在就是对一些页面的优化了,比如数据量比较多之后,该如何设置页码,如何加入搜索功能,还有一些细节需要优化。下面我们继续和ChatGPT一起开发!
三、细节优化
页码
页码的设置相信大家在前面的小轻世界畅聊的例子中已经学会了,这里也简单讲讲吧,这里的页码设置是没有其他页码系统混淆,所以比较方便。
首先要在后端处理每页显示的资源多少:
// 分页相关
$pageSize = 10; // 每页显示的记录数
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1; // 当前页码,默认为1
$start = ($page - 1) * $pageSize; // 每页显示记录的起始位置
复制
另外展示三页页码,其他页码直接用“…”代替,设置上/下一页。
$pageSize) { ?>
- <
- ‘ . $i . ‘
- ‘ . $i . ‘
- …
- >
- >
复制
搜索
接下来需要设置搜索页面:
搜索
复制
当然别忘了对后端数据进行处理,否则搜索不到结果。
// 判断是否有搜索关键词
if (isset($_GET['q'])) {
$q = $_GET['q'];
// 查询符合条件的总记录数
$sqlCount = "SELECT COUNT(*) as count FROM lianjie WHERE name LIKE '%$q%'";
$countResult = mysqli_query($conn, $sqlCount);
$countRow = mysqli_fetch_assoc($countResult);
$count = $countRow['count'];
// 查询符合条件的数据
$sql = "SELECT * FROM lianjie WHERE name LIKE '%$q%' ORDER BY id DESC LIMIT $start, $pageSize";
} else {
// 查询总记录数
$sqlCount = "SELECT COUNT(*) as count FROM lianjie";
$countResult = mysqli_query($conn, $sqlCount);
$countRow = mysqli_fetch_assoc($countResult);
$count = $countRow['count'];
// 查询当前页数据
$sql = "SELECT * FROM lianjie ORDER BY id DESC LIMIT $start, $pageSize";
}
复制
以上就是本期教程的全部内容
文章来源于互联网:我用ChatGPT做开发之云盘资源分享系统
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=13249,转载请注明出处。
评论0