PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php als script + post variablen



Brujah
28-08-2007, 10:20
Ich habe ein php script geschrieben welches ich per cron aufrufe.
Dieses soll nun eine andere Seite von mir rufen und variable an diese per post übertragen.
Ist dies möglich?

Wenn ich mir das log anschaue so vermute ich das meine echo's nur ausgaben machen. also meine post felder nicht erzeugen und weiterreichen sondern einfach ausgeben. ich rufe mich dann mit javascript selber auf, also das von mir per echos erzeugte formular.

auf dem server ist ja kein browser installiert. wie erzeuge ich nun ein post formular ohne browser?

Pingu
28-08-2007, 11:24
siehe man wget

Brujah
28-08-2007, 14:55
Ich habe das ganze Manual zu wget durchgelesen. Und auch gefunden das man post variablen mitgeben kann. Warscheinlich kann ich auf unserem server aber kein wget rufen. System calls sind verboten (glaube ich :-) ).

Deshalb versuche ich es mit einem socket:



echo "test started...<br>";
$proxy_name = 'localhost';
$proxy_port = 80;
$proxy_cont = '';

$proxy_fp = fsockopen($proxy_name, $proxy_port, &$errno, &$errdesc);
if (!$proxy_fp)
{
echo "open target host failed!<br>";
echo "errno:".$errno."<br>";
echo "errdesc:".$errdesc."<br>";
}
fputs($proxy_fp, "POST /post_test_2.php?username=hugo&password=hallo\r\n");
fputs($proxy_fp, "\r\n");

while (!feof($proxy_fp))
{
$proxy_cont .= fgets($proxy_fp,1024);
}
fclose($proxy_fp);
echo $proxy_cont;


Die Seite die ich rufe sieht so aus:


echo "test2 started...<br>";
echo "<br>post vars:<br>";
var_dump($_POST);
echo "<br>get vars:<br>";
var_dump($_GET);


Ich bekomme dort auch variablen, allerdings bekomme ich diese als get und nicht als post. Und das verstehe ich nicht.



test started...
test2 started...

post vars:
array(0) { }
get vars:
array(2) { ["username"]=> string(4) "hugo" ["password"]=> string(5) "hallo" }

inge
28-08-2007, 20:16
hier (http://tutorials.thoran.eu/?id=9) findest du ne funktion zu dem thema

Brujah
30-08-2007, 10:37
Danke für den Tip.
Mit diesem Script hat es bei mir geklappt :-)