解决方案 »

  1.   

    检查了一下你的代码,应是
    if (mysql_fetch_array(_query("SELECT tg_active FROM tg_user WHERE tg_active='$_active' LIMIT 1"),MYSQL_ASSOC))
    此段就发生问题,你确定有执行到_query阶段
    if (mysql_fetch_array(_query("SELECT tg_active FROM tg_user WHERE tg_active='$_active' LIMIT 1"),MYSQL_ASSOC)) {
     
             //将tg_active设置为actived
            _query("UPDATE tg_user SET tg_active='actived' WHERE tg_active='$_active' LIMIT 1");
     
            if (mysql_affected_rows() == 1) {
     
                mysql_close();
     
                _location('账户激活成功','login.php');
     
            } else {
     
                mysql_close();
     
                _location('账户激活失败','register.php');
            }
        } else {
     
            _alert_back('非法操作');
        }
      

  2.   

    嗯 是的 我去表里看过了 也试了好多次    我也有打印出mysql_fetch_array  有值
      

  3.   

    就你贴出的代码而言,是不可能出现你说的情况的
    因为
    _query("UPDATE tg_user SET ....

    _alert_back('非法操作');
    分属
    if (mysql_fetch_array(_query("SELECT tg_active FROM... 
    的两个分支
    不可能同时被执行!
    因此,可以认为你实际运行的不是这段代码
      

  4.   


    if (isset($_GET['active']) && $_GET['action'] === 'ok') {
     
        $_active = _mysql_string($_GET['active']);
     
          if (mysql_fetch_array(_query("SELECT tg_active FROM tg_user WHERE tg_active='$_active' LIMIT 1"),MYSQL_ASSOC){
     
              echo "ok";
          } else {
     
            _alert_back('非法操作');
         }
    }这样会出现什麽结果?
      

  5.   

    你打印出 __FILE__ 和 __LINE__ 就可知道你找错了地方
      

  6.   

    刚用linux试了下   这里面没问题   可能我的windows系统有问题了