PHP und Perl-Skript aus einem HTML-Formular starten
HansChris
- cgi
Hallo,
ich hab ein Problem: Ich hab ein Perl und ein PHP-Skript und ich hab ein Formular in HTML, so und jetzt möchte ich, dass Wenn ich das Formular abschicke nicht nur das Perl-Skript, sondern auch das PHP-Skript gestartet wird.
Aber wie mache ich das? Ich hab überlegt, dass ich eins vielleicht mittels "onUnload" starten kann?!
Habt ihr ein Vorschlag?
Gruß
Chris
P.S.: Die beiden Skripte sind recht umfangreich und ich hab leider nicht die Zeit, beide in PHP oder Perl umzuschreiben.
Hallo Chris,
Du könntest vielleicht das Perl Script aus dem PHP Script heraus starten (z.B. mit exec), oder umgekehrt. Ansonsten könnte noch eine Javascript Lösung helfen, vielleicht mit XMLHttpRequest (Unter dem Stichwort Ajax findest Du mehr dazu).
Gruss
Marko
Hallo,
also ich habs mit exec in perl probiert, aber es funktioniert nicht:
exec "--absoluterPfad.php---";
aber da passiert nichts... was mach ich da falsch?
gruß
chris
Hell-O!
exec "--absoluterPfad.php---";
aber da passiert nichts... was mach ich da falsch?
Wenn du exec den Pfad deines Scripts übergibst, kann nichts passieren. Du musst den PHP-Interpreter aufrufen und ihm als Argument das PHP-Script, ggf. mit vollem Pfad, übergeben. Zudem überlege dir, ob du dein Perl-Script am Leben erhalten willst oder nicht (exec vs. system). Eine andere Möglichkeit wäre, mit Hilfe der LWP-Modulfamilie einen HTTP-Request zu simulieren. Und schließlich besteht noch die Möglichkeit, mittels des Location-Headers eine Weiterleitung auf das PHP-Script zu machen. Was letztlich bei dir funktioniert, hängt von deinen konkreten Gegebenheiten ab.
Siechfred
Hallo,
das Perl-Skript kann beendet werden, von daher hab ich mich "gegen" system entschieden...
der Aufruf würde dann also so aussehen:
exec("pfad_zum_interpreter", "skriptchen.php")
(laut selfhtml)
Für den Pfad muss ich nämlich noch zum Admin rennen und da will ich gleich konkret fragen, die haben ja immer so wenig zeit :)
Vielen Dank!
Gruß
Chris
Hallo,
also ich hab den Pfad zum Interpreter bekommen, aber es funktioniert trotzdem nicht...
exec("/usr/local/bin","mail_test.php");
Was mach ich falsch?
Gruß
Chris
also ich hab den Pfad zum Interpreter bekommen, aber es funktioniert trotzdem nicht...
Kann man ein PHP überhaupt so aufrufen?
Was passiert mit dem output des exec Befehl?
Wie kriegt der Server diesen?
exec("/usr/local/bin","mail_test.php");
Ist das der PHP Interpreter?
Was mach ich falsch?
Das Konzept?
Die einfachste Lösung ist die mit LWP::Simple, wobei dann die Frage der CGI Parameter auftaucht.
Struppi.
eigentlich dachte ich schon, dass es mit exec geht, haben ja auch schon andere als tipp genannt. warum sollte es nicht gehen, ich möchte doch einfach nur eine datei öffnen, in php steht ja auch noch wo der interpreter ist.
ich kenn mich leider auch nicht aus in perl&co...
gruß
eigentlich dachte ich schon, dass es mit exec geht, haben ja auch schon andere als tipp genannt. warum sollte es nicht gehen, ich möchte doch einfach nur eine datei öffnen, in php steht ja auch noch wo der interpreter ist.
https://forum.selfhtml.org/?t=127572&m=823446
das Perl Script aus dem PHP Script heraus starten (z.B. mit exec), oder umgekehrt.
"Umgekehrt" gibt es die Möglichkeit, aber ich glaube nicht so einfach (das muss ein PHP Experte sagen, wie man ein PHP Skript ohne Server in der Konsole aufrufen kann, das weiß ich nicht)
Wenn du keine Eingabe und keine Ausgabe brauchst, dann ist es so auf jeden Fall möglich (PHP Skript ruft Perl Skript auf), aber nur dann. ansonsten musst du irgendwie die CGI Parameter an das Skript übermitteln und die Ausgabe an den Server weiterleiten. In dem Falle ist es auf jeden Fall nicht einfach.
Struppi.