風雲論壇后台开发 → 浏览:帖子主题
分页: 1 2 3 4 5, 共 5 页
* 帖子主题:花了两天时间开发了一个论坛程序
pojin (ID: 2)
等级:风云使者
积分:309
发帖:2
来自:保密
注册:2022/3/30 11:42:27
造访:2024/11/22 10:40:00
[ 第 25 楼 ] 回复
@25楼 locopaca,可以把你的论坛网址贴出来吗?共同探讨学习下。
2023/1/7 20:08:45 IP:已设置保密
locopaca (ID: 31)
等级:圣骑士
积分:62
发帖:1
来自:保密
注册:2022/12/16 15:45:50
造访:2023/4/18 17:53:47
[ 第 26 楼 ] 回复
var file = x.files[0];
    var allow = /\.(jpg|png|gif|zip|rar|txt|docx|xlsx|pdf|mp3|flac|mp4)$/i;
    if(!allow.test(file.name)) return alert("不支持的文件格式");
    if(file.size > 1024 * 1024 * 100) return alert("文件不能大于 100Mb");
    var body = new FormData;
    body.append("file", file);
    fetch("api/upload", { method: "POST", body: body }).then(function(res){ return res.json(); }).
        then(function(res) {
            if(res.err == "需要登录") return login(x);
            if(res.err) return alert(res.err);
            var type = /\.(jpg|gif|png)$/i.test(res.path) ? "image" : "upload";
            var fname = file.name.replace(/\[/g, "(").replace(/\]/g, ")");
            fname += "|"+ parseSize(file.size, "Byte,Kb,Mb,Gb".split(","));
            ipt[ipt.length - 4].value += "[" + type + "=" + res.path + "|" + fname + "]";
            alert("上传成功");
        }).catch(function(err) { alert("上传异常"); });
2023/1/7 20:53:56 IP:已设置保密
locopaca (ID: 31)
等级:圣骑士
积分:62
发帖:1
来自:保密
注册:2022/12/16 15:45:50
造访:2023/4/18 17:53:47
[ 第 27 楼 ] 回复
另外有登录一会就失效的问题,不知道是不是使用cookie后清空问题,我觉得不需要清空,毕竟没什么隐私信息
=================================
斑竹回复(@2023/01/08 09:47:49)
登录失效通常有三方面原因:
一是 ASP 默认 20分钟内无操作自动退出;
二是进程池一定时间内遇到一定量错误之后会自动重置,可以参考设置:IIS 进程池/高级设置/快速故障防护/已启用 的说明,这个一般需要去事件日志中查找原因;
三是 IIS 有两个默认参数会导致登录状态丢失:
1、IIS 进程池/高级设置/进程模型/闲置超时 默认在 20 分钟内没有任何请求,将会回收进程池,直到遇到下个请求才再次激活进程池(相当于重启 IIS 站点了),可以设置为0。
2、IIS 进程池/高级设置/回收/固定回收间隔 默认每隔 1740 分钟(29小时)会强制回收一次,可以设置为 0。
关于持久化登录,考虑到目前浏览器都有“保存登录账号密码”的功能,所以目前没使用 cookie等 存储登录状态来实现。
如果有必要的话,可以尝试在未登录状态时判断能否利用 Cookie 恢复登录状态。登录的时候指定一个 Cookie,过期时间为10年。
例如,Cookie 可以使用此规则:token=UserID:timestamp:md5(pass+salt+timestamp)
这样,服务端就能根据 token 是否有效来使用 UserID 重新初始化登录状态。
2023/1/7 20:59:19 IP:已设置保密
locopaca (ID: 31)
等级:圣骑士
积分:62
发帖:1
来自:保密
注册:2022/12/16 15:45:50
造访:2023/4/18 17:53:47
[ 第 28 楼 ] 回复
另外音乐mp3,flac和mp4小视频上传后可以直接嵌在网页回复中播放就最好了,不用搞的花丽酷嘈的,简单直接带下载就ok,方便用户下载分享
=================================
斑竹回复(@2023/01/08 10:14:47)
目前只识别了是否图片,自动填入 image 或者 upload 标记。如果需要播放媒体,可以尝试扩充 audio 和 video 标记,前端和后端都需要做相应处理。
2023/1/7 21:03:52 IP:已设置保密
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1567
发帖:70
来自:保密
注册:2022/3/30 15:28:53
造访:2024/11/22 10:43:44
[ 第 29 楼 ] 回复
@29 楼:前端处理,找到
var type = /\.(jpg|gif|png)$/i.test(res.path) ? "image" : "upload";
修改成:
var type = /\.(jpg|gif|png)$/i.test(res.path) ? "image" :
    /\.(mp3|flac)$/i.test(res.path) ? "audio" :
    /\.(mp4|m3u8)$/i.test(res.path) ? "video" :
    "upload";
后端处理(注意:微博的前端也有此正则替换),可以将对应的那句正则处理修改成:
str = str.replace(/\t/g, "    ").replace(/  /g, "&nbsp; ").replace(/\r?\n/g, "<br />\r\n").
    replace(/\[(.+?)\]\(http(.+?)\)/g, '<a href="http$2" target="_blank">$1</a>').
    replace(/\[(image|upload)=([^\]]+)\]/g, function(src, $1, $2) {
        var file = $2.split("|");
        return $1 == "image" ? '<div><a href="' + file[0] + '" target="_blank"><img src="' + file[0] + '" alt="' + html(file[1]) + '" /></a></div>'
            : ('<a href="' + file[0] + '" class="attach" target="_blank">' + file[1] + '</a>(' + file[2] + ')');
    }).replace(/\[(audio|video)=([^\]]+)\]/g, function(src, $1, $2) {
        var file = $2.split("|");
        return '<div><' + $1 + ' src="' + file[0] + '" controls></' + $1 + '></div>';
    });
