«
用动易做投稿热线

时间:2006-12-6    作者:Deri    分类: 分享


    新闻网前几天已经传到网上了,看到自己的成果终于显示在news.hbmy.edu.cn的地址栏下,很是欣慰,然而接之而来的试用测试却把我折磨得喘不过气来。今天下午,花了一个下午的时间来做投稿热线保存的程序。遇到了一些意外的问题,好在最终得已解决,现在记录下来,与大家分享。

    我做的是一个学校新闻网站,主要是新闻程序,采用的动易内容管理系统,为方便投稿,网站必须配“投稿热线”,本来做程序的时候是自己手写的一套独立投稿系统,有前台后台,考虑到我们学校的网络情况,页面做得非常小巧,只用了一个BANNER图片和ewebeditor。但测试时编辑反应,程序后台稿件没有“回收站”功能等等,不太方便。介于上次测试这个投稿程序时的经验,我考虑:把投稿界面表单提交的数据直接保存到网站新闻数据库中,但动易系统是要求会员才能投稿的,这个比较好解决,先注册一个普通会员如guest,然后在用热线投稿时就以guest的名义上传,(上次的经验表明这是可行的)。

    首先,再仔细分析一遍动易数据库的PE_Article表,根据投稿页面的表单内容,在提交保存数据页面里写入:

rs.addnew

rs("Author")=这里是读取表单作者
rs("CopyFrom")=这里是读取表单作者来源
rs("Title")=这里是读取表单文章标题
rs("TitleIntact")=这里是读取表单副标题

...
rs.update

rs.close

但事情往往不会那么顺利,特别是我在做这个环节的时候,每次都要在这里耗上几个钟头,这次也不例外,测试时显示成功,但数据库根本没有。一检查果然是数据库连接出了问题,换了个连接方式后,又出现一大串错误:

首先是提示rs.update那行错误,IIS未说明具体问题,只好摸索了,百度一番后,开始弄写入权限之类的,但毫无作用,仔细一想,前台会员可以上传,应该不是权限的问题;

因为ChannelID和ClassID是必须要写入的,所以用程序控制写入了,问题依旧,IIS最经典的问题都出来了。

再分析一遍,还找不到问题,只好“直测”了,保存页手动写

ChannelID=1

ClassID=1,并把sql,conn,1,3改为2,3后终于有提示:PE_article.articleID值不能为NULL,

?????????难道ArticleID也要自己写入而不是“自动编号”???再看数据库,果然!!!

来不及去分析为何ArticleID也要写入,赶紧去改程序吧,。。可是。。。。ArticleID是动态的,怎么写?经过一番努力,终于搞掂,方法是:保存时先读取最高的ArticleID值,再设置一个值=rs(ArticleID)+1,传到数据库里去,为确保不再出现同样的问题,再次分析PE_Article表中的每一个必填字段都有值提交上去了。

再次投稿.....OK,投稿成功!!

可还没来得及高兴,又出新问题,查看后台时,网页读到刚刚那条投过来的文章标题时就断掉了,显示错误,仔细一看,原来标题链接的TITLE中,文章推荐等级为空!再看数据库,原来没有设置为必填,再次对比正常的文章数据,做好修改,该加的都加上。。。

测试,OK!

附:本人自写的投稿系统(可完美结合各ASP新闻系统)和动易投稿热线系统无法上传,需要请E-mail:uu85@qq.com