- 主题:web删帖 回收站中标题为空的问题
web下删帖 在回收站中看到的title是空的
找了一下问题 貌似在 libBBS/article.c 734行 cancelpost 函数中
sprintf(oldpath, "%-32.32s - %s", fh->title, userid);
相同的fh->title 可是%-32.32s在web和T下分别格式化后得到的结果却不一样
T下是正常的 web下就是一个空字符串 strlen看过了 是0
这里为什么要用%-32.32s呢 我暂时改成了%-32s 能保证web删帖没问题
求解
--
FROM 221.130.58.*
web封禁也是一样的
phpbbs_bm.c
sprintf(strtosave, "%-12.12s %-30.30s%-12.12s %2d月%2d日后\x1b[%lum", uident
这里也是-12.12的情况 然后php执行封禁 就会sprintf成空字符串
--
FROM 221.130.58.*
2.6.18-8.el5
有期限的啊 web服务器用的是nginx
我把%-12.12s 这些 换成%-12s 之后 就不存在问题了 也可以自动解封
其实不是没有期限 应该是BBS_HOME/boards/test/denyuser 这个文件 没有写入原因和日期 只写入了用户id 总之还是那个sprintf的问题
【 在 arikado 的大作中提到: 】
: linux的版本?
: 我这边用fedora时,如果用servie httpd start来启动apache就没有问题,如果用/usr/sbin/httpd -k start的命令直接启动apache就会出现类似web上的bug,还有一个症状是,web封人会时没有期限的。。。
: 【 在 tthen (大米) 的大作中提到: 】
: ...................
--
修改:tthen FROM 221.130.58.*
FROM 221.130.58.*
难道跟web服务器的编码有关? sprintf这个函数涉及编码问题么?
--
修改:tthen FROM 221.130.58.*
FROM 221.130.58.*
嗯 我感觉也是php或者web服务器的问题
strnzhcpy 这个在哪里用?
%-32.32s 和 %-32s 主要区别在哪里呢
【 在 fancyrabbit 的大作中提到: 】
: 没期限那个我记得我已经修了,和php版本有关系...
: 用了一下strnzhcpy限制32的长度
: 【 在 arikado (Aeolus的耳环) 的大作中提到: 】
: ...................
--
修改:tthen FROM 221.130.58.*
FROM 221.130.58.*
发现了 %4.4s 会限制最大长度。。。。
【 在 fancyrabbit 的大作中提到: 】
: 不用32.32s,用strnzhcpy拷贝到一个新的缓冲区
: man 3 printf自己看。。。
: 用"123" 和"12345"试验一下%4s和%4.4s
: ...................
--
FROM 221.130.58.*
还想问一下 造成sprintf产生空字符串的原因是什么呢 是汉字截断么
--
FROM 221.130.58.*