Results 1 to 6 of 6

Thread: No one can solve this problem

  1. #1

    Thread Starter
    Member
    Join Date
    Mar 2001
    Posts
    60
    Ok then this problem that i have asked many times before noone can solve (or attempted to). ok i have a module (attached) which performs a true post to a cgi script, but i cant get it too work i have tried many different ways and non of them work could someone pls provide some help PLS!!!!!!!!!!!!!!!!!!! much appreciated
    thanks

    Chris
    Attached Files Attached Files
    What is Life? One big dream or one Big nightmere.

  2. #2
    Fanatic Member Dim's Avatar
    Join Date
    Jul 2000
    Posts
    620
    I don't currently have VB installed so i will asume that you mean posting variables to a cgi form on a website through your program...well like shown before it will be something like this:
    Code:
    WebBrowser1.Document.Forms.name.value = "blah"
    hope taht helps some what,
    Gl,
    D!m
    Dim

  3. #3
    Retired VBF Adm1nistrator plenderj's Avatar
    Join Date
    Jan 2001
    Location
    Dublin, Ireland
    Posts
    10,359
    TeamKiller, can you give me an example of what you're trying to do with this script ?
    Eg. What values to pass to the function, and what should be the result.
    Microsoft MVP : Visual Developer - Visual Basic [2004-2005]

  4. #4
    Fanatic Member chrismitchell's Avatar
    Join Date
    Jan 2001
    Location
    With Hobbes in New Zealand
    Posts
    568
    TeamKiller, could you Email me a description of exactly what you are trying to do. I know of someone who doesn't use the VB Forum who might be able to help... He is a coding Genius.. If not then post it in a Word Doc and I will ask him.. He hasn't failed me yet..

  5. #5
    New Member
    Join Date
    Apr 2001
    Posts
    12
    Not sure if this will help but I have been using this code of someone elses to help me learn how to use wininet.dll to pass variables to other pages.

    I added a web browser and use the Internet Transfer Component as well. The project is suppose to read the response without a browser which it does just in text and filters out the html tags. But, I was having problems getting authenticated because I couldn't see how to go through https:// rather than http://. So, I just dropped a brower in there for the sole purpose of logging into whatever site I was working on.

    There is a readme txt file from the person that wrote the code.
    Attached Files Attached Files

  6. #6
    Retired VBF Adm1nistrator plenderj's Avatar
    Join Date
    Jan 2001
    Location
    Dublin, Ireland
    Posts
    10,359
    This code for the module will work.

    Code:
    Option Explicit
    
    
    
    Private Declare Function InternetOpen Lib "wininet.dll" _
             Alias "InternetOpenA" _
                (ByVal lpszCallerName As String, _
                 ByVal dwAccessType As Long, _
                 ByVal lpszProxyName As String, _
                 ByVal lpszProxyBypass As String, _
                 ByVal dwFlags As Long) As Long
    
          Private Declare Function InternetConnect Lib "wininet.dll" _
                Alias "InternetConnectA" _
                (ByVal hInternetSession As Long, _
                 ByVal lpszServerName As String, _
                 ByVal nProxyPort As Integer, _
                 ByVal lpszUsername As String, _
                 ByVal lpszPassword As String, _
                 ByVal dwService As Long, _
                 ByVal dwFlags As Long, _
                 ByVal dwContext As Long) As Long
    
       Private Declare Function InternetReadFile Lib "wininet.dll" _
                (ByVal hFile As Long, _
                 ByVal sBuffer As String, _
                 ByVal lNumBytesToRead As Long, _
                 lNumberOfBytesRead As Long) As Integer
    
       Private Declare Function HttpOpenRequest Lib "wininet.dll" _
                Alias "HttpOpenRequestA" _
                (ByVal hInternetSession As Long, _
                 ByVal lpszVerb As String, _
                 ByVal lpszObjectName As String, _
                 ByVal lpszVersion As String, _
                 ByVal lpszReferer As String, _
                 ByVal lpszAcceptTypes As Long, _
                 ByVal dwFlags As Long, _
                 ByVal dwContext As Long) As Long
    
       Private Declare Function HttpSendRequest Lib "wininet.dll" _
                Alias "HttpSendRequestA" _
                (ByVal hHttpRequest As Long, _
                 ByVal sHeaders As String, _
                 ByVal lHeadersLength As Long, _
                 ByVal sOptional As String, _
                 ByVal lOptionalLength As Long) As Boolean
    
       Private Declare Function InternetCloseHandle Lib "wininet.dll" _
                (ByVal hInternetHandle As Long) As Boolean
    
       Private Declare Function HttpAddRequestHeaders Lib "wininet.dll" _
                 Alias "HttpAddRequestHeadersA" _
                 (ByVal hHttpRequest As Long, _
                 ByVal sHeaders As String, _
                 ByVal lHeadersLength As Long, _
                 ByVal lModifiers As Long) As Integer
    
    
    Public Function PostInfo$(srv$, script$, postdat$)
    
      Dim hInternetOpen As Long
      Dim hInternetConnect As Long
      Dim hHttpOpenRequest As Long
      Dim bRet As Boolean
      
      hInternetOpen = 0
      hInternetConnect = 0
      hHttpOpenRequest = 0
      
      'Use registry access settings.
      Const INTERNET_OPEN_TYPE_PRECONFIG = 0
      hInternetOpen = InternetOpen("http generic", _
                      INTERNET_OPEN_TYPE_PRECONFIG, _
                      vbNullString, _
                      vbNullString, _
                      0)
      
      If hInternetOpen <> 0 Then
         'Type of service to access.
         Const INTERNET_SERVICE_HTTP = 3
         Const INTERNET_DEFAULT_HTTP_PORT = 80
         'Change the server to your server name
         hInternetConnect = InternetConnect(hInternetOpen, _
                            srv$, _
                            INTERNET_DEFAULT_HTTP_PORT, _
                            vbNullString, _
                            "HTTP/1.0", _
                            INTERNET_SERVICE_HTTP, _
                            0, _
                            0)
      
         If hInternetConnect <> 0 Then
          'Brings the data across the wire even if it locally cached.
           Const INTERNET_FLAG_RELOAD = &H80000000
           hHttpOpenRequest = HttpOpenRequest(hInternetConnect, _
                               "POST", _
                               script$ & "?" & postdat, _
                               "HTTP/1.0", _
                               vbNullString, _
                               0, _
                               INTERNET_FLAG_RELOAD, _
                               0)
      
            If hHttpOpenRequest <> 0 Then
               Dim sHeader As String
               Const HTTP_ADDREQ_FLAG_ADD = &H20000000
               Const HTTP_ADDREQ_FLAG_REPLACE = &H80000000
      sHeader = "Content-Type: application/x-www-form-urlencoded" _
                 & vbCrLf
               bRet = HttpAddRequestHeaders(hHttpOpenRequest, _
                 sHeader, Len(sHeader), HTTP_ADDREQ_FLAG_REPLACE _
                 Or HTTP_ADDREQ_FLAG_ADD)
      
               Dim lpszPostData As String
               Dim lPostDataLen As Long
      
               lpszPostData = postdat$
               lPostDataLen = Len(lpszPostData)
               bRet = HttpSendRequest(hHttpOpenRequest, _
                      vbNullString, _
                      0, _
                      lpszPostData, _
                      lPostDataLen)
      
               Dim bDoLoop             As Boolean
               Dim sReadBuffer         As String * 2048
               Dim lNumberOfBytesRead  As Long
               Dim sBuffer             As String
               bDoLoop = True
               While bDoLoop
                sReadBuffer = vbNullString
                bDoLoop = InternetReadFile(hHttpOpenRequest, _
                   sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
                sBuffer = sBuffer & _
                     Left(sReadBuffer, lNumberOfBytesRead)
                If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
               Wend
               PostInfo = sBuffer
               bRet = InternetCloseHandle(hHttpOpenRequest)
            End If
            bRet = InternetCloseHandle(hInternetConnect)
         End If
         bRet = InternetCloseHandle(hInternetOpen)
      End If
    End Function
    
    
    Public Sub SplitAddr(ByVal addr$, srv$, script$)
    
    'Inputs: The full url including http://
    ' Two variables that will be changed
    '
    'Returns: Splits the addr$ var into the server name
    ' and the script path
    
      Dim i%
    
      i = InStr(addr$, "/")
      srv$ = Mid(addr$, i + 2, Len(addr$) - (i + 1))
      i = InStr(srv$, "/")
      script$ = Mid(srv$, i, Len(srv$) + 1 - i)
      srv$ = Left$(srv$, i - 1)
    
    End Sub
    Microsoft MVP : Visual Developer - Visual Basic [2004-2005]

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width