然后通过 css 控制 audio 和 video 即可。
2023/1/8 10:29:00 IP:已设置保密
locopaca (ID: 31)
等级:圣骑士
积分:62
发帖:1
来自:保密
注册:2022/12/16 15:45:50
造访:2023/4/18 17:53:47
[ 第 30 楼 ] 回复
好的,我试试把功能修改下看看怎么样,感谢,主要功能简单明了实用就行。我先改改
2023/1/8 17:41:18 IP:已设置保密
locopaca (ID: 31)
等级:圣骑士
积分:62
发帖:1
来自:保密
注册:2022/12/16 15:45:50
造访:2023/4/18 17:53:47
[ 第 31 楼 ] 回复
另外登录时间cookie用token太麻烦了,不如就用个cookie变量logintime,登录时和发评论才更新logintime,每次操作数据库用当前时间currenttime-logintime>固定时间比如2个小时就可以了,我之前就是这么弄得,以前用session出现各种负载问题,后来有使用过token加解密太麻烦了,还是cookie简单,用一个加解密函数就行了,虽然有一定风险,但用其他的联合验证也会被各种方法破解,倒不如不涉及隐私信息,简单开放定时备份,反正没什么重要数据
=================================
斑竹回复(@2023/01/08 21:00:14)
我看了你的论坛,登录基本上5分钟就掉一次,怀疑是环境有问题,建议看一下事件日志。
2023/1/8 17:51:34 IP:已设置保密
locopaca (ID: 31)
等级:圣骑士
积分:62
发帖:1
来自:保密
注册:2022/12/16 15:45:50
造访:2023/4/18 17:53:47
[ 第 32 楼 ] 回复
文件上传成功了,就是没有播放显示,前台怎么添加呢?
=================================
斑竹回复(@2023/01/08 21:02:41)
可以参考第 30 楼的代码。
2023/1/8 18:19:21 IP:已设置保密
locopaca (ID: 31)
等级:圣骑士
积分:62
发帖:1
来自:保密
注册:2022/12/16 15:45:50
造访:2023/4/18 17:53:47
[ 第 33 楼 ] 回复
楼主最好弄个更新版本
1、把音乐,视频,docx、xlsx文档上传嵌入加进去且可下载,回归共享理念。
2、把用户密码修改和找回密码加一下,不需要邮箱和手机短信方式,只需要在注册的时候加一条问题答案,比如你的密保答案用于找回密码,反正论坛不涉及隐私所以没必要做过多限制。
3、设置版主的功能好像有bug,不知道是不是我的问题,设了之后有提示成功,但实际没反应
2023/1/11 12:21:18 IP:已设置保密
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1567
发帖:70
来自:保密
注册:2022/3/30 15:28:53
造访:2024/11/22 10:43:44
[ 第 34 楼 ] 回复
主要是目前天天加班,时间不是很足,然后 要更新的话,asp,aspx,nodejs 同步版,nodejs 异步版都会需要同步更新,工作量很大😂。

docx, xlsx,音视频这块,在上传那里配置就行了,上面有详细的修改方法和相关代码。这些内容一般属于私有化定制,不太适合发布到公共版本里面。

设置版主功能应该没有 bug,我自己的版本是正常的:http://228mi.com:1180
2023/1/11 17:09:40 IP:已设置保密
pojin (ID: 2)
等级:风云使者
积分:309
发帖:2
来自:保密
注册:2022/3/30 11:42:27
造访:2024/11/22 10:40:00
[ 第 35 楼 ] 回复
回复34楼:老大很忙,开发的这些都是抽休息时间做的,比较辛苦,你要是需要私有化定制,可以列个清单给老大。

关于你需要的“找回密码”,我是通过手机短信方式进行验证的,首先要在“注册”的地方加一个“手机号码”的输入框,当然同时要对应在数据库的表里加手机的字段。

通过“手机号码”发送验证码,核对验证码后输入新密码,完成修改密码的形式。当然,你也可以用密保问题进行找回密码。

另外,你的网站登录问题还是存在,大约5分钟就掉线了。

1.png


2.png

2023/1/11 21:27:20 IP:已设置保密
locopaca (ID: 31)
等级:圣骑士
积分:62
发帖:1
来自:保密
注册:2022/12/16 15:45:50
造访:2023/4/18 17:53:47
[ 第 36 楼 ] 回复
楼主还是弄个更新版本,放弃asp,走aspx
1、把音乐mp3,flac,视频mp4,docx、xlsx、ppt文档上传嵌入加进去且可页面嵌入播放并可以下载,大小控制在100Mb就可以了,回归共享理念。
2、把用户密码修改和找回密码加一下,不需要邮箱和手机短信方式,只需要在注册的时候加一条问题答案,比如你的密保答案用于找回密码,反正论坛不涉及隐私所以没必要做过多限制。
另外如果不行麻烦告知在哪个页面代码嵌入音视频播放代码,这改改那改改bug太多
2023/1/28 0:14:50 IP:已设置保密
分页: 1 2 3 4 5, 共 5 页
快速回复主题
账号/密码
用户: 没有注册? 密码:
评论内容