Hi Jungs,
wiedermal ne (dringende) Frage an euch PHP Götter.
Habe das Problem das ich Daten per Formular bekomme. Diese Daten müssen (nach Prüfung) jedoch an eine andere Adresse wiederum per method=Post übergeben werden.
Natürlich aber ohne Benutzereingriff.
Kann man da evtl. was mit der Header() Funktion machen?
Hab schonmal danach geschaut aber ich komm nicht weiter.
Per GET ist das ja kein Problem. Da kann man ja einfach mit Header (Location:...) den String zamwurschteln. Leider ist die Schnittstelle aber auf POST Daten ausgelegt. Die kann ich auch nicht ändern.
Hoffentlich habt ihr einen Tipp für mich..
Danke vorerst!!!!
mit Header ists ja das selbe, auch per get in der Adresszeile
Aber wenn Du die Datei auf dem anderen Server aufrufst, dann kannst Du doch auch die Variable per Post an den Server weitergeben.
Du musst doch auf dem anderen Server eine Schnittstelle haben, von der Du eine Datei zu Dir "ziehen" kannst und operieren darfst ... oder?
Schau mal hier:
http://go4xml.com/kurs/php/faq/faq-scripts.php#scripts-2
dort der Punkt 20.2
Besten Dank Ihr zwei.
Hier ist echt Kompetenz im Spiel. Danke
Habe die Funktion für einen HTTPS Server abgeändert.
Ich hoffe es müsste gehen. Leider bekomme ich im Moment noch keine Testdaten ob die Schnittstelle zu testen. Was meint Íhr dazu?
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host,443);
printf("Open!\n");
fputs($fp, "POST $path HTTPS/3.0\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Referer: $referer\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: ".strlen($data_to_send)."\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, "$data_to_send\n");
printf("Sent!\n");
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
printf("Done!\n");
fclose($fp);
return $res;
}
hi,
möchte diese script für eine anmeldung bei einem separaten webmail-client benutzen, welcher nur post kann.
allerding läuft das nicht ganz so wie es sollte.
habe anstelle der XXX den port 110 eingegeben.
was mach ich falsch.
würde mich über hilfe echt freuen.
metan
Zitat
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host,XXX);
printf("Open!\n");
fputs($fp, "POST $path HTTPS/3.0\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Referer: $referer\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: ".strlen($data_to_send)."\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, "$data_to_send\n");
printf("Sent!\n");
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
printf("Done!\n");
fclose($fp);
return $res;
}
Hmmmmm
Zitathabe anstelle der XXX den port 110....
$fp = fsockopen($host,XXX);
POST $path HTTPS/3.0
Ich denke, wenn Du mit einem PostOfficeProtokoll (POP-)Server über Port 110 sprechen willst, dann kannst Du HTTPS/3.0 als Header wohl vergessen.
Da kann der POP3 nix mit anfangen. Oder anders, wenn Du mir HTTPS kommunizieren willst, solltest Du mal auf Port 443 versuchen.
MfG
jubilee
werde es mal probieren.
danke dir.
bin zurzeit auf den curl trip umgestiegen. damit soll es auch mit https servern problemlos möglich sein.
leider funzt es noch nicht so , mal schaun ob ich das noch hinkriege
hier ein sample:
function PostToSSL ($url, $data)
{
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, $url);
curl_setopt($cu, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($cu, CURLOPT_POST,1);
curl_setopt($cu, CURLOPT_POSTFIELDS,$data);
curl_setopt($cu, CURLOPT_RETURNTRANSFER,1);
curl_setopt($cu, CURLOPT_TIMEOUT,120);
$output = curl_exec($cu);
$succeeded = curl_errno($cu) == 0 ? true : false;
if ($succeeded = true )
{
echo "Erfolgreich";
}
else {
echo curl_errno($cu);
}
curl_close($cu);
}
?>