11步配置UCHOME邮件

2009年3月29日 gavin.chen 3 条评论

今天路遇交友网的启用了邮件支持,在配置过程走了不少弯路,在配置期间参考了网上很多资料,这些资料有的不全,有的则完全是错的。配置完成后整理了下流程,发现UCHOME下配置邮件非常的简单。下面把我的经验总结一下,希望能给有同样需要的网友一些借鉴:

11步搞定UCHOME邮件支持配置:

1.选择邮件发送方式:

通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)

2.邮件头的分隔符使用

LF 作为分隔符(通常为 Unix/Linux 主机)

3.收件人显示用户名

4.smtp 服务器

smtp.gmail.com

5.smtp端口

465

6.要求身份证验证

7.发信人邮件地址

路遇交友<services@yuluyu.com>

8.smtp 用户名

yuluyu

9.smtp密码

yuluyupassword

10.更改function_sendmail.php

我在这里选择了gmail作为邮件发送服务器,gmail采用的是SSL协议,所以需要更改uchome邮件处理相关的代码使其能够连接到smtp.gmail.com。

打开$/uchome/source/function_sendmail.php,将下面这行代码:

if(!$fp = fsockopen($mail['server'], $mail['port'], $errno, $errstr, 30)) {

更改为:

if(!$fp = fsockopen("ssl://".$mail['server'], $mail['port'], $errno, $errstr, 30)) {

11.测试配置是否成功

现在,你的网站就能够利用gmail的邮件发送服务器发送邮件了。通过配置后路遇交友网支持如下功能:

  1. 密码找回功能
  2. 验证并激活邮箱
  3. 邮件提醒功能
  4. 通过邮件邀请好友功能

下面通过密码找回功能测试一下邮件支持是否生效:

  • 打开www.yuluyu.com首页,点击找回密码功能。
  • 输入某账号,5分钟后到该账号对应的邮箱去收邮件。

如果此时能够接收到一封发自路遇交友网的邮箱,则说明邮件功能生效,如果没有收到则说明邮件配置失败。

此时可以查看$/uchome/data/log来分析失败原因,在这个文件夹下有两个日志文件,他们保存了和邮件相关的日志信息。

200903_smtp.php 保存了服务器联接的相关信息。

例如:2009-03-28 22:48:36        222.65.248.80    1    /do.php?ac=sendmail&rand=1238251716    (stmp.gmail.com:465) CONNECT – Unable to connect to the SMTP server

200903_sendmail.php 保存了和具体邮件发送相关的信息。

例如:<?PHP exit;?>    2009-03-29 12:19:18        222.66.162.147    12    /do.php?ac=sendmail&rand=1238300357    lutuzhi@gmail.com sendmail failed.

这些信息可以帮助我们判断邮箱配置的问题根源所在。

通过以上11步配置和测试,我们的网站应该可以完全支持邮件发送了。上面列出来的仅仅是邮件配置方法的一种,在不同的环境下肯定会有所不同,同时在配置过程中也会遇到各种具体的问题,本文内容仅供参考。

将记录纳入UChome的积分体系

2009年3月28日 gavin.chen 2 条评论

Uchome中心情记录是非常常用的一个操作,用户可以通过方便的来快速的发布自己的想法,通过一两句话描述自己的心情。因为其操作方便,发布简易使其成为基于UCHOME构建的SNS中使用最频繁的操作之一。但是发布心情记录,并不能增加积分。积分功能的缺失,导致用户对心情记录的参与成都大大降低。由此导致用户对整个基于UChome创建的SNS站点的参与热情也大大降低。尽管用户可以通过发布日志等方式来获取积分,但将心情记录纳入全站积分体系未尝不是增加用户参与热情的一个有效的手段,下面简单介绍下,如何在发布心情记录时也能够增加积分。

1.修改$uchome/admin/tpl/credit.htm,在其中增加三行代码,如下蓝色字体部分:

    <div class="maininner">

    ……     
          <tr><td>邀请好友注册成功</td><td><input type="text" name="get[invite]" value="$get[invite]" size="5"></td>
            <td>获取注册邀请码</td><td><input type="text" name="pay[invite]" value="$pay[invite]" size="5"></td></tr>
        <tr>
         <td>发布/回复记录</td><td><input type="text" name="get[doing]" value="$get[doing]" size="5" /></td>
            <td>搜索一次</td><td><input type="text" name="pay[search]" value="$pay[search]" size="5"></td></tr>
        <tr>
         <td>发布出行信息</td><td><input type="text" name="get[route]" value="$get[route]" size="5" /></td>
            <td>兑换1M的上传空间</td><td><input type="text" name="pay[attach]" value="$pay[attach]" size="5"></td></tr>
        <tr>
          <td>&nbsp;</td><td>&nbsp;</td>
            <td>日志导入</td><td><input type="text" name="pay[xmlrpc]" value="$pay[xmlrpc]" size="5"></td></tr>
        <tr><td>&nbsp;</td><td>&nbsp;</td>
            <td>修改一次二级域名</td><td><input type="text" name="pay[domain]" value="$pay[domain]" size="5"></td></tr>
        <tr><td>&nbsp;</td><td>&nbsp;</td>
            <td>修改一次真实姓名</td><td><input type="text" name="pay[realname]" value="$pay[realname]" size="5"></td></tr>
                <tr><td>&nbsp;</td><td>&nbsp;</td>
            <td>记录被删除</td><td><input type="text" name="pay[doing]" value="$pay[doing]" size="5"></td></tr>
              
    <tr><td>&nbsp;</td><td>&nbsp;</td>
            <td>出新信息被删除</td><td><input type="text" name="pay[route]" value="$pay[route]" size="5"></td></tr>
        </table>
        </div>
        <div class="footactions">
            <input type="submit" name="creditsubmit" value="提交" class="submit">
        </div>
        </form>
    </div>

2.修改$uchome/source/cp_doing.php:

在代码行showmessage(‘do_success’, ’space.php?do=doing&view=me’, 0);上方添加:

updatespacestatus(‘get’, ‘doing’);

更改下列代码,增加蓝色代码行;

    $_POST['refer'] = preg_replace("/((\#|\&highlight|\-highlight|\.html).*?)$/", ”, $_POST['refer']);
    if(strexists($_POST['refer'], ‘?’)) {
        $_POST['refer'] .= "&highlight={$newid}#dl{$updo[doid]}";
    } else {
        $_POST['refer'] .= "-highlight-{$newid}.html#dl{$updo[doid]}";
    }
    //积分
    updatespacestatus(‘get’, ‘doing’);
    showmessage(‘do_success’, $_POST['refer'], 0);

}

更改下列代码,添加蓝色代码行:

if($_GET['op'] == ‘delete’) {
    if(submitcheck(‘deletesubmit’)) {
        if($id) {
            $allowmanage = checkperm(‘managedoing’);
            $query = $_SGLOBAL['db']->query("SELECT dc.*, d.uid as duid FROM ".tname(‘docomment’)." dc, ".tname(‘doing’)." d WHERE dc.id=’$id’ AND dc.doid=d.doid");
            if($value = $_SGLOBAL['db']->fetch_array($query)) {
                if($allowmanage || $value['uid'] == $_SGLOBAL['supe_uid'] ||  $value['duid'] == $_SGLOBAL['supe_uid'] ) {
                    $_SGLOBAL['db']->query("DELETE FROM ".tname(‘docomment’)." WHERE (id=’$id’ || upid=’$id’)");
                    $replynum = getcount(‘docomment’, array(‘doid’=>$value['doid']));
                    updatetable(‘doing’, array(‘replynum’=>$replynum), array(‘doid’=>$value['doid']));
                }
            }
        } else {
            include_once(S_ROOT.’./source/function_delete.php’);
            deletedoings(array($doid));
        }

           updatespacestatus(‘pay’, ‘doing’);
        showmessage(‘do_success’, $_POST['refer'], 0);
    }
}

3.在后台积分设置中,设定发布和删除记录的积分规则。

4.在后台更新缓存。

 

此时发布记录或者删除记录将按照后台积分设置增减积分。

     

分类: 聚焦开源 标签: , , ,

如何安装Windows Live Writer插件

2009年3月27日 gavin.chen 没有评论

Windows Live Writer 是一个强大的离线博客编辑工具,通过它可以离线编辑内容丰富的博文。它不但支持微软的live space,还支持诸如Wordpress 这样的开源博客系统。

Windows Live Writer除了自身强大的编辑功能之外,还提供了接口,让其它开发人员通过插件提供工具自身没有提供的功能。比如说语法高亮功能Windows Live Writer自身没有提供,而很多技术类博客作者很需要这个功能,有一个名为SyntaxHighlight的插件就很好的解决了这个问题。

那么,如何安装插件呢?在Widnows Live Writer下安装插件的方法很简单,只需要将插件拷贝到C:\Program Files\Windows Live\Writer\Plugins下面即可。这里有两个细节要注意:

1.C:\Program Files 这是Windows Live Writer在我机器上的安装路径,在你的机器上可能是另一个路径。

2.拷贝插件时,不是把插件文件夹拷贝至C:\Program Files\Windows Live\Writer\Plugins,而是把文件夹里面的内容拷贝过去,这个细节一定还要注意。我在第一次安装插件时就犯了这个错误,在安装SyntaxHighlight插件时把整个文件夹都复制过去了,结果在 工具 | 插件 列表里一直没出现SyntaxHighlight字样。后来把该文件夹下文件和子文件夹拷贝过去才解决这个问题。如图:

image

Widnows Live Writer采用这样的插件管理方式不利于插件的管理,如果插件过多,plugins文件夹下内容会非常混乱。Wordpress的插件管理方式很值得借鉴,wordpress插件的管理采用的是子目录方式,每个插件放在一个以插件名命名的文件夹里,层次清晰,管理方便。

错误109,管道已结束

2009年3月26日 gavin.chen 没有评论

今天Apache2突然无法启动,报如下错误:

错误109,管道已结束。

这个问题折腾半天、改参数、重新安装wamp都无效。

怀疑是中毒了,用瑞星杀毒,依然无效。后来想起配置Nginx时也遇到过这个问题,当时是把防火墙禁用了解决了。

于是乎,禁用了瑞星的实时监控功能,实际上禁用之后依然无效。

在实时监控选项中有一个叫:自我保护,必须把这项关掉才有效。

这是瑞星杀毒软件的问题,兼容性差,把好人当坏人干掉了。

uchome 八宗罪

2009年3月25日 gavin.chen 没有评论

UCHOME 1.5版推出半年多了,我也用UCHOME做了路遇交友网。但是在维护过程中饱受其折磨,今天来数数在用UCHOME做站过程中的种种恨事。

1.易用性差:登陆框没有注册按钮,新用户常找不到注册的链接。

而其,其登录实现方式采用的不是登录按钮+登录链接实现,而是用Loginform + loginaction,修改起来也比较麻烦。实在不明白来登录动作有啥必要采用ACTION来处理,直接按钮+链接完全能实现。51.com采用的就是按钮加链接的形式,人家也活的很好。

2. 设计缺陷:积分体系严重不足,用户在uchome中可以做留言、发表日志、写心情记录、上传图片等操作, 但是不是每个动作都可以积分。比如说很多人会用到的心情记录功能就没有积分。

心情记录因为其发表容易,互动率高,在路遇交友网 里他是用的最频繁的一个动作,但是因为心情记录没有纳入积分体系,用户很快就会失去参与热情。你说这可恨不,我得自己加之。

3.易用性差:用户在使用过程中遇到问题没有一个快捷的方式获取帮助。

uchome在首页有一个帮助链接,登录之后就再也找不到这个链接了。尽管可以通过简单的二次开发把帮助页面集成到登录后的操作界面,另一个问题又凸显出来:帮助页面没有和用户当前所在的页面关联。比如用户在群组遇到了问题,最友好的方式是应该是能够在当前页面直接调出群组相关的帮助信息,而这点UCHOM显然没有做到。

4.稳定性差:manyou服务器不稳定,路遇交友网的各类应用经常出现故障,反应上去官方处理也不及时。

康盛显然没想好怎么运营和持续开发UCHOME这款产品,还准备做SNS站的朋友不妨考虑考虑其它产品,比如: pw7.3。

5.推广能力差:友情链接管理功能

UCHOME绝大多数的用户是个人站长,个人站长严重依赖于友情链接来推广自己的网站。而uchome在这方面没有任何建树,尽管有热心人提供了友情链接插件,但是该插件远远满足不了需要,比如没法设置 ref 类型,无法对链接分类等。

6.结构差:功能重复严重,用户无从下手

刚接触UCHOME创建的网站,看到那么多链接简直无从下手。登录进去之后点开随便看看、点开我的主页、点开首页,里面内容严重雷同,而且没有清晰的类别划分,让用户在使用过程中不断怀疑自己智商。出差交友网 的用户反应最多的一个问题就是网站结构乱。个人站长一定要把随便看看、我的主页和首页这三部分的内容重新设计。

7.邮件功能

邮件是任何社交网站都必不可少的一个功能,可是UCHOME在这方面先天不足。在UCHOME启用邮件功能,是个技术含量很高的活。以至于很多站长都像个怨妇一样在uchome的官方论坛里哀号着:我的网站为啥发不了邮件?  不怪你,这个平台就这德行。纵然你人品硬如陨铁,它也发不了邮件。

8.:给了你一个梦想,却永远无法帮你实现。

因为51.com、FACEBOOK、开心网等SNS站在中国影响力,uchome出来之后大家好像突然发现自己可以是下一个51.COM、开心网了,一窝蜂的用UCHOME去SNS。用SNS建的网站正如雨后春笋版涌起,在不久的将来也将入秋后蚂蚱般死去,正是千千万万个炮灰,堆起了康盛创想的辉煌。

如何写文档(二)

2009年3月24日 celine 没有评论


很多朋友对写文档很困惑,之前有一篇文章写过如何写文档,下面给出简单的范例,因为保密原则,不能网站提供,并去掉部分和公司相关的信息:

一、 概述

文档规范的制订,以需求的起草、审核、开发、发布都有据可查为目标,在需求上线中的各个环节,减少沟通成本。此版本为试用版。

二、 文档适用范围

本文档适用于功能逻辑的建立和变更。不适用于细节修改和产品页面优化部分。

三、 文档名称命名

产品名称_模块名称+版本号+产品人员+时间+文档状态

² 需求名称:产品名称+模块名称

² 产品人员:

² 版本号:01开始,指修改次数

² 时间格式:20090108

² 文档状态:

n 草稿

n 正式发布(指:提交需求立项,并通过产品、开发评审)在这个阶段提交文档集成。

n 正在修改

n 已上线(产品上线)如果需求有变更,需要完善文档保持和现上需求一致,并再次提交文档集成。

例如:注册功能功能需求,已经完成初稿,提交开发审核并通过,修改三次,版本号为03,文档名称为:

注册模块_注册功能需求文档_03_celine_20080909_正式提交开发

四、 文档编写原则:

1. 可行:指需求内容是在现有条件下是可以实现的。

2. 可测试:测试人员可以根据需求,建立测试用例。

3. 可跟踪:产品人员、开发人员和测试人员都能从文档中找到功能描述来源

4. 正确:文档的行文应当十分确切,不能出现多义性和歧义性的描述。

5. 完整:功能点有多条分支,要完整、全面的描述出来,不能使用以此类推等文字代替,每个分支都要描述清楚。

6. 无歧异:语言描述符合大众的认知,需求内容做到开发人员和测试人员的理解一致。

7. 一致:上下文中的描述语言,语义一致,应是不矛盾的。

8. 可定级:可以制定优先级。

9. 图片的添加,请现在ps中把图片压缩一下,在插入到word文档中,这样可以有效控制文档字节数。每张图片尽量控制在100k以内。

五、 文档修改原则:

ü 文档名称记录修改版本

ü 增加:黑色 宋体,变更相关内容体现在版本信息中。

ü 删除:双删除线,标注删除日期。变更相关内容体现在版本信息中。

范例:双删除线,标注删除日期。(2009-2-10删除变更相关内容体现在版本信息中。

ü 修改:字体颜色+修改日期,变更相关内容体现在版本信息中。

范例:字体颜色+修改日期 ,变更相关内容体现在版本信息中。


nginx,502 Bad Gateway错误

2009年3月23日 gavin.chen 没有评论

基于nginx配置了uchome,当访问首页时报错:

502 Bad Gateway


nginx/0.7.37

在网站根目录下放了个静态的HTML页面,html页面显示正常。

可以判断问题是出在PHP模块上。

编译PHP时没仔细看提示信息,不知道有没有报错。把php完全重新编译一次后,nginx就可以正确解析php文件了。

不知道还有没有别的原因会导致nginx报 505 Bad Gateway错误。

Nginx,建站利器

2009年3月22日 gavin.chen 没有评论

路遇交友上线快一个月了,现在看起来,当初选择Nginx作为WEB服务器是非常英明的决定。

对于个人站长来说,选用Nginx作为WEB服务器是比较好的选择,Nginx有如下优势:

1.稳定,即使它的开发版其稳定性也令我惊讶。我的网站用的是Nginx/0.7.37,这是一个开发版,上线至今从没出过问题。

2.资源占用率低,对于个人站长来说这无疑是巨大的诱惑。同样的硬件配置,Nginx服务器的性能表现远远优于apache。它基于epoll 和 kqueue 开发,在大并发的情况下占用很低的内如和CPU,这也是众多虚拟主机提供商采用它提供服务的重要原因。这条特性足以让所有对Nginx存疑的个人站长抛弃所有的疑虑,义无反顾的奔向Nginx,省钱的事谁不干?

3.配置简单,从第一次接触Nginx到配置成功,我只用了两天的时间。它的英文维基站提供了大量的例子和参考资料,可以帮助新手很快的上手。如果你能看懂俄文的话,学习起来会更方便,毕竟是俄罗斯人开发的。俄文资料才是第一手资料。

4.功能丰富,我仅仅是用Nginx做web 服务器。但是它的作用显然不仅限于此,它还可以做反向代理服务器,邮件代理服务器等。

5.更新容易,它甚至可以在不间断服务的情况先实现更新。这个太神奇了,这个功能足以让他的拥护者为之发狂。

当然,作为一个尚未成熟的开源软件,Nginx还有很多不足。比如他没有apache那么多参考资料,它更新过于频繁,
以至于一个月前用最新源代码编译的Nginx服务器,今天已经老态龙钟了。现在最新的版本是Nginx-0.7.43.

心理剖析—从众、面子、炫耀、攀比

2009年3月22日 celine 没有评论

”别人有,我也要有”是错误的消费心理.
但是种心理在国内却有着相当的有市场.

形成这种错误消费心理的原因主要有以下几点:
1.面子心理
中国的消费者有很强的面子情结,在面子心理的驱动下,中国人的消费会超过甚至大大超过自己的购买或者支付能力.
2.从众心理
从众指个人的观念与行为由于受群体的引导或压力,而趋向于与大多数人相一致的现象。消费者在很多购买决策上,会表现出从众倾向。比如,购物时喜欢到人多的商店;在品牌选择时,偏向那些市场占有率高的品牌.
3.炫耀心理
消费者炫耀心理,在消费商品上,多表现为产品带给消费者的心理成分远远超过实用的成分。
4.攀比心理
消费者的攀比心理是基于消费者对自己所处的阶层、身份以及地位的认同,从而选择所在的阶层人群为参照而表现出来的消费行为。相比炫耀心理,消费者的攀比心理更在乎“有”——你有我也有。
这样那样的众多原因造成了现在消费者有比如:别人有,我也要有的错误消费心理.也给现在的厂家有机可乘,拉动消费.

分类: 产品设计 标签: ,

dedecms的乱码问题,及其解决方案

2009年3月21日 gavin.chen 没有评论

问题描述:在IE中,无论是在dedecms后台添加栏目,还是在前台发表文章,只要其中包含中文,都会出现乱码。而在firefox下一切正常。
问题分析:

1.dedecms没问题,可能是因为IE做了某些设置,导致中文不能被正确识别。但是http://www.yuluyu.com,在IEfirefox对于中文一切正常。http://www.lutuzhi.comIEfirefox很正常。所以排除了IE设置引发问题的可能性。
2. 应该是dedecms程序的问题,google了一把、百度了一下,发现只有一个人提到过类似的问题,而且没人给出答案。而且firefoxdedecms又是正常的,所以也不能把这问题全归结在dedecms身上。毕竟这个系统经过多年发展,很多用户的使用已经比较稳定了。

至此陷入了僵局,本打算就此放弃研究。不甘心,用ZEND STUDIO跟了一下,发现dedecms输入的简体中文在POST的时候已经是乱码了。

数据从前段输入到存储至数据库可以简化为下面三步:

1.数据输入(dedecms界面)
2.数据传输
3.数据存储

现在数据在POST的瞬间被做了一次转换,而这个转换肯定不是dedecms做得。

那么问题至此有了眉目,在乱码这个问题上,dedecms不是罪魁祸首。出现乱码肯定是它在编码时没处理好,但是不全怪它。

解决方案:

那么到底是谁偷偷做了编码转换?问题应该出在IE或者它的插件上。

原来我的IE上有一个插件,是用来做繁简体转换的-alibabar。它有个选项叫:将送出的表格文字自动做繁简体转换。如下图:

导致乱码的选项

导致乱码的选项

正是这个小软件做的编码转换,也是它导致dedecms在ie下不能正确处理简体中文。把该选项勾掉,一切正常了。

至此dedecms乱码的问题得到了解决,但是我还有一个疑问:

为什么同样的环境下其余两个网站没问题:
http://www.yuluyu.com-基于uchome
http://www.lutuzhi.com -基于wordpress

具体原因没仔细去分析,不过我认为dedecms在编码处理方面可以借鉴康盛创想的做法,那是一个更加成熟的解决方案。


SEO Powered by Platinum SEO from Techblissonline