Andreas Korthaus: Datenübertragung auf anderen Server

Beitrag lesen

Hi!

Problem ist ja, das popen() nur schreiben _oder_ lesen kann!

Zitat von http://www.php.net/manual/en/function.popen.php:

PHP4 appears to allow w+ for reading and writing..
ie:

$fh=popen("/usr/local/sbin/stunnel -c -r secure.host.com:443","w+");
fwrite($fh,"GET /cgi-bin/test.sh HTTP/1.0\n\n");
$foo=fread($fh,8096);

echo "Got <pre>\n$foo\n</pre>";
pclose($fh);

Grüße,

Naja, sollte man sich also doch an die englische Doku halten, ist das 2. mal heute!

Auf alle Fällte werden Daten übertragen, nur ich bekomme sowas angezeigt:

ŕjäŕkäŕläŕmäŕnäŕqäŕräŕuäŕväŕwäŕyäŕ{äŕ�äŕ�äŕNćŕYćŕfćŕgćŕhćŕićŕjćŕkćŕlćŕmćŕnćŕ{ćŕ}ćŕ1

und noch viel mehr davon?! Hat das was mit binären Daten zu tun? Ich  habe die Variable vor dem Schicken mit urlencode() bearbeitet. Der Umfang kommt in etwa hin.

ABER:

Der Code hierfür ist der folgende:

$dump = urlencode(get_table_data("s_objekte"));

error_reporting(E_ALL);

$fp = popen("curl --data @- http://www.server.de/sync_master.php", "w+");
fputs($fp, "dump_client=Hallo");
$result=fread($fp,1024);
pclose($fp);

echo $result;

Was mir erst hinterher auffällt, theoretisch sollte er ja so wie es da stet nur "dump_client=Hallo" übertragen - sonst nichts, wieso überträgt er aber den ganzen Rest?

Und wenn ich das denn ändere auf

fputs($fp, $dump); überträgt er nur noch einen Bruchteil davon. Und auch Kauderwelsch! Hier ist irgendwo noch ein ganz dicker Denkfehler von mir ;-)

Das Script "sync_master.php" enthält nur:

<pre>
<?
print_r($_POST);
?>
</pre>

Noch 2 Fragen:

$result=fread($fp,1024): die Zahl(1024), wie sollte man die setzen?
fputs($fp, $dump): sollte man hier die Länge angeben, ist ja optional!

Viele Grüße
Andreas