Autor Beitrag
jackie05
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mi 23.01.08 23:43 
Hallo,
sry wegen neue Thread aber ich habe mal ein paar fragen zu ClientSocket.

Wie kann ich über TClientSocket daten zum PHP Datei schicken mittels POST?

In der PHP Datei werden die Daten dann über POST ermittelt, aber wie kann ich die Daten zum PHP Datei schicken, mit TClientSocket?

Ich bedanke mich schonmal im Voraus.

MfG
LorenzS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
BeitragVerfasst: Mi 23.01.08 23:47 
Du must über das protokol http das post schicken. an den Server.
ClientSocket.localsport:=80;
neben dem http header werden dann die post-daten angehängt.

ein kleines beispiel
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
POST \Login.php HTTP/1.1\r\n
Host: www.meineseite.de\r\n
Content-Length: 19\r\n
Content-Type: application/x+www-form-urlencoded\r\n
\r\n
name=Nick&pw=geheim
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Do 24.01.08 02:15 
user profile iconLorenzS hat folgendes geschrieben:
Du must über das protokol http das post schicken. an den Server.
ClientSocket.localsport:=80;
neben dem http header werden dann die post-daten angehängt.

ein kleines beispiel
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
POST \Login.php HTTP/1.1\r\n
Host: www.meineseite.de\r\n
Content-Length: 19\r\n
Content-Type: application/x+www-form-urlencoded\r\n
\r\n
name=Nick&pw=geheim


Danke.
Aber mit welchem befehl sende ich das ab?
ClientSocket1.SendText wird nur beim Chat benötigt, wie sende ich das zum PHP Datei?

MfG
LorenzS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
BeitragVerfasst: Do 24.01.08 20:37 
ausblenden Quelltext
1:
POST \Login.php HTTP/1.1\r\n					

wäre zB.
ausblenden Delphi-Quelltext
1:
ClientSocket1.SendText('POST \Login.php HTTP/1.1'+#13+#10);					

es gibt eh nur 2 befehle, SendText oder SendBuf.

du konnat das ganze auch als einen string schicken.
Hauptsache du vergisst das "\r\n" also #13#10 nicht.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Procedure TForm1.Sendlogin;
var s_Post:string;
begin
 s_Post:='POST \Login.php HTTP/1.1'+#13+#10;  
 s_Post:=s_Post+'Host: www.meineseite.de'+#13+#10
 s_Post:=s_Post+'Content-Length: 19'+#13+#10//Länger der Daten nach dem Header
 s_Post:=s_Post+'Content-Type: application/x+www-form-urlencoded'+#13+#10
 s_Post:=s_Post+#13+#10;//Header Ende
 s_Post:=s_Post+'name=Nick&pw=geheim';//Post Daten
 ClientSocket1.SendText(s_post);
end;