1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hỏi đáp [Solved] _HttpRequest: Đăng nhập tự động planetclix.net

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi Tran Duy, 21/2/17.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. Tran Duy

    Tran Duy Thành viên mới
    • 3/6

    Tham gia ngày:
    26/4/16
    Bài viết:
    24
    Đã được thích:
    10
    Chào mọi người ạ, em có viết cái function tự động login cho trang http://planetclix.net, mà sao không thể đăng nhập vào được nhỉ. Mọi người chỉ giáo giúp ạ.

    Mã (AutoIt):
    $rq = _HttpRequest(4, "https://www.planetclix.net/index.php?view=login")
       $cookie = _GetCookie($rq[0])
       $data = "token=8832c670d2a572b0c30990f84f603dba&a=submit&username=chopperncherry&password=12345_abc&captcha=ALAYE"
       $rq = _HttpRequest(2, "https://www.planetclix.net/index.php?view=login", $data, $cookie, "https://www.planetclix.net/index.php?view=login")
       _FileWrite_Test($rq)
     
    kamsamita1 thích bài này.
  2. kakanet

    kakanet Thành viên năng động
    • 43/45

    Tham gia ngày:
    24/2/16
    Bài viết:
    203
    Đã được thích:
    211
    Mã (AutoIt):
       $data = "token=8832c670d2a572b0c30990f84f603dba&a=submit&username=chopperncherry&password=12345_abc&captcha=ALAYE"
     
    Token với Captcha nó thay đổi mà, bạn request sao ra đúng được :3
     
    kamsamita1 thích bài này.
  3. Tran Duy

    Tran Duy Thành viên mới
    • 3/6

    Tham gia ngày:
    26/4/16
    Bài viết:
    24
    Đã được thích:
    10
    vậy có thể giúp mình phát được ko ạ. Thanks bác nhìu... <3
     
    kamsamita1 thích bài này.
  4. kakanet

    kakanet Thành viên năng động
    • 43/45

    Tham gia ngày:
    24/2/16
    Bài viết:
    203
    Đã được thích:
    211
    Đầu tiên bạn request lấy dữ liệu từ địa chỉ của Referer:
    Referer: https://www.planetclix.net/index.php?view=login

    Mã (AutoIt):
    $rq1 = _HttpRequest(2, 'https://www.planetclix.net/index.php?view=login')
    Bạn dùng clipput() hoặc cách gì đó để lưu dữ liệu trả về ra Notepad.

    Mã (AutoIt):
    Clipput($rq1)
    Paste vào Notepad và quan sát dữ liệu trả về bạn sẽ thấy nó chứa 2 dữ kiện mình cần:
    + Token: name="token" value="d2ead9265597590fcdd93f7ad14a68b1" <= cái chuỗi sau value= này luôn thay đổi sau mỗi lần request.
    + Captcha: $("#captchaimglogin").attr('src','modules/captcha/captcha.php?r=login&x=34&y=75&z=119&?newtime=' + (new Date()).getTime()) <= Captcha thay đổi theo thời gian bởi đoạn mã new Date().getTime()

    Token thì tách bằng StringRegexp được:

    Mã (AutoIt):
    $Token = StringRegExp($rq1, '"token" value="(.*?)"', 1)[0]
     
    còn Captcha thì hơi khó hơn vì nó liên quan javascript.

    Đọc cái Javascript thì bạn thấy đập vào mắt địa chỉ mà nó tạo Captcha là gồm 2 phần:
    1/ https://www.planetclix.net/modules/captcha/captcha.php?r=login&x=34&y=75&z=119&?newtime= : phần này là luôn luôn không đổi
    2/ new Date().getTime(): .getTime() là một hàm của javascript chuyển thời gian thường sang kiểu EPOCH, hàm .getTime() tương đương với hàm _DateDiff trong AutoIT. Sau đó bạn kiếm trong notepad new Date sẽ thấy dòng mydate = new Date("21 Feb 2017 04:48:09"). Ở đây mình sẽ lưu ý đến giờ thấy trong Notepad khác xa giờ hệ thống (giờ Việt Nam) bởi mình làm lúc 12:05:12 mà nó là 04:48:09, chỉ giống cái ngày tháng năm thôi, bởi vậy cần phải tách cái giờ này ra bằng Stringregexp luôn chứ không dùng hàm _NowCalc() có sẵn của AutoIT được.

    Mã (AutoIt):
    $Time = StringRegExp($rq1, 'mydate = new Date\(".*? (\d+:\d+:\d+)"\)', 1)[0]
    $iDateCalc = _DateDiff('s', "1970/01/01 00:00:00", @YEAR & '/' & @MON & '/' & @MDAY & ' ' & $Time)
     
    Vậy là có được đầy đủ url để request lấy Captcha rồi, bạn viết hàm request url đó rồi cho hiển thị captcha đó bằng GUI hoặc gì đó tuỳ bạn.

    Phần còn lại thì y như code của bạn, thay 2 chỗ Token với Captcha là biến để thế vào là xong.
     
    Chỉnh sửa cuối: 21/2/17
    kamsamita1 and Tran Duy like this.
  5. Tran Duy

    Tran Duy Thành viên mới
    • 3/6

    Tham gia ngày:
    26/4/16
    Bài viết:
    24
    Đã được thích:
    10
    Tks bác nhìu ạ ...
     
    kamsamita1 thích bài này.
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...