[vb6 + php]HTTP POST client-server-communicatie vb6 met php

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Omdat de querystring die ik moet versturen erg lang kan zijn stuur ik vanuit een vb applicatie via POST variabelen mee, echter ik krijg op de 1 of andere manier een lege reactie terug. Als ik het via .OpenURL probeer werkt het perfect, maar met POST wil het maar niet vlotten. ziet iemand de fout?

Het vb deel is alsvolgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
blaat = "?user_id=1111&data=7329984690198"

StuurNaarServer (blaat)

'-----------------------------------------------------------------------

Private Sub StuurNaarServer(ByVal strFormData As String)

Dim strURL As String

On Error Resume Next
strURL = "http://www.website/test.php"
Inet1.Execute strURL, "POST", strFormData

End Sub


Het oppikken van het antwoord:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Select Case State

Case icResponseCompleted ' 12

    Do
        DoEvents
        '
        strBuffer = Inet1.GetChunk(1024)
        strArrivedData = strArrivedData & strBuffer
        '
    Loop Until Len(strBuffer = 0)
    
    blabla = strArrivedData
    
    lblStatus.Caption = "De server heeft de volgende gegevens ontvangen:" & blabla
    
End Select


Op de server draait dit php(test) script:
code:
1
2
3
4
5
6
<?php
echo stripslashes("gegevens:");
echo stripslashes($user_id);
echo stripslashes($data);

?>


Ik krijg het woord "gegevens:" wel terug maar de vars niet.
Zie ik iets over het hoofd?

Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 09:51
error reporting op E_ALL zetten en $_POST gebruiken...

edit:

in het PHP script uiteraard

[ Voor 39% gewijzigd door Limhes op 01-09-2004 16:38 ]


Acties:
  • 0 Henk 'm!

  • Kuhlie
  • Registratie: December 2002
  • Niet online
Bovendien moet je aangeven wat voor encoding de postdata heeft, anders wil apache/je webserver het niet begrijpen:

code:
1
2
3
4
5
6
Dim strURL As String
Dim strExtraHeaders As String
strURL = "http://www.website/test.php"
strExtraHeaders = "Content-Type: application/x-www-form-urlencoded" & vbCrLf

Inet1.Execute strURL, "POST", strFormData, strExtraHeaders


Verder moet je het vraagteken weghalen in de postdata, deze is alleen bedoeld voor GET.

[ Voor 17% gewijzigd door Kuhlie op 01-09-2004 16:42 . Reden: 'TS moet ? weghalen' toegevoegd ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dan geeft hij undefined variable op user_id en data ook met de encoding

[ Voor 24% gewijzigd door Verwijderd op 01-09-2004 16:49 ]


Acties:
  • 0 Henk 'm!

  • Kuhlie
  • Registratie: December 2002
  • Niet online
Verwijderd schreef op 01 september 2004 @ 16:45:
Dan geeft hij undefined variable op user_id en data ook met de headers
Wat Limhes bedoelt is dat je (tegenwoordig):

code:
1
echo $_POST['jouwvarname'];


moet gebruiken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
het vraagteken was de boosdoener. Ik zal mijn php code updaten met $POST. thnxs

Acties:
  • 0 Henk 'm!

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 20-09 19:05

Sponge

Serious Game Developer

Ik zou er ook "Call StuurNaarServer (blaat)" van maken, of "StuurNaarServer blaat"
Die haakjes zonder een Call geven nog wel eens een vreemde resutaat. Ik heb me er alleen nooit in verdiept waarom eigenlijk. :)
Pagina: 1