Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :/

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...