Hi.
Schon wieder ein neues Thema von mir hier, aber ich danke mal ich sollte nicht mein altes Thema komplett umändern um daraus das neue zu machen:
Ich habe eine PHP-Seite zum Test geschrieben, die per $HTTP_POST_VARS einen String annimmt und ihn nachher in ein TextFile schreibt.
Per Browser ruft man die Test.html auf, dort gibt man in ein Textfeld den String ein und das wird dann an die Test.php übergeben.
Der ÜbergabeName lautet "Sache".
Codes:
Test.html
Code: (in HTML-Code)
<body>
<h2>PHP-Test-Datei</h2>
<br>
<form action="test.php" method="post">
Gib was ein: <input type="text" size="17" name="sache"><br>
<center>
<input type="submit" value="OK">
</center>
</form> (Über Form und Farbe darf nicht gestritten werden)
Test.php
PHP-Code:
<?
$datei = fopen("test.txt","r+");
$Sach = $HTTP_POST_VARS["Sache"];
fwrite($datei, $Sach);
?>
Datei beschrieben. Wenn ich dies per Browser aufrufe geht alles, nur bei VB treten Fehler auf:
Funktion zum Übermitteln:
Code:
Public Function PostGet(strCommand As String, _
strURL As String, strFeldname As Variant, _
strData As Variant)
Dim strRequestString As String
Dim i As Integer
'Einlesen der Felder und Daten...
For i = LBound(strFeldname) To UBound(strFeldname)
If Len(strRequestString) = 0 Then
strRequestString = strFeldname(i) & "=" & strData(i)
Else
strRequestString = strRequestString & "&" & _
strFeldname(i) & "=" & strData(i)
End If
Next i
Inet1.Cancel
'Request starten...
Select Case UCase(strCommand)
Case "POST"
Inet1.Execute strURL, UCase(strCommand), _
strRequestString & vbCrLf
Case "GET"
Inet1.Execute strURL & "?" & strRequestString
End Select
'Auf Antwort warten... (evtl. Timeout einbauen!)
Do While Inet1.StillExecuting = True
DoEvents
Loop
'Auslesen der ersten 1024 Bytes der Antwort!
PostGet = Inet1.GetChunk(1024, icString)
End Function Code, der die Arrays bestimmt:
Code:
Private Sub Command2_Click()
Dim strFeldname As Variant
Dim strData As Variant
Dim strRtn As String
strFeldname = Array("Sache")
strData = Array("Test")
strRtn = PostGet("POST", "http://localhost/PHP/test/VB-Test/test.php", _
strFeldname, strData)
Text5.Text = strRtn So.
Text5 zeigt mir an, das sich VB auf die entsprechende Seite verlinkt, aber dort werden dann Fehler angezeigt:
Zitat:
<br /> Notice: Undefined index: Sache in _
S:\Progs\PHP\test\VB-Test\test.php on line 3<br /> Datei beschrieben. Wieso kommt "Sache" nicht über ??
Habe bei mir einen OmniSecure v.3.0a4 - Server laufen.
Die 2te Methode die ich im Internet gefunden hab, wäre das direkt über das InetControl laufen zu lassen:
Zitat:
object.Navigate URL [Flags,] [TargetFrameName,] [PostData,] [Headers]
PostData Optional. Data to send to the server during the HTTP POST transaction. For example, the POST transaction is used to send data gathered by an HTML form to a program or script. If this parameter does not specify any post data, the Navigate method issues an HTTP GET transaction. This parameter is ignored if URL is not an HTTP URL.
Nur da hört mein English und meine Idee auf, wie man das anstellen könnte ....
Kennt einer von euch Hilfe ??
Mfg
MasterOfPuppets |