开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 864|回复: 58
收起左侧

[易源码分享] 【原创】无需搭建,0基础给你的程序加个云端留言板!

[复制链接]
回帖奖励 22 枚 精币 回复本帖可获得 1 枚 精币奖励! 每人限 1 次(中奖概率 50 %)
结帖率:100% (14/14)
发表于 3 天前 | 显示全部楼层 |阅读模式   河南省新乡市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
【原创】网络剪辑版操作2024.11.10最新,含上传和读取
https://bbs.125.la/forum.php?mod=viewthread&tid=14839804
(出处: 精易论坛)


上个帖子开源了我制作的网络剪辑版读写例程
本贴就基于此制作一个简单的留言板功能
特点:无需登录,无需验证码,无需实名,无需搭建服务器,无需内网穿透等等,0基础小白直接把代码复制走就能用!源码编译可用,无需依托任何其他文件
注:大牛请绕道,我也只是个萌新,后面会先讲原理,源码在帖子结尾,没耐心看的可以直接拉到结尾取走源码!


以往论坛上也有一些类似的源码,究其基本原理都是借助一些留言平台,通过post进行留言,读取,实现的留言板操作
例如:
【苏汉UI】无需服务器的留言板,给你的软件加上留言反馈吧
https://bbs.125.la/forum.php?mod=viewthread&tid=14837974
(出处: 精易论坛)


永硕E盘应用模块  实现软件运行次数,在线人数 在线留言(1.1版更新)
https://bbs.125.la/forum.php?mod=viewthread&tid=72129
(出处: 精易论坛)

诸如以上

而本源码使用的平台是网络剪贴板https://netcut.cn
这是一个能够上传文本,且完全无需注册登录,支持密码保护,地址完全自定义的开源网站
例如:https://netcut.cn/我爱精易论坛


而最关键的是,这个网站基本没有任何验证,post起来相当的方便快捷,速度块,开发难度小(没做验证不代表不安全,是可以设置密码的)
有了一个方便上传文本的云端平台,我们就可以非常方便的制作留言板了


1.发送留言

发送留言

发送留言

首先要实现发送留言,因为剪贴板只是一个储存文本的平台,并非像上面举得两个例子一样有现成的留言入口
所以我选择手搓一个

我采用了这样一个格式:
  
留言ID = 文本_取随机字母 (50, 2)  ' 生成一个由50个大小写字母组成的随机ID,确保特殊性,方便后续操作!
剪辑版_上传文本 (全_用作留言板的剪辑版名, #换行符“【——————” + 留言ID + “——————”#换行符“留言者:h*h*w*h” + 编辑框_留言姓名.内容 + “h*h*w*h”#换行符“留言内容:h*h*w*h” + 编辑框_留言内容.内容 + “h*h*w*h”#换行符“留言时间:h*h*w*h”到文本 (取现行时间 ()) + “h*h*w*h”#换行符“IP:h*h*w*h” + 全_发送者公网IP + “h*h*w*h”#换行符“——————” + 留言ID + “——————】”, 全_剪辑版密码, 2)


留言板界面里是这样的

[JavaScript] 纯文本查看 复制代码
【——————pgEtOtxoOYneyhbkAKpbzTaizHQEMzbrmzPOgaepTzWjgjijXa——————
留言者:h*h*w*h憨憨叹号h*h*w*h
留言内容:h*h*w*h第114514条留言!h*h*w*h
留言时间:h*h*w*h2020年11月10日17时8分18秒h*h*w*h
IP:h*h*w*h11.451.4.191h*h*w*h
——————pgEtOtxoOYneyhbkAKpbzTaizHQEMzbrmzPOgaepTzWjgjijXa——————】


h*h*w*h是关键字,为了方便后续的文本分割和取出
后续取留言时只需要进行文本处理,取出所有数据存进数组里,再循环插入列表框即可

  
原文本 = 剪辑版_读取文本 (全_用作留言板的剪辑版名, 全_剪辑版密码, , )  ' 取出全部留言
如果真 (删首尾空 (原文本)“”)
返回 ()
文本_取中间_批量_正则方式 (原文本, “【”, “】”, 全_留言初始数组, , , , , 真, )  ' 进行文本处理
文本_取中间_批量_正则方式 (原文本, “留言者:h*h*w*h”, “h*h*w*h”, 全_留言姓名数组, , , , , 假, )  ' 进行文本处理
文本_取中间_批量_正则方式 (原文本, “留言内容:h*h*w*h”, “h*h*w*h”, 全_留言内容数组, , , , , 假, )  ' 进行文本处理
文本_取中间_批量_正则方式 (原文本, “留言时间:h*h*w*h”, “h*h*w*h”, 全_留言时间数组, , , , , 假, )  ' 进行文本处理
文本_取中间_批量_正则方式 (原文本, “IP:h*h*w*h”, “h*h*w*h”, 全_留言IP数组, , , , , 假, )  ' 进行文本处理
文本_取中间_批量_正则方式 (原文本, “【——————”, “——————”, 全_留言ID数组, , , , , 假, )  ' 进行文本处理
计次循环首 (取数组成员数 (全_留言初始数组), i)
索引 = 超级列表框.插入表项 (-1, 全_留言姓名数组 [i], , , , )  ' 插入[/i]
[i]    超级列表框.置标题 (索引, 1, 全_留言时间数组 )  ' 插入
计次循环尾 ()

如此这般,上传留言和读取留言就做好了
2.删除留言

删除留言

删除留言

制作删除留言,由于我们是自己手搓的格式,通过文本处理转换成留言条目
那么难点就在于如何才能在剪辑版中n行数据中,精确地删除掉某个留言涵盖的某几行

我的思路如下:
由于刚才步骤1已经通过命令取出了“全_留言ID数组”,里面应该涵盖了若干个留言ID

步骤1中还进行了列表框插入操作,所以我们可以得知:
全_留言ID数组 [超级列表框.现行选中项 + 1] 应该是和 超级列表框.现行选中项 相对应的
也就是说当我们选中超级列表框第一行的时候,这一行对应的ID就应该是 全_留言ID数组 [超级列表框.现行选中项 + 1]

取出了留言ID之后,一切都变得简单起来
由于前文提到,留言ID是50个随机大小写字母组成的,能够确保其唯一性
只要知道了ID,就能准确知道到底是哪一条留言
  
原文本 = 剪辑版_读取文本 (全_用作留言板的剪辑版名, 全_剪辑版密码, , )  ' 取出全部留言
文本_取中间_批量_正则方式 (原文本, “【——————” + 留言ID + “——————”, “——————” + 留言ID + “——————】”, 临时数组, , , , , 真, )  ' 根据ID取出内容
剪辑版_上传文本 (全_用作留言板的剪辑版名, 子文本替换 (原文本, 临时数组 [1], “”, , , ), 全_剪辑版密码, 1)  ' 把取出的内容替换为空后上传回去实现删除


我们将取出的内容存在临时数组中,同时再将取出的留言作为欲被替换的子文本,原文本作为欲被替换的文本,用作替换的子文本设置为空
如此一来我们便将原文本中,我们指定留言ID的那条留言(也就是要删除的留言),替换成了空文本
最后再将文本覆盖上传回去,就实现了留言的删除

3.修改留言

修改留言

修改留言

修改留言的原理和步骤2删除留言的原理完全一样
区别在于最后替换时
删除留言是将指定ID的留言替换成了空内容
而修改留言则是将指定ID的留言内容替换为了新的内容,如此实现了留言的修改
  
原文本 = 剪辑版_读取文本 (全_用作留言板的剪辑版名, 全_剪辑版密码, , ) ' 取出全部留言
文本_取中间_批量_正则方式 (原文本, “【——————” + 全_留言ID数组 [超级列表框.现行选中项 + 1]“——————”, “——————” + 全_留言ID数组 [超级列表框.现行选中项 + 1]“——————】”, 临时数组1, , , , , 真, ) ' 根据id取出留言内容
' 文本_取中间_批量_正则方式 (临时数组1 [1], “留言内容:h*h*w*h”, “h*h*w*h”, 临时数组2, , , , , 假, )
修改后文本 = “【——————” + 全_留言ID数组 [超级列表框.现行选中项 + 1]“——————”#换行符“留言者:h*h*w*h” + 全_留言姓名数组 [超级列表框.现行选中项 + 1]“h*h*w*h”#换行符“留言内容:h*h*w*h” + 编辑框_留言内容_管理端.内容 + “h*h*w*h”#换行符“留言时间:h*h*w*h” + 全_留言时间数组 [超级列表框.现行选中项 + 1]“h*h*w*h”#换行符“——————” + 全_留言ID数组 [超级列表框.现行选中项 + 1]“——————】” ' 处理修改后文本
原文本 = 子文本替换 (原文本, 临时数组1 [1], 修改后文本, , , ) ' 替换掉原文本
剪辑版_上传文本 (全_用作留言板的剪辑版名, 原文本, 全_剪辑版密码, 1) ' 上传新内容,覆盖老内容,实现修改



i支持库列表   支持库注释   
iext扩展界面支持库一


4.清空留言板

清除全部

清除全部

清空留言板并没有用到什么特殊的机制,我选择使用了我制作的剪贴板模块中的一条命令
剪辑版_删除(剪辑版名,密码)
这条命令会直接注销剪辑版,清空里面的所有内容

5.输入字符限制

字符限制

字符限制

如果留言过长,我们处理文本的时候很可能直接卡死,或者剪贴板被占满
为了防止这种刷屏的情况发生,字符限制就是必不可少的了

我模仿精易论坛发帖时标题部分的逻辑:还可输入 n 个字符
简单的实现了字符限制以及显示,让其在超过指定字符数时变红,未超过时则是不显眼的灰色
  
子程序名返回值类型公开备 注
_编辑框_留言内容_内容被改变  
透明标签_字符数提醒.标题 = “还可输入 ”到文本 (400 - 取文本长度 (编辑框_留言内容.内容)) + “ 字符”
如果 (400 - 取文本长度 (编辑框_留言内容.内容) < 0)
透明标签_字符数提醒.文本颜色 = #红色
透明标签_字符数提醒.文本颜色 = #灰色


i支持库列表   支持库注释   
iext扩展界面支持库一


网络剪贴板界面

网络剪贴板界面

本帖被以下淘专辑推荐:

签到天数: 13 天

发表于 4 小时前 | 显示全部楼层   浙江省宁波市
感谢分享,支持开源!!!
回复 支持 反对

使用道具 举报

签到天数: 8 天

发表于 10 小时前 | 显示全部楼层   河南省鹤壁市
支持支持支持
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 12 天

发表于 10 小时前 | 显示全部楼层   广东省广州市

回帖奖励 +1 枚 精币

什麼都不要 那留言哪裡看了
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 10 天

发表于 12 小时前 | 显示全部楼层   香港特别行政区中西区

回帖奖励 +1 枚 精币

想學習一下謝謝1了
回复 支持 反对

使用道具 举报

结帖率:100% (22/22)

签到天数: 13 天

发表于 昨天 23:07 | 显示全部楼层   江西省九江市
只要能留字,用处就非常的多
回复 支持 反对

使用道具 举报

结帖率:83% (5/6)

签到天数: 5 天

发表于 昨天 21:46 | 显示全部楼层   江苏省盐城市
这个挺不错的 真话
回复 支持 反对

使用道具 举报

签到天数: 11 天

发表于 昨天 21:19 | 显示全部楼层   重庆市重庆市

回帖奖励 +1 枚 精币

这个可以,感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (13/13)

签到天数: 10 天

发表于 昨天 20:56 | 显示全部楼层   四川省成都市
66666666666666666666
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 4 天

发表于 昨天 17:58 | 显示全部楼层   重庆市重庆市

回帖奖励 +1 枚 精币

感谢分享,好东西,学习一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表