php und post
Übersicht

![]() |
pirahniBetreff: php und post |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, ich habe einen Minnicode geschrieben, der eigentlich nur einen Text per POST an meine Seite übertragen soll. Diese Seite gibt dann eigentlich nur noch das eingegebene zurück. Mein Problem: Es passiert nichts! Wo steckt mein Problem???
Gruß pirahni PS: Fast vergessen ![]() name$=Input()
tcp=OpenTCPStream("starhero.st.funpic.de",80) WriteLine tcp,"POST http://starhero.st.funpic.de/dat.php HTTP 1.1" WriteLine tcp,"Content-Type: application/x-www-form-urlencoded" WriteLine tcp,"Content-Length: "+(4+Len(name$)) WriteLine tcp,"dat="+name$ WriteLine tcp,Chr$(10) While Not Eof(tcp) Print ReadLine(tcp) Wend CloseTCPStream tcp |
||
![]() |
tedy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Probier mal noch eine leere Zeile zu senden bevor du die Post daten sendest
zumindestens stehts so bei wikipedia |
||
01010100 01100101 01000100 01111001 00100000 00111010 01000100 |
![]() |
pirahni |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hammer, funktioniert!!! Thank you verry much! | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich war so frei und hab deinen Code noch ein wenig erweitert:
Code: [AUSKLAPPEN] name$=Input()
tcp=OpenTCPStream("starhero.st.funpic.de",80) WriteLine tcp,"POST /dat.php HTTP 1.1" WriteLine tcp,"Host: starhero.st.funpic.de" WriteLine tcp,"UserAgent: Blitzbasic" WriteLine tcp,"Content-Type: application/x-www-form-urlencoded" WriteLine tcp,"Content-Length: "+(4+Len(name$)) WriteLine tcp,"" WriteLine tcp,"dat="+name$ WriteLine tcp,"" While Not Eof(tcp) Print ReadLine(tcp) Wend CloseTCPStream tcp Auch wenn dein voriger Code auch funktionierte, so ist es jedenfalls besser ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
tmode00Betreff: Ein kleines Script nachträglich :) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe mir für meine Onlinegames eine relativ komfortable http_request() function geschrieben. Die könnt ihr auch verwenden, ist getestet und funktioniert einwandfrei. Code: [AUSKLAPPEN] Type TServerreturn
Field lineid;Zeilennummer Field content$;Der eigentliche Inhalt der Zeile End Type Global serverreturn.TServerreturn Function http_request(server$="testsite.de",method$="POST",phpfile$="/index.php",content$="user=a&pass=b") ;Stream öffnen Local tcp=OpenTCPStream(server$,80) If Not tcp Then Return 1;Error 1, keine Verbindung EndIf ;method immer großbuchstaben, wegen der If erkennung method$ = Upper(method$) ;Http-request senden (POST || GET) If (method$="POST") Then WriteLine tcp,"POST " + phpfile$ + " HTTP 1.1" WriteLine tcp,"Host: " + server$ WriteLine tcp,"UserAgent: Blitzbasic" WriteLine tcp,"Content-Type: application/x-www-form-urlencoded" WriteLine tcp,"Content-Length: "+ Len(content$) WriteLine tcp,"" WriteLine tcp,content$ WriteLine tcp,"" ElseIf (method$="GET") Then WriteLine tcp,"GET http://" + server$ + content$ + " HTTP/1.0" WriteLine tcp,Chr$(10) EndIf ;Rückgabe zur weiterverarbeitung speichern Local lineid While Not Eof(tcp) lineid = lineid + 1;beginne mit Zeile 1 serverreturn.TServerreturn = New TServerreturn serverreturn\lineid = lineid serverreturn\content$ = ReadLine(tcp) Wend CloseTCPStream tcp End Function ;Beispiel (Verwendung von http_request(...)) Graphics(1024,768,32,2) http_request("ttlabs.de","POST","/index.php","name=testuser&pass=testpass&user_login_sub=Login&wdlink=?news") For serverreturn.TServerreturn = Each TServerreturn ;folgendes ist nur zur seitentrennung: break = serverreturn\lineid Mod 50 If (break=0) Then WaitKey Cls Locate 0,0 EndIf Print "00" + serverreturn\lineid + ": " + serverreturn\content$ Next WaitKey keine Garantie ![]() |
||
While (1) : Wend |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei einem GET Request sollte man aber troßdem so banale dinge wie User-Agent usw. mitsenden.
Deswegen würde ich hierraus: Code: [AUSKLAPPEN] If (method$="POST") Then WriteLine tcp,"POST " + phpfile$ + " HTTP 1.1" WriteLine tcp,"Host: " + server$ WriteLine tcp,"User-Agent: Blitzbasic" WriteLine tcp,"Content-Type: application/x-www-form-urlencoded" WriteLine tcp,"Content-Length: "+ Len(content$) WriteLine tcp,"" WriteLine tcp,content$ WriteLine tcp,"" ElseIf (method$="GET") Then WriteLine tcp,"GET http://" + server$ + content$ + " HTTP/1.0" WriteLine tcp,Chr$(10) EndIf Das machen: Code: [AUSKLAPPEN] If (method$="POST") Then File$ = phpfile$ ElseIf (method$="GET") Then File$ = "http://" + server$ + content$ EndIf WriteLine tcp, method$+" " + File$ + " HTTP 1.1" WriteLine tcp,"Host: " + server$ WriteLine tcp,"User-Agent: Blitzbasic" WriteLine tcp,"Content-Type: application/x-www-form-urlencoded" WriteLine tcp,"Content-Length: "+ Len(content$) If (method$="POST") Then WriteLine tcp,"" WriteLine tcp,content$ WriteLine tcp,"" ElseIf (method$="GET") Then WriteLine tcp,Chr$(10) ;Chr$(10) = "" EndIf mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
tmode00Betreff: Aw & Frage... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, stimmt. Der UserAgend sollte mit. Außerdem hast du Zeilen gespart, durch das das Senden des selben Useragend mit beiden Methoden, sehr sauber ![]() es gibt da nur noch ein kleines Problem mit Get. Post funktioniert einwandfrei, bei Get kann ich scheinbar keinen Agend schicken: sendstring$ beinhaltet: "http://ttlabs.de/index.php?SicBo" (Variable SicBo wird per get gesendet) Code: [AUSKLAPPEN] ;Sendstring vorbereiten
Local sendstring$ If (method$="POST") Then sendstring$ = phpfile$ ElseIf (method$="GET") Then sendstring$ = "http://" + server$ + phpfile$ + "?" + content$ EndIf Funtioniert einwandfrei (man wird zur korrekten Seite geleitet): Code: [AUSKLAPPEN] 1: WriteLine tcp, method$ + " " + sendstring$ + " HTTP 1.1"
2: WriteLine tcp,Chr$(10) Funktioniert nicht: (nur Zeile 3-6 ist hinzugekommen, sonst ist nichts anders) Code: [AUSKLAPPEN] 1: WriteLine tcp, method$ + " " + sendstring$ + " HTTP 1.1"
2: 3: WriteLine tcp,"Host: " + server$ 4: WriteLine tcp,"User-Agent: Blitzbasic" 5: WriteLine tcp,"Content-Type: application/x-www-form-urlencoded" 6: WriteLine tcp,"Content-Length: "+ Len(content$) 7: 8: WriteLine tcp,Chr$(10) Hingegen bei POST geht exakt der selbe header: Code: [AUSKLAPPEN] WriteLine tcp, method$ + " " + sendstring$ + " HTTP 1.1"
WriteLine tcp,"Host: " + server$ WriteLine tcp,"User-Agent: Blitzbasic" WriteLine tcp,"Content-Type: application/x-www-form-urlencoded" WriteLine tcp,"Content-Length: "+ Len(content$) WriteLine tcp,"" WriteLine tcp,content$ WriteLine tcp,"" Dh. das Headersenden ist nicht ohne weiteres möglch, es funktioniert nur wenn das Chr(10) direkt nach den GET 200 ok... kommt |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group