我的目的是:注册页面添加一个姓名的字段(realname),将原来用户名变为编号(字段名不变username)
我有一个新表,uchome_cid,里面记录了编号信息和姓名信息
现在,我在注册页面填写了编号与姓名,填写玩姓名后,我需要一个验证,只有在cid表中编号与姓名对应的人才能注册。
下面是我的修改
template\defalut\do_register.htm
在最后增加了个functionfunction checkRealName() {
        var realName = $('realname').value;
        var userName = $('username').value;
        if(realName == lastRealName) {
                return;
        } else {
                lastRealName = realName;
        }
        ajaxresponse('checkrealname', 'op=checkrealname&realname=' + (is_ie && document.charset == 'utf-8' ? encodeURIComponent(realName) : realName) + '&username=' + (is_ie && document.charset == 'utf-8' ? encodeURIComponent(userName) : userName));
}在source\do_register.php中最后添加了以下内容elseif($op == "checkrealname") {
        $real_name = trim($_GET['realname']);
        if(empty($real_name)) {
                showmessage('real_name_is_not_legitimate');   //real_name_is_not_legitimate在language里我有添加
        }
        $real_id = trim($_GET['username']);
        if(empty($real_id)) {
                showmessage('user_name_is_not_legitimate');
        }
        
        $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('cid')." WHERE real_id='$real_id' AND real_name='$real_name'");
        if($query){
                showmessage('succeed');
        } else {
                showmessage('stuid_is_not_stuname');   //stuid_is_not_stuname在language里我有添加
        }
}
错误状况:我填写姓名,无论正确与否,都会先反应正确,接着,我删掉名字,切换文本框,就出现一下信息,并且我之后无论修改什么,都提示一下信息
Line:220
Char:1
Code:0
Error:'null' 为空或不是对象
网址:http://localhost/do.php?ac=740c3e19f9954eeb914dcc3ea23a6fe9希望高手帮我看看,到底有什么地方出了问题。

解决方案 »

  1.   

    这个是template\defalut\do_register.htm 里的两个function,配合看看吧,我对ajaxresponse看不太懂 function ajaxresponse(objname, data) {
    var x = new Ajax('XML', objname);
    x.get('do.php?ac=$_SCONFIG[register_action]&' + data, function(s){
    var obj = $(objname);
    s = trim(s);
    if(s.indexOf('succeed') > -1) {
    obj.style.display = '';
    obj.innerHTML = '<img src="image/check_right.gif" width="13" height="13">';
    obj.className = "warning";
    } else {
    warning(obj, s);
    }
    });
    }
    function warning(obj, msg) {
    if((ton = obj.id.substr(5, obj.id.length)) != 'password2') {
    $(ton).select();
    }
    obj.style.display = '';
    obj.innerHTML = '<img src="image/check_error.gif" width="13" height="13"> &nbsp; ' + msg;
    obj.className = "warning";
    }
      

  2.   

    js错误?在FF下调一下,找到哪里错了
      

  3.   

    高手能帮我解释一下我回帖中的function.warning中if的内容吗?
    我思绪有点乱...3Q了
      

  4.   


    那个if语句的意思是:截取参数对象中的ID的第5个字符到至第结尾的字符串,赋值给ton,判断ton是否不等于password2。
      

  5.   

     $(ton).select();
    的 $(ton)是空的WHY?
    不理解啊...
    极度郁闷
      

  6.   

    自己搞清楚了!还是这里的人比较有才,能启发我的思路,谢谢啦!UCHOME的官方论坛,都没人点拨一下的
      

  7.   

    UCHOME官方论坛就是一群做站的人在那里...弄技术的没多少
      

  8.   

    搞不定的可以让我帮忙哦。收费的。http://hi.baidu.com/uchome8uchome二次开发,数据维护服务提供UCHOME二次开发的技术支持服务,会员数据迁移等服务。