enviar datos de visual basic a una pagina web

Iniciado por TheWarrior, 29 Agosto 2007, 23:27 PM

0 Miembros y 2 Visitantes están viendo este tema.

TheWarrior

Gracias Hades por hacer ese pequeño manual voy a probarlo  :D
Errar es de humanos rectificar es de Sabios

cark

HaDeS! felicitaciones!!    tu sigue!  yo aprendo!!! je,je
xenon-hades   sigo con mi pinito de visual basic y mi troyanito!!!! agradezco a quien explica por que de esa manera se lo que se! es poco , pero me lo contaron!!!
no discutan que hay gente para todo!!   

KiZaR dio una solución. Se agradece "y a no pelear colegas!! que a mi me interesa lo difícil y lo fácil!!  cuando las cosas son fácil de hacer, ya ..... me llama lo difícil!!  jo justo que me encontré lo difícil apareció!!! ........      ME quedo con lo difícil!! pero que no falte lo fácil que es lo que hace que te desahogues mientras lo logras.
saludos .- cark ;)

LeandroA

Cita de: KiZaR en 30 Agosto 2007, 16:03 PM
Para aprender desde el fondo, no useis el winsock que es un ocx mas prefabricado.
Para hacer peticiones http usar las apis que os permiten mandar cabeceras, elegir el metodo, cookies, recibir la pagina y demas...

Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext 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 Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer


http://articulos.conclase.net/jm/prog/cpp/wininethttp_2.html

Sigo sosteniendo que el api wininet es un simplificador de todo esto, tanto  en el protocolo http como el ftp, no quiero discutir mal por todo esto, es mi punto de vista, esta api es propia del iexplorer, incluso maneja el mismo canche, pero que quede claro que no es la forma nativa de hacer las cosas, esto no ayuda a entender el protoclo solo ayuda a entender a usar el api wininet (no digo que este mal, nunca viene de mas) , pero el tema es que si algun dia quieres hacer un server y no un cliente, no vas a entender como se hace porque solo aprendiste a usar un simplificador y nunca aprendiste el protocolo.

Saludos


HaDeS, -

Cita de: LeandroA en 31 Agosto 2007, 01:59 AM
Cita de: KiZaR en 30 Agosto 2007, 16:03 PM
Para aprender desde el fondo, no useis el winsock que es un ocx mas prefabricado.
Para hacer peticiones http usar las apis que os permiten mandar cabeceras, elegir el metodo, cookies, recibir la pagina y demas...

Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext 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 Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer


http://articulos.conclase.net/jm/prog/cpp/wininethttp_2.html

Sigo sosteniendo que el api wininet es un simplificador de todo esto, tanto  en el protocolo http como el ftp, no quiero discutir mal por todo esto, es mi punto de vista, esta api es propia del iexplorer, incluso maneja el mismo canche, pero que quede claro que no es la forma nativa de hacer las cosas, esto no ayuda a entender el protoclo solo ayuda a entender a usar el api wininet (no digo que este mal, nunca viene de mas) , pero el tema es que si algun dia quieres hacer un server y no un cliente, no vas a entender como se hace porque solo aprendiste a usar un simplificador y nunca aprendiste el protocolo.

Saludos



Esto lo iva a decir pero te adelantaste :P, lo mejor es usar directamente las apis que contiene la libreria wsock32.dll, ya que esta es la que trae por defecto el windows, como lo es recv, Send, setsockopt, getsockopt, entre otras.
Mi intencion era solo mostrar como manejar las cabeceras en las peticiones http. Si hago el ejemplo con las apis de wsock32.dll, quedaria lo mismo sino que con mas codigo :P
saludos y bueno, gracias ;)

pablincn

hola a todos quiero saber como puedo pasar o mantener las variable de sesion como el user y passs en el php si cuando ejecuto el winsock se cierra la conexion si alguien me ayuda gracias

HaDeS, -

Bueno, es bastante facil, lo que tenes que hacer es coger la sesion que te manda el servidor en la cabecera http, cuando te manda el set-cookie, te manda un identificador que se llama set-cookie: PHPSESSID...
lo que tenes que hacer es declarar una variable globalmente, la sesion la guardas ahi, y cada vez que haces un request a la pagina pones
cookie: PHPSESSID=sesion
mira este codigo que hice:
Código (vb) [Seleccionar]

Private Sub Command1_Click()
cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"set-cookie: PHPSESSID=df018ddc6671e913593517f142e895fc; path=/"

headers = Split(cadena, vbCrLf)
For j = 0 To UBound(headers)
    headers2 = Split(headers(j), " ")(0)
    If LCase(headers2) = "set-cookie:" Then
        url = Trim(Replace(headers(j), "set-cookie:", ""))
        url_desglosada = Split(url, ";")
        For i = 0 To UBound(url_desglosada)
            If LCase(Mid(url_desglosada(i), 1, 9)) = "phpsessid" Then
                sesion = Trim(Split(url_desglosada(i), "=")(1))
                GoTo Escape
            End If
        Next i
    End If
Next j
Escape:
MsgBox sesion
End Sub

espero te sirva

saludos ;)

pablincn

gracias por la ayuda si me sirvio sigue asi

pablincn

que tal quisiera que me ayuden, estoy conectando el winsock a una pagina www.dequito.com pero no conecta, no se que estoy haciendo mal, le conecte con la ip y funciono pero quiero conectar con el dominio

saludos

Sancho.Mazorka

Yo gane el concurso de aplicaciones 2007 del foro, presentando un servidor web, el Xeon Web Server, tiene lo que ustedes necesitan, maneja cabeceras, crea cabeceras, lee PHP (pero no lo interpreta), y funciona como mini servidor casero, para lo que ustedes necesitan es suficiente y espero les sirva.

Link del Concurso: http://foro.elhacker.net/index.php/topic,171903.0.html

Link del Xeon Web Server: http://rapidshare.com/files/45487670/Xeon_Web_Server.zip

Espero les sirva de ayuda!


Sancho.Mazorka    :¬¬
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



pablincn

gracias pero no me sivio lo que quiero especificamente es conectarme a una direccion de internet (dominio) o leer el html que genera esa pagina


gracias