SNOWMAN Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 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 :/ Zitieren
geloescht_JesterDay Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 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. Zitieren
tobias-digital Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 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 Zitieren
SNOWMAN Geschrieben 25. Oktober 2005 Autor Geschrieben 25. Oktober 2005 ahja, vielen dank, das werd ich gleich mal ausprobieren Zitieren
etreu Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.