pragmaMx Support Forum

alles für Webmaster => PhP & mySQL => Thema gestartet von: sidewind am 05 Juni 2003, 20:17:19

Titel: PHP Daten per Post weitergeben
Beitrag von: sidewind am 05 Juni 2003, 20:17:19
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!!!!

Titel: Re: PHP Daten per Post weitergeben
Beitrag von: Micro am 05 Juni 2003, 20:56:17
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?
Titel: Re: PHP Daten per Post weitergeben
Beitrag von: JensWagenknecht am 05 Juni 2003, 21:57:54
Schau mal hier:

http://go4xml.com/kurs/php/faq/faq-scripts.php#scripts-2

dort der Punkt 20.2
Titel: Re: PHP Daten per Post weitergeben
Beitrag von: sidewind am 06 Juni 2003, 11:59:22
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;
}


 


Titel: Re: PHP Daten per Post weitergeben
Beitrag von: metan am 16 Juni 2003, 22:17:32
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;
}
 
 
Titel: Re: PHP Daten per Post weitergeben
Beitrag von: jubilee am 16 Juni 2003, 23:36:15
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
Titel: Re: PHP Daten per Post weitergeben
Beitrag von: metan am 17 Juni 2003, 09:05:47
werde es mal probieren.
danke dir.
Titel: Re: PHP Daten per Post weitergeben
Beitrag von: sidewind am 18 Juni 2003, 20:34:17
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);

}
?>