Veröffentlicht 25. Oktober 200519 j Hi, Ich hab ein PHP Skrpit das regelmäßig Daten an ein anderes PHP Skript senden soll. Nach dem Senden per Post will ich mit dem ersten Skript (das die Daten sendet) überprüfen was mein aufgerufenes Skript gemacht hat. Kurz gesagt: Skript 1 sendet Daten mit Post Skript 2 verarbeitet Daten Skript 1 überprüft, was Skript 2 zurückgegeben hat und reagiert darauf Gibt es da irgend wie iene Möglichkeit in PHP ein anderes PHP Skript (das auf einem anderen Rechner liegt) aufzurufen und zu überprüfen was es macht? Zu sagen, dass das Skript2 dann einfach Skript1 mit den relevanten DAten aufruft geht leider nicht, da Skript2 ja zB fehlschlägt oder nicht erreichbar ist. (Was ich unter anderem mit dem Skript1 abfragen möchte, is der Rechner überhaupt da?) Im Grunde so ne Art überwachung des fernen Rechners, nur das noch einiges mehr passiert (lokale Skripte starten, Prozesse killen, usw.) Gibts da irgendne Funktion für? PS: wenn ihr n besseren Threadtitel wisst, sagt einfach ma bescheid, mir is nix ordentliches eingefallen :/
25. Oktober 200519 j Du lässt Skript 2 einfach je nach Aktion gewisse Statuscodes ausgeben und per Outputbuffering prüfst du im Skript 1 diese Ausgaben: ... ob_start(); require_once('http://wo.das.andere.skipt/ist.php'); $skript_results = ob_get_contents(); ob_end_clean(); if (!CheckResults($skript_results)) echo "<h1>Fehler in Skript 2</h1>"; ... [/php] mal so als Beispiel EDIT: Dazu muss aber [b]allow_url_fopen[/b] in der php.ini angeschaltet sein.
25. Oktober 200519 j Bei meiner Lösung muss allow_url_fopen auch on sein: test1.php: <?php echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">'; echo '<p>Stunde: <input type="text" name="stunde" /> <input type="submit" name="submit" value="Umgangsform für Stunde herausfinden" /></p>'; echo '</form>'; if ($_POST['submit']) { $handle = @fopen('http://localhost/test/req/test2.php?stunde='.$_POST['stunde'], 'r'); } if (!$handle) { die('Umgangsformenserver nicht erreichbar!'); } $buffer = ''; while (!feof($handle)) { $buffer .= fgets($handle); } echo '<p>Ergebnis: '.$buffer.'</p>'; fclose($handle); ?> [/PHP] test2.php: [PHP] <?php if ($_GET['stunde']) { echo 'Guten '; if ($_GET['stunde'] < 12) { echo 'Morgen'; } elseif($_GET['stunde'] >= 12 && $_GET['stunde'] < 18) { echo 'Tag'; } else { echo 'Abend'; } echo '.'; } else { echo 'Bitte Stundenzahl eingeben'; } ?> In test1.php muss natürlich die zu öffnende URL angepasst werden. Gruß, Tobias
25. Oktober 200519 j Ich hatte das Ganze so verstanden, dass Script 1 die Daten per POST an Script 2 schickt. Das wäre mit fsockopen() gegangen. Dann hättest du denn HTTP-Request selbst durchführen müssen. Und ausserdem die Kodierung deiner POST-Daten.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.