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

[Solved] Lỗi khi chạy code login sử dụng WinHttpObj của Mạnh Tuấn

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi Xuân Dũng 38, 16/10/15.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    Mình làm theo như hướng dẫn của Mạnh Tuấn trên blog của cậu ấy
    nhưng mà không hiểu sao lại không dùng được
    đây là code của mình , mong Mạnh Tuấn Và Các Bạn giúp đỡ
    Mã (AutoIt):

    #include <winhttpObj.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 262, 167, 192, 124)
    $Input1 = GUICtrlCreateInput("", 32, 24, 193, 21)
    $input2 = GUICtrlCreateInput("", 32, 56, 193, 21,BitOR($gui_ss_default_input, $es_password))
    $Button1 = GUICtrlCreateButton("Button1", 96, 88, 81, 41, $WS_GROUP)
    GUISetState(@SW_SHOW);
    #EndRegion ### END Koda GUI section ###

    While 1
            $nMsg = GUIGetMsg()
            Switch $nMsg
                    Case $GUI_EVENT_CLOSE
                            Exit
                     Case $Button1
                            dangnhap()
            EndSwitch
    WEnd


    Func dangnhap()
       Local $username = GUICtrlRead($Input1)
       Local $password = GUICtrlRead($Input2)
       If $username = '' Or $password ='' Then
         MsgBox(16 + 262144,"Lỗi" , "Vui lòng điền tên đăng nhập và mật khẩu")
         Return False

       EndIf
       Local $urllogin = 'http://topreu.net/checkpass.php'
       Local $postdata = 'Username='& urlEncode($username) & '&Password=' & urlEncode($password) & '&dangnhap=%C4%90%C4%83ng+nh%E1%BA%ADp'


       Local $request = makeHttpRequest($urllogin & '?' & $postdata , 'POST')


       If StringInStr($request[2], 'Tên đăng nhập này không tồn tại. Vui lòng kiểm tra lại.')  Then
         MsgBox(16,'Lỗi', 'Tên đăng nhập này không tồn tại. Vui lòng kiểm tra lại.')

       ElseIf StringInStr($request[2], "Mật khẩu không đúng. Vui lòng nhập lại.") Then
         MsgBox(16, 'Lỗi', "Mật khẩu không đúng. Vui lòng nhập lại.")
       ElseIf StringInStr($request[2], 'Bạn đã đăng nhập thành công') Then
         MsgBox(64,'Chào Mừng', 'Bạn đã đăng nhập thành công')
       EndIf
    EndFunc
     
    Code php
    PHP:

    <?php
    //Khai báo sử dụng session
    session_start();

    //Khai báo utf-8 để hiển thị được tiếng việt
    header('Content-Type: text/html; charset=UTF-8');

    //Xử lý đăng nhập
    if (isset($_POST['dangnhap']))
    {
        //Kết nối tới database
    $ketnoi['Server']['name'] = 'localhost'; //Tên server, nếu dùng hosting free thì cần thay đổi
        $ketnoi['Database']['dbname'] = 'thunghiem'; //Đây là tên của Database
        $ketnoi['Database']['username'] = 'root'; //Tên sử dụng Database
        $ketnoi['Database']['password'] = '';//Mật khẩu của tên sử dụng Database
        @mysql_connect(
            "{$ketnoi['Server']['name']}",
            "{$ketnoi['Database']['username']}",
            "{$ketnoi['Database']['password']}")
        or
            die("Không thể kết nối database");
        @mysql_select_db(
            "{$ketnoi['Database']['dbname']}")
        or
            die("Không thể chọn database");
       
        //Lấy dữ liệu nhập vào
        $username = addslashes($_POST['Username']);
        $password = addslashes($_POST['Password']);
       
        //Kiểm tra đã nhập đủ tên đăng nhập với mật khẩu chưa
        if (!$username || !$password) {
            echo "Vui lòng nhập đầy đủ tên đăng nhập và mật khẩu. <a href='javascript: history.go(-1)'>Trở lại</a>";
            exit;
        }
       
        // mã hóa pasword
        $password = md5($password);
       
        //Kiểm tra tên đăng nhập có tồn tại không
        $query = mysql_query("SELECT * FROM member WHERE username='$username'");
        if (mysql_num_rows($query) == 0) {
            echo "Tên đăng nhập này không tồn tại. Vui lòng kiểm tra lại. <a href='javascript: history.go(-1)'>Trở lại</a>";
            exit;
        }
       
        //Lấy mật khẩu trong database ra
        $row = mysql_fetch_array($query);
       
        //So sánh 2 mật khẩu có trùng khớp hay không
        if ($password != $row['password']) {
            echo "Mật khẩu không đúng. Vui lòng nhập lại. <a href='javascript: history.go(-1)'>Trở lại</a>";
            exit;
        }
       
        //Lưu tên đăng nhập
        $_SESSION['username'] = $username;
        echo "Xin chào " . $username . ". Bạn đã đăng nhập thành công. <a href='/'>Về trang chủ</a>";
        die();
    }
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <form action='checkpass.php' method='POST'>
                <table cellpadding='0' cellspacing='0' border='1'>
                    <tr>
                        <td>
                            Tên đăng nhập :
                        </td>
                        <td>
                            <input type='text' name='Username' />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Mật khẩu :
                        </td>
                        <td>
                            <input type='password' name='Password' />
                        </td>
                    </tr>
                </table>
                <input type='submit' name="dangnhap" value='Đăng nhập' />
                <a href='dangky.php' title='Đăng ký'>Đăng ký</a>
            </form>
        </body>
    </html>
     


     
    Chỉnh sửa cuối: 16/10/15
  2. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,463
    Nơi ở:
    Thành phố Hồ Chí Minh
    Bạn đã test thử code php có ra đúng kết quả bạn muốn chưa?!
    Bạn có thể dùng các plugin của firefox để post data lên hoặc sửa $_POST thành $_GET để check cho dễ!

    P.s: Bác share lun cho mình cái database check thử code php
     
    kamsamita1 and Phan Dong like this.
  3. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    code đúng bạn ạ
     
    kamsamita1 and Phan Dong like this.
  4. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    sql
    PHP:

    -- phpMyAdmin SQL Dump
    -- version 4.0.10.6
    -- http://www.phpmyadmin.net
    --
    -- Host: 127.0.0.1:3306
    -- Generation Time: Oct 16, 2015 at 02:49 PM
    -- Server version: 5.5.41-log
    -- PHP Version: 5.3.29

    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";



    --
    -- Database: `thunghiem`
    --

    -- --------------------------------------------------------

    --
    -- Table structure for table `member`
    --

    CREATE TABLE IF NOT EXISTS `member` (
      `username` varchar(255) NOT NULL,
      `password` varchar(255) NOT NULL,
      `email` varchar(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    --
    -- Dumping data for table `member`
    --

    INSERT INTO `member` (`username`, `password`, `email`) VALUES
    ('mekiep', 'e10adc3949ba59abbe56e057f20f883e', '[email protected]');


     
     
    kamsamita1 and Phan Dong like this.
  5. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    Update : vơi menthod GEt thì được nhưng post thì chịu
     
    Phan Dong thích bài này.
  6. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,463
    Nơi ở:
    Thành phố Hồ Chí Minh
    Mã (AutoIt):
    Func HttpPost($sURL, $sData = "")
        Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")

        $oHTTP.Open("POST", $sURL, False)
        If (@error) Then Return '#Error 300'

        $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")

        $oHTTP.Send($sData)
        If (@error) Then Return '#Error 400'

        If ($oHTTP.Status <> 200) Then Return '#Error 999'

        Return SetError(0, 0, $oHTTP.ResponseText)
    EndFunc   ;==>HttpPost
    Bạn sử dụng func này post lên xem có được không?!
     
    Phan Dong thích bài này.
  7. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    vẫn không được bạn ạ , mình gửi nguyên code , data luôn nhé
     
    Phan Dong thích bài này.
  8. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    Toàn bộ đây ạ
     

    Các file đính kèm:

    Phan Dong thích bài này.
  9. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,463
    Nơi ở:
    Thành phố Hồ Chí Minh
    Câu trả lời tốt nhất
    Mình xem qua code rồi nhé!
    Ở file config ghi sai tên table ( thay vì là member, trong file lại ghi thành members )
    Func mình post ở phía trên hoạt động bình thường nhé bạn!
    Đây là đoạn mình đã sửa ở trong file .au3

    Mã (AutoIt):

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 262, 167, 192, 124)
    $Input1 = GUICtrlCreateInput("", 32, 24, 193, 21)
    $input2 = GUICtrlCreateInput("", 32, 56, 193, 21, BitOR($gui_ss_default_input, $es_password))
    $Button1 = GUICtrlCreateButton("Button1", 96, 88, 81, 41, $WS_GROUP)
    GUISetState(@SW_SHOW);
    #EndRegion ### END Koda GUI section ###

    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Button1
                dangnhap()
        EndSwitch
    WEnd

    Func HttpPost($sURL, $sData = "")
        Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")

        $oHTTP.Open("POST", $sURL, False)
        If (@error) Then Return '#Error 300'

        $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")

        $oHTTP.Send($sData)
        If (@error) Then Return '#Error 400'

        If ($oHTTP.Status <> 200) Then Return '#Error 999'

        Return SetError(0, 0, $oHTTP.ResponseText)
    EndFunc   ;==>HttpPost
    Func dangnhap()
        Local $username = GUICtrlRead($Input1)
        Local $password = GUICtrlRead($input2)

        $a = HttpPost('http://localhost/Test/checklogin.php', 'user=' & $username & '&pass=' & $password)
        If StringInStr($a, 'Wrong') Then
            MsgBox(0, "", "Login khong thanh cong")
            Return False
        EndIf
        MsgBox(0, "", "Login thanh cong")
    EndFunc   ;==>dangnhap
     
    Phan Dong and Xuân Dũng 38 like this.
  10. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    à , mình up file cũ , cái đó sửa xong cũng vậy thôi ,menthod post ko đc
     
    Phan Dong thích bài này.
  11. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,463
    Nơi ở:
    Thành phố Hồ Chí Minh
    Bên mình vẫn post data bình thường nhé?!
    Do mình đã xóa hết rồi nên không chụp pic demo cho bạn được!
    Code mình up lên rồi bạn test thử đi!
    P.s: Quên mất ở phần post bạn sửa cái user và pass lại cho khớp với file php nhé!
     
    Phan Dong thích bài này.
  12. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    cái $tablename trong config không quan trọng vì trong file check mình đã gọi trực tiếp tabl member
     
    Phan Dong thích bài này.
  13. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,463
    Nơi ở:
    Thành phố Hồ Chí Minh
    Bác sửa lại hộ mình cái phần post trong .au3 nhá! (Chỗ user & ... pass & ... ấy)
     
    Phan Dong and Xuân Dũng 38 like this.
  14. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,971
    Nơi ở:
    Hà Nội
    ổn rồi bác, cám ơn bác nhiểu, mà bác like giúp code cùi em mới share :3
     
    Phan Dong 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...