LoadFromUrl und POST?! [ERLEDIGT]
Moderator: Moderatoren
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
LoadFromUrl und POST?! [ERLEDIGT]
Hallo,
ich müsste mit LoadFromUrl (von Phil) ein php-Script aufrufen und diesem POST-Variablen übergeben. Das kriege ich aber nicht hin. Kann mir da jemand einen Tip geben?
Im Prinzip so:
test.php
und in diesem möchte ich eine Variable xyz (mit dem Inhalt "Test") haben...
ich müsste mit LoadFromUrl (von Phil) ein php-Script aufrufen und diesem POST-Variablen übergeben. Das kriege ich aber nicht hin. Kann mir da jemand einen Tip geben?
Im Prinzip so:
test.php
und in diesem möchte ich eine Variable xyz (mit dem Inhalt "Test") haben...
Zuletzt geändert von Markus Walter am Mo, 23. Nov 2009 11:10, insgesamt 1-mal geändert.
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: LoadFromUrl und POST?!
Hallo,
um Daten hochzuladen musst du ein HTML Formular zur Verfügung stellen.
Dieses kann dann auf dein PHP Script verweisen und enthält intern die gewünschte Variable.
In etwas so ...
Die Variable Name kann man hier eingeben, die HIDDEN Variable XYZ wird nicht angezeigt aber dennoch übergeben !
So speichere ich intern immer auch die Session ID und andere nötige Infos.
Entweder dieses ist eine Website, dann lade den Inhalt erst herunter, ändere was du ändern willst und
dann sende es wieder hoch. Vereinfacht ...
noch einfacher geht es, wenn man Funktionsnamensplatzhalter nutzt und diese mit StrTran() gegen den Inhalt austauscht.
In der Prof Sub ist auch eine Klasse für HTML Bearbeitung enthalten, diese nutze ich aber nicht.
PS: du könntest natürlich auch den kompletten Inhalt der Datei lokal erzeugen und gleich per POST hochladen.
um Daten hochzuladen musst du ein HTML Formular zur Verfügung stellen.
Dieses kann dann auf dein PHP Script verweisen und enthält intern die gewünschte Variable.
In etwas so ...
Code: Alles auswählen
...
<FORM ACTION="TEST.PHP" METHOD="post">
Bitte Name eingeben :
<INPUT TYPE="Name" NAME="Name" VALUE="" SIZE="25" MAXLENGTH="25"><br>
<INPUT TYPE="Submit" VALUE="Senden" ></input>
<INPUT TYPE="HIDDEN" NAME="XYZ" VALUE="Test"></INPUT>
</FORM>
...
So speichere ich intern immer auch die Session ID und andere nötige Infos.
Entweder dieses ist eine Website, dann lade den Inhalt erst herunter, ändere was du ändern willst und
dann sende es wieder hoch. Vereinfacht ...
Code: Alles auswählen
cHTML := LoadFromUrl( cUrl )
// Variablen auslesen und ändern - mit at() etc....
nVorVar := at(upper('<INPUT TYPE="HIDDEN" NAME="XYZ"'), upper(cHTML)) -1
if nVorVar == 0
// neue Variable ...
else
nNachVar := at(upper('</INPUT>'), upper(cHTML), nVorVar+1 ) +8
if nNachVar == 0
// fehler im Aufbau
endif
endif
cHTML := left(cHTML,nVorVar)+;
'<INPUT TYPE="HIDDEN" NAME="XYZ" VALUE="'+cInhalt+'"></INPUT>'+;
substr(cHTML,nNachVar)
Code: Alles auswählen
<INPUT TYPE="HIDDEN" NAME="XYZ" VALUE="{INPUT_XYZ}"></INPUT>
PS: du könntest natürlich auch den kompletten Inhalt der Datei lokal erzeugen und gleich per POST hochladen.
Gruß
Hubert
Hubert
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: LoadFromUrl und POST?!
Hallo Markus,
LoadFromUrl( <cURL> , ;
[<nPortNumber>], ;
[<nProtocol>] , ;
[<cProxyUrl>] , ;
[<acByPass> ] , ;
[<cMethod>] , ;
[<cPostString>] ) --> cWebContent | NIL
so sieht die Funktion von Alaska aus. Mit <cPostString> sollte es möglich sein - einen GET-String mit GetCgiString("Var1=Wert1&Var2=Wert2") aufbereiten
gibt es das nicht in deiner LoadFromUrl()?
Ansonsten kannst du auch direkt über die Socket-Funktionen gehen
müsste ungefähr so gehen:
Grüße, Armin
LoadFromUrl( <cURL> , ;
[<nPortNumber>], ;
[<nProtocol>] , ;
[<cProxyUrl>] , ;
[<acByPass> ] , ;
[<cMethod>] , ;
[<cPostString>] ) --> cWebContent | NIL
so sieht die Funktion von Alaska aus. Mit <cPostString> sollte es möglich sein - einen GET-String mit GetCgiString("Var1=Wert1&Var2=Wert2") aufbereiten
gibt es das nicht in deiner LoadFromUrl()?
Ansonsten kannst du auch direkt über die Socket-Funktionen gehen
müsste ungefähr so gehen:
Code: Alles auswählen
cContent = '"Var1=Wert1&Var2=Wert2"
cContent_length = str(len(cContent))
header := "post start.php HTTP/1.0\r\nContent-type: text/html\r\nHost:"+cServer+"\r\nContent-length: "+cCcontent_length+"\r\n\r\n"
socketopen(...
socketsend(... , cHeader,...
socketsend(... , cContent,...
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: LoadFromUrl und POST?!
Hallo Armin,
ich habe es zwischenzeitlich hinbekommen.
Aber da gab es einige "seltsame" Effekte (Zeichenkonvertierung, usw.)
ich habe es zwischenzeitlich hinbekommen.
Aber da gab es einige "seltsame" Effekte (Zeichenkonvertierung, usw.)
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: LoadFromUrl und POST?! [ERLEDIGT]
Hallo Markus,
und wie hast Du´s hinbekommen?
he, nicht erledigen ohne des Rätsels Lösung
Grüße, Armin
und wie hast Du´s hinbekommen?
he, nicht erledigen ohne des Rätsels Lösung
Grüße, Armin
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: LoadFromUrl und POST?! [ERLEDIGT]
Hallo Armin,
alles genau zu erklären würde den Rahmen sprengen, aber mal in Kurzform:
Es ging darum einen im Xbase-Programm erstellten XML-String an eine php-Seite zu übergeben, die diesen weiterverarbeitet (auch an eine andere Seite weiterleitet). Für eine Übergabe per Parameter in der Url war der Text zu lang, deswegen musste ein "Post" her. Mit den richtigen Parametern hat Phils LoadFromUrl dann auch funktioniert. Dann hatte ich aber auf PHP-Seite Backslashs in der XML-Datei, die sich dort durch ein Str_replace() auch nicht entfernen ließen. Dann musste ich noch UTF-8-Konvertierungen vornehmen und ich hatte noch weitere Probleme in meinem PHP-Script (ich bin in PHP recht "unbefangen"). Das "Drehen an all diesen Schrauben" hat dann letztlich zum Erfolg geführt...
War also am Wenigsten ein Xbase-Problem...
alles genau zu erklären würde den Rahmen sprengen, aber mal in Kurzform:
Es ging darum einen im Xbase-Programm erstellten XML-String an eine php-Seite zu übergeben, die diesen weiterverarbeitet (auch an eine andere Seite weiterleitet). Für eine Übergabe per Parameter in der Url war der Text zu lang, deswegen musste ein "Post" her. Mit den richtigen Parametern hat Phils LoadFromUrl dann auch funktioniert. Dann hatte ich aber auf PHP-Seite Backslashs in der XML-Datei, die sich dort durch ein Str_replace() auch nicht entfernen ließen. Dann musste ich noch UTF-8-Konvertierungen vornehmen und ich hatte noch weitere Probleme in meinem PHP-Script (ich bin in PHP recht "unbefangen"). Das "Drehen an all diesen Schrauben" hat dann letztlich zum Erfolg geführt...
War also am Wenigsten ein Xbase-Problem...
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: LoadFromUrl und POST?! [ERLEDIGT]
Hallo Markus,
naja, der Beispielcode vom LoadFromUrl() mit POST-Übergabe hätte vielleicht schon in unsere Wissensdatenbank gepasst - mit entsprechender Zeichenkonvertierung usw...
Mit php programmiere ich auch öfters mal , Armin
naja, der Beispielcode vom LoadFromUrl() mit POST-Übergabe hätte vielleicht schon in unsere Wissensdatenbank gepasst - mit entsprechender Zeichenkonvertierung usw...
Mit php programmiere ich auch öfters mal , Armin
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: LoadFromUrl und POST?! [ERLEDIGT]
Hallo Armin,
so sieht mein Aufruf auf, um zwei Variablen per POST an ein PHP-Script zu übertragen (mit der LoadFromUrl-Implementierung von Phil):
Die Typkonvertierungen betreffen ja den entsprechenden Anwendungsfall (bei mir z. B. UTF-8). Generell muss man wohl aufpassen, welche Zeichen im Inhalt der Variablen vorkommen. Bei mir war es eine XML-Datei als String. Je nach Zeichen, die vorkommen können muss man diese ggf. umwandeln (z. B. aus " " wird %20), Stichwort: URL-Encoding. Ich habe mich dabei an http://www.blooberry.com/indexdot/html/ ... coding.htm gehalten. Bisher sieht es so aus, dass mein Ansatz für meinen Anwendungsfall funktioniert und ich warte ab, ob sich das in der Praxis bewährt. Aber um das in die Wissensbasis zu stellen, ist es sicher noch zu früh und die Lösung auch sicher nicht allgemeingültig genug.
so sieht mein Aufruf auf, um zwei Variablen per POST an ein PHP-Script zu übertragen (mit der LoadFromUrl-Implementierung von Phil):
Code: Alles auswählen
cUrl := "http://www.irgendwas.de/test.php"
cPostString := "Var1=Inhalt1&Var2=Inhalt2"
cResult:= LoadFromUrl(cUrl, , , , , "POST", cPostString, "Content-Type: application/x-www-form-urlencoded")
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: LoadFromUrl und POST?! [ERLEDIGT]
Hi,
ich habe mit LoadFromUrl() Dateiuploads programmiert, sobald der Code auch normale Datentypen
handlen kann UND von privaten Daten befreit ist, stelle ich mal rein was ich habe
ich habe mit LoadFromUrl() Dateiuploads programmiert, sobald der Code auch normale Datentypen
handlen kann UND von privaten Daten befreit ist, stelle ich mal rein was ich habe
Gruß
Hubert
Hubert