[MU] Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 2 1 2 CuốiCuối
Kết quả 1 đến 10 của 12
  1. #1
    Thành Viên
    Ngày tham gia
    Jan 2015
    Bài viết
    19
    Thanks
    7
    Thanked 1 Time in 1 Post

    Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    Như tiêu đè ạ. ai có code này share cho mình với cám ơn mọi người!
    Khách viếng thăm hãy cùng Chuoitieu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    Moderator lequangvu's Avatar
    Ngày tham gia
    Aug 2007
    Đang ở
    Cung trăng
    Bài viết
    2,274
    Thanks
    797
    Thanked 824 Times in 593 Posts

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    Xem trong code của web và cấu trúc DB là đổi được thôi có gì đâu
    [Only registered and activated users can see links. ] - AN TOÀN - CHẤT LƯỢNG - NHIỀU TÍNH NĂNG
    Zalo/Telegram: 0972376510


  3. #3
    Thành Viên
    Ngày tham gia
    Jan 2015
    Bài viết
    19
    Thanks
    7
    Thanked 1 Time in 1 Post

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    Trích dẫn Gửi bởi lequangvu [Only registered and activated users can see links. ]
    Xem trong code của web và cấu trúc DB là đổi được thôi có gì đâu
    zteam hơi khác nên mình không làm được !
    bạn giúp mình với..........
    Khách viếng thăm hãy cùng Chuoitieu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  4. #4
    Thành Viên
    Ngày tham gia
    Jan 2015
    Bài viết
    16
    Thanks
    6
    Thanked 2 Times in 2 Posts

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    Trích dẫn Gửi bởi Chuoitieu [Only registered and activated users can see links. ]
    zteam hơi khác nên mình không làm được !
    bạn giúp mình với..........
    Mình không biết cấu trúc dữ liệu của bạn thế nào. Nhưng mình tin chắc bảng Mem_info cũng có đủ cả 3 trwongf vpoint, gcoin, wcoin. bạn muốn chuyển từ cái nào qua cái nào thì cũng chỉ câu truy vấn thêm cái này bớt cái kia nếu có thêm hao hụt hay + thêm thì tính toán giá trị trước khi thêm vào là được. Mình không biết NBB viết thế nào nhưng mình viết 1 hàm dạng php chưa được test bạn kiểm tra, tham khảo rồi sửa lại cho nó chuẩn:

    PHP Code:
    /**
     * Ham chuyen doi giua cac loai tien te
     * @param string $uname Tai khoan can chuyen doi
     * @param int $input so tien can chuyen doi
     * @param string $type loai chuyen doi (vp2gcoin, gcoin2vp, vp2wcoin....)
     * @param int $tyLeChuyenDoi gia tri hao hut hay them vao khi chuyen doi
     * @param string $tyLeType loai ty le chuyen doi se duoc tinh (theo phan tram hoac co dinh
     * @return string Thong bao
     */
    function chuyenDoiTienTe($uname$input$type$tyLeChuyenDoi 0$tyLeType 'codinhgiam') {
        
    $query '';
        
    $rs = array('success' => false'msg' => '''data' => '');
        
    $kiemtraType '';
        if (!
    is_numeric($tyLeChuyenDoi)) {
            
    $rs['msg'] = 'ty le chuyen doi phai la so nguyen';
        } else {
            
    $out 0;
            if (
    $tyLeType == 'phantramtang') {
                
    $out $input floor($input $tyLeChuyenDoi 100);
                
    $rs['success'] = true;
            } elseif (
    $tyLeType == 'phantramgiam') {
                if (
    $tyLeChuyenDoi 100) {
                    
    $rs['msg'] = 'tyle chuyen doi theo phan tram khong duoc lon hon 100';
                } else {
                    
    $out $input floor($input $tyLeChuyenDoi 100);
                    
    $rs['success'] = true;
                }
            } elseif (
    $tyLeType == 'codinhtang') {
                
    $out $input $tyLeChuyenDoi;
                
    $rs['success'] = true;
            } elseif (
    $tyLeType == 'codinhgiam') {
                if (
    $tyLeChuyenDoi $input) {
                    
    $rs['msg'] = 'Ty le chuyen doi theo co dinh giam khong duoc lon hon gia tri chuyen doi';
                } else {
                    
    $out $input $tyLeChuyenDoi;
                    
    $rs['success'] = true;
                }
            } else {
                
    $rs['msg'] = 'Khong ho tro kieu ty le chuyen doi';
            }

            if (
    $rs['success']) {
                switch (
    $type) {
                    case 
    'vp2gcoin':
                        
    $query 'UPDATE FROM MEMB_INFO SET vpoint = vpoint-' $input ', gcoin = gcoin+' $out 'WHERE memb__id=' $uname;
                        
    $kiemtraType 'vpoint';
                        break;
                    case 
    'vp2wcoin':
                        
    $query 'UPDATE FROM MEMB_INFO SET vpoint = vpoint-' $input ', gcoin = wcoin+' $out 'WHERE memb__id=' $uname;
                        
    $kiemtraType 'vpoint';
                        break;
                    
    //Tuong tu them query cho nhung kieu chuyen doi moi
                    
    default:
                        
    $rs['success'] = false;
                        
    $rs['msg'] = 'Khong ho tro kieu chuyen doi';
                        break;
                }
            }

            if (
    $rs['success']) {
                
    $kiemtra unserialize(kiemTraTienTe($uname$input$kiemtraType));
                if (
    $kiemtra['success']) {
                    
    $db = new database();
                    
    $db->setQuery($query);
                    
    $change $db->query();
                    if (
    $change) {
                        
    $rs['msg'] = 'CHuyen doi thanh cong';
                    } else {
                        
    $rs['success'] = false;
                        
    $rs['msg'] = 'Co loi xay ra, khong the chuyen doi. Hay thu lai sau';
                    }
                } else {
                    
    $rs['success'] = false;
                    
    $rs['msg'] = $kiemtra['msg'];
                }
            }
        }
        return 
    serialize($rs);
    }

    /**
     * Ham kiem tra tien te truoc khi thuc hien cac giao dich tru tien
     * @param string $uname ten tai khoan thuc hien giao dich
     * @param string $value gia tri tien can giao dich
     * @param string $type loai tien te can giao dich
     * @return string serialize cua mang gia tri
     */
    function kiemTraTienTe($uname$value$type) {
        
    $query '';
        
    $rs = array('success' => false'msg' => '''data' => '');
        if (
    $type 'gcoin') {
            
    $query 'SELECT gcoin from MEM_INFO where memb__id=' $uname;
            
    $rs['success'] = true;
        } elseif (
    $type 'vpoint') {
            
    $query 'SELECT gcoin from MEM_INFO where memb__id=' $uname;
            
    $rs['success'] = true;
        }
        
    //Tuong tu neu muon kiem tra them cac loai tien te khac
        
    else {
            
    $rs['msg'] = 'khong ho tro';
        }
        if (
    $rs['success']) {
            
    $db = new database(); //khai bao doi tuong database trong nay chuac cac ham ket noi, load...
            
    $db->setQuery($query);
            
    $data $db->LoadAllRow();
            if (!empty(
    $data)) {
                if (
    $value $data[0]) {
                    
    $rs['success'] = false;
                    
    $rs['msg'] = $type ' khong du de thuc hien cho giao dich';
                }
            } else {
                
    $rs['success'] = false;
                
    $rs['msg'] = 'Khong the truy van du lieu';
            }
        }

        return 
    serialize($rs);

    Khách viếng thăm hãy cùng duongca xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. Các thành viên gởi lời cảm ơn đến duongca vì bài viết này !

    Chuoitieu (08-03-15)

  6. #5
    Thành Viên
    Ngày tham gia
    Jan 2015
    Bài viết
    19
    Thanks
    7
    Thanked 1 Time in 1 Post

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    Trích dẫn Gửi bởi duongca [Only registered and activated users can see links. ]
    Mình không biết cấu trúc dữ liệu của bạn thế nào. Nhưng mình tin chắc bảng Mem_info cũng có đủ cả 3 trwongf vpoint, gcoin, wcoin. bạn muốn chuyển từ cái nào qua cái nào thì cũng chỉ câu truy vấn thêm cái này bớt cái kia nếu có thêm hao hụt hay + thêm thì tính toán giá trị trước khi thêm vào là được. Mình không biết NBB viết thế nào nhưng mình viết 1 hàm dạng php chưa được test bạn kiểm tra, tham khảo rồi sửa lại cho nó chuẩn:

    PHP Code:
    /**
     * Ham chuyen doi giua cac loai tien te
     * @param string $uname Tai khoan can chuyen doi
     * @param int $input so tien can chuyen doi
     * @param string $type loai chuyen doi (vp2gcoin, gcoin2vp, vp2wcoin....)
     * @param int $tyLeChuyenDoi gia tri hao hut hay them vao khi chuyen doi
     * @param string $tyLeType loai ty le chuyen doi se duoc tinh (theo phan tram hoac co dinh
     * @return string Thong bao
     */
    function chuyenDoiTienTe($uname$input$type$tyLeChuyenDoi 0$tyLeType 'codinhgiam') {
        
    $query '';
        
    $rs = array('success' => false'msg' => '''data' => '');
        
    $kiemtraType '';
        if (!
    is_numeric($tyLeChuyenDoi)) {
            
    $rs['msg'] = 'ty le chuyen doi phai la so nguyen';
        } else {
            
    $out 0;
            if (
    $tyLeType == 'phantramtang') {
                
    $out $input floor($input $tyLeChuyenDoi 100);
                
    $rs['success'] = true;
            } elseif (
    $tyLeType == 'phantramgiam') {
                if (
    $tyLeChuyenDoi 100) {
                    
    $rs['msg'] = 'tyle chuyen doi theo phan tram khong duoc lon hon 100';
                } else {
                    
    $out $input floor($input $tyLeChuyenDoi 100);
                    
    $rs['success'] = true;
                }
            } elseif (
    $tyLeType == 'codinhtang') {
                
    $out $input $tyLeChuyenDoi;
                
    $rs['success'] = true;
            } elseif (
    $tyLeType == 'codinhgiam') {
                if (
    $tyLeChuyenDoi $input) {
                    
    $rs['msg'] = 'Ty le chuyen doi theo co dinh giam khong duoc lon hon gia tri chuyen doi';
                } else {
                    
    $out $input $tyLeChuyenDoi;
                    
    $rs['success'] = true;
                }
            } else {
                
    $rs['msg'] = 'Khong ho tro kieu ty le chuyen doi';
            }

            if (
    $rs['success']) {
                switch (
    $type) {
                    case 
    'vp2gcoin':
                        
    $query 'UPDATE FROM MEMB_INFO SET vpoint = vpoint-' $input ', gcoin = gcoin+' $out 'WHERE memb__id=' $uname;
                        
    $kiemtraType 'vpoint';
                        break;
                    case 
    'vp2wcoin':
                        
    $query 'UPDATE FROM MEMB_INFO SET vpoint = vpoint-' $input ', gcoin = wcoin+' $out 'WHERE memb__id=' $uname;
                        
    $kiemtraType 'vpoint';
                        break;
                    
    //Tuong tu them query cho nhung kieu chuyen doi moi
                    
    default:
                        
    $rs['success'] = false;
                        
    $rs['msg'] = 'Khong ho tro kieu chuyen doi';
                        break;
                }
            }

            if (
    $rs['success']) {
                
    $kiemtra unserialize(kiemTraTienTe($uname$input$kiemtraType));
                if (
    $kiemtra['success']) {
                    
    $db = new database();
                    
    $db->setQuery($query);
                    
    $change $db->query();
                    if (
    $change) {
                        
    $rs['msg'] = 'CHuyen doi thanh cong';
                    } else {
                        
    $rs['success'] = false;
                        
    $rs['msg'] = 'Co loi xay ra, khong the chuyen doi. Hay thu lai sau';
                    }
                } else {
                    
    $rs['success'] = false;
                    
    $rs['msg'] = $kiemtra['msg'];
                }
            }
        }
        return 
    serialize($rs);
    }

    /**
     * Ham kiem tra tien te truoc khi thuc hien cac giao dich tru tien
     * @param string $uname ten tai khoan thuc hien giao dich
     * @param string $value gia tri tien can giao dich
     * @param string $type loai tien te can giao dich
     * @return string serialize cua mang gia tri
     */
    function kiemTraTienTe($uname$value$type) {
        
    $query '';
        
    $rs = array('success' => false'msg' => '''data' => '');
        if (
    $type 'gcoin') {
            
    $query 'SELECT gcoin from MEM_INFO where memb__id=' $uname;
            
    $rs['success'] = true;
        } elseif (
    $type 'vpoint') {
            
    $query 'SELECT gcoin from MEM_INFO where memb__id=' $uname;
            
    $rs['success'] = true;
        }
        
    //Tuong tu neu muon kiem tra them cac loai tien te khac
        
    else {
            
    $rs['msg'] = 'khong ho tro';
        }
        if (
    $rs['success']) {
            
    $db = new database(); //khai bao doi tuong database trong nay chuac cac ham ket noi, load...
            
    $db->setQuery($query);
            
    $data $db->LoadAllRow();
            if (!empty(
    $data)) {
                if (
    $value $data[0]) {
                    
    $rs['success'] = false;
                    
    $rs['msg'] = $type ' khong du de thuc hien cho giao dich';
                }
            } else {
                
    $rs['success'] = false;
                
    $rs['msg'] = 'Khong the truy van du lieu';
            }
        }

        return 
    serialize($rs);

    nó không nằm cùng MEMB_INFO zteam nằm bảng khác bạn à
    Khách viếng thăm hãy cùng Chuoitieu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  7. #6
    Vi phạm quy định hoangtu_eck94's Avatar
    Ngày tham gia
    Jan 2010
    Bài viết
    1,371
    Thanks
    392
    Thanked 935 Times in 348 Posts

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    pm yahoo hoangtu_eck94 mình giúp cho
    Server SCF Full Customs Wing, HP, SD, Antihack, Post Item, Fix Bug.......
    Skype: hoangtu_eck94

  8. Các thành viên gởi lời cảm ơn đến hoangtu_eck94 vì bài viết này !

    Chuoitieu (08-03-15)

  9. #7
    Thành Viên
    Ngày tham gia
    Jan 2015
    Bài viết
    16
    Thanks
    6
    Thanked 2 Times in 2 Posts

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    Trích dẫn Gửi bởi Chuoitieu [Only registered and activated users can see links. ]
    nó không nằm cùng MEMB_INFO zteam nằm bảng khác bạn à
    Nếu không nằm cùng bảng thì thay bảng memb_info thành tên bảng đó, nếu dwx liệu nằm ở cả 2 bảng thì update riêng từng bảng. Hoặc bạn có thể chụp hình cấu trúc của bảng đó mình xem
    Khách viếng thăm hãy cùng duongca xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  10. #8
    Thành Viên
    Ngày tham gia
    Jan 2014
    Đang ở
    Home
    Bài viết
    55
    Thanks
    37
    Thanked 102 Times in 18 Posts

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    Bỏ cái này trong Server/function.php

    PHP Code:
    if(!function_exists(ZteamSeason6)) {
        function 
    ZteamSeason6($AccountID){
            include(
    'config.php');
            
    $Check_MoneyMembInfo $db->Execute("select WCoin,WCoinP,GoblinCoin from MEMB_INFO where memb___id='$AccountID'") or die("Loi SQL doi Cashop");
            
    $GetViewsMoney $Check_MoneyMembInfo->FetchRow();
            
    $WCointemp = (int)$GetViewsMoney[0];
            
    $WCoinPtemp = (int)$GetViewsMoney[1];
            
    $GoblinCointemp = (int)$GetViewsMoney[2];
            if(
    $WCointemp>|| $WCoinPtemp>|| $GoblinCointemp>){
                
    $FixNBB $db->Execute("select * from GameShopPoint where AccountID='$AccountID'") or die("LOI SQL#1");
                
    $SlCheck $FixNBB->NumRows();
                if(
    $SlCheck>0){
                    
    $Query_Result $db->Execute("UPDATE GameShopPoint set WCoinC=WCoinC+$WCointemp, WCoinP = WCoinP+$WCoinPtemp,Goblinpoint=Goblinpoint+$GoblinCointemp WHERE AccountID='$AccountID'") or die("loi doi cashop");
                }else{
                    
    $Query_Result $db->Execute("INSERT INTO GameShopPoint(AccountID,WCoinC,WCoinP,Goblinpoint) VALUES ('$AccountID','$WCointemp','$WCoinPtemp','$GoblinCointemp')") or die("loi doi cashop");
                }
                
    $DeLayMoney $db->Execute("update MEMB_INFO set WCoin=0,WCoinP=0,GoblinCoin=0 where memb___id='$AccountID'") or die("loi SQL Delay");
            }
        }

    Sau đó thay File: Server/sv_tiente/sv_tiente_gcoin2wcoin.php bằng code này

    PHP Code:
    <?php

    $login
    =$_POST["login"];
    $gcoin=$_POST["gcoin"];     $gcoin abs(intval($gcoin));
    $pass2 $_POST['pass2'];

    $passtransfer $_POST["passtransfer"];

    if (
    $passtransfer == $transfercode) {

    $string_login $_POST['string_login'];
    checklogin($login,$string_login);

    kiemtra_pass2($login,$pass2);
    kiemtra_online($login);

    $query "select gcoin,WCoin from MEMB_INFO WHERE memb___id='$login'";
    $result $db->Execute$query ) or die("Loi query: $query");
    $row $result->fetchrow();


    $gcoin_change $row[0] - $gcoin;
    $WCoin_change $row[1] + $gcoin;

    if( 
    $gcoin_change ){
    echo 
    "Bạn đang có $row[0] Gcoin. Bạn không thể đổi $gcoin Gcoin sang WCoin."; exit(); }

    $general "UPDATE MEMB_INFO SET gcoin='$gcoin_change', WCoin = '$WCoin_change' WHERE memb___id='$login'";
    $msgeneral $db->Execute($general) or die("Loi query: $general");
    ZteamSeason6($login);
    // Begin Log
            
    $info_log_query "SELECT gcoin, gcoin_km, vpoint FROM MEMB_INFO WHERE memb___id='$login'";
            
    $info_log_result $db->Execute($info_log_query);
                
    check_queryerror($info_log_query$info_log_result);
            
    $info_log $info_log_result->fetchrow();
            
            
    $log_acc "$login";
            
    $log_gcoin $info_log[0];
            
    $log_gcoin_km $info_log[1];
            
    $log_vpoint $info_log[2];
            
    $log_price "- $gcoin Gcoin, + $gcoin WCoin";
            
    $log_Des "Đổi $gcoin Gcoin sang $gcoin WCoin";
            
    $log_time $timestamp;
            
            
    $insert_log_query "INSERT INTO Log_TienTe (acc, gcoin, gcoin_km, vpoint, price, Des, time) VALUES ('$log_acc', $log_gcoin$log_gcoin_km$log_vpoint, '$log_price', '$log_Des', $log_time)";
            
    $insert_log_result $db->execute($insert_log_query);
                
    check_queryerror($insert_log_query$insert_log_result);
    // End Log
    echo "OK<nbb>Bạn đã đổi $gcoin Gcoin sang $gcoin WCoin thành công.";
    }

    ?>
    Lỗi nữa thì nhờ các bạn cầm tay chỉ việc "Xem trong code của web và cấu trúc DB là đổi được thôi có gì đâu" như kiểu này giúp cho.
    Khách viếng thăm hãy cùng votam2x xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  11. The Following 2 Users Say Thank You to votam2x For This Useful Post:

    hoangtu_eck94 (08-03-15), southrain1111 (13-03-15)

  12. #9
    Moderator lequangvu's Avatar
    Ngày tham gia
    Aug 2007
    Đang ở
    Cung trăng
    Bài viết
    2,274
    Thanks
    797
    Thanked 824 Times in 593 Posts

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    Trích dẫn Gửi bởi votam2x [Only registered and activated users can see links. ]

    Lỗi nữa thì nhờ các bạn cầm tay chỉ việc "Xem trong code của web và cấu trúc DB là đổi được thôi có gì đâu" như kiểu này giúp cho.
    Tất nhiên, định hướng cho mà làm rồi nếu không biết thì pm yahoo mình giúp xử lý free có gì đâu mà khó khăn
    [Only registered and activated users can see links. ] - AN TOÀN - CHẤT LƯỢNG - NHIỀU TÍNH NĂNG
    Zalo/Telegram: 0972376510


  13. Các thành viên gởi lời cảm ơn đến lequangvu vì bài viết này !

    Chuoitieu (08-03-15)

  14. #10
    Vi phạm quy định hoangtu_eck94's Avatar
    Ngày tham gia
    Jan 2010
    Bài viết
    1,371
    Thanks
    392
    Thanked 935 Times in 348 Posts

    Ðề: Ai có code đổi Gcoin sang Wcoin của NBB áp dụng cho zteam cho mình xin!

    nhưng nói có sai đâu họ kô biết thì họ mới lên đây hỏi chứ nói như thế ai chẳng nói đc. có phải vì là nói mod nên có quyền đc band kô? :/
    Server SCF Full Customs Wing, HP, SD, Antihack, Post Item, Fix Bug.......
    Skype: hoangtu_eck94

  15. Các thành viên gởi lời cảm ơn đến hoangtu_eck94 vì bài viết này !

    Chuoitieu (08-03-15)

 

 
Trang 1 của 2 1 2 CuốiCuối

Các Chủ đề tương tự

  1. [MU] Lỗi đổi Gcoin sang Wcoin
    Bởi lyvanphat1990 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 10
    Bài viết cuối: 01-02-21, 11:11 PM
  2. [MU] Ai hướng dẫn giùm cái chĩnh tiền tệ Gcoin => Wcoin C ở Zteam
    Bởi nsgb1994 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 8
    Bài viết cuối: 17-10-14, 12:44 PM
  3. [MU] Lỗi đổi Gcoin sang Wcoin trên NBB
    Bởi tonik0y trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 11
    Bài viết cuối: 23-04-13, 03:19 PM
  4. [MU] Share code đỗi Gcoin khuyến mãi sang Gcoin thường NBB
    Bởi carotkhoaitay trong diễn đàn SQL Server & Website
    Trả lời: 4
    Bài viết cuối: 15-06-12, 03:08 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 08:58 PM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.