Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

PHP Script auch ohne Browser ausführen

Hallo nochmal.

Es soll anscheinedn gehen das PHP Scripte nach ihrem Aufruf auch ausgeführt werden wenn der User den Browser schließt oder sogar die Internetverbindung trennt. Die Scripte werden trotzdem auf dem Server bis zur Vollendung ausgeführt.

Wie geht das?
Wonach muss ich suchen?

Hier gehts zum Orginal Eintrag "PHP Script auch ohne Browser ausführen" im Forum

Antworten

*lösch*


2.

@Thrust Das würde mich auch interesieren eigendlich geht das doch nicht oder doch?

@Bernd456 woher kommt mir das nur bekannt vor? *gg*


3.

keine Ahnung - ich hab das das erste mal so geschrieben.

wollte zuerst cronjob schreiben, aber das paßt nicht ganz.

Vermutlich wird das Script aber eh abgearbeitet,
nur wird die Ausgabe dann vom Client nicht mehr angenommen.

Aber das wissen andere sicher besser.


4.

Zitat:
Es soll anscheinedn gehen das PHP Scripte nach ihrem Aufruf auch ausgeführt werden wenn der User den Browser schließt oder sogar die Internetverbindung trennt.

Überlegt doch einfach mal..... Wann läuft PHP und wie werden Skripts gestartet in der Regel? Richtig, der Nutzer schickt eine Anfrage an den Server, dieser startet das Skript und produziert am Ende des Skripts eine Ausgabe, die er dann wieder zurückgibt... Startet man nun einen Vorgang, sagen wir mal einen komplexeren Rechenvorgang, der ein paar Sekunden dauert, bis wieder eine Ausgabe erfolgt. Nach dem Starten schließt der Nutzer seinen Browser.... PHP bekommt davon gar nichts, absolut nichts mit und führt das Skript natürlich bis zum Ende aus. Erst am Ende stellt das Skript fest, dass es zwar eine Ausgabe hat, aber keinen Empfänger. Leicht auf dem lokalen Rechner reproduzierbar:
Schreibt ein Skript mit einer Endlosschleife, öffnet den Browser, startet das Skript, schließt den Browser und beobachtet, wie der Apache euch die Resourcen wegfrisst und nur noch durch "abschießen" gestoppt werden kann.... :D

Ist euch das noch nie passiert??? Mir schon öfters, allerdings nur auf meinem lokalen Rechner.... :D


5.

nein das ist mir noch nicht passiert aber das klingt so gut ich sollte es mal versuchen


6.

looki:
http://de.php.net/manual/de/features.connection-handling.php


7.

Vielen Dank. Das ist sehr interessant. Was mich aber gleich zur nächsten Frage bringt.

Da PHP in meinem Fall tatsächlich nur als Berrechnungswerkzeug hinter Flash dient und diese Daten dann auf dem Server speichert, wäre es mir sogar lieber den Browser der das PHP Script enthält zu unterdrücken. Blöd ausgedrückt. Im Prinzip soll PHP unsichtbar im Hintergrund laufen ohne Browser. Ein Browser gibt in diesem Script sowieso nix optisches aus.
Ich kann Werte an PHP senden und diese dort verarbeiten ohne das sich ein Browser mit dem Script öffnet. Geht das auch bei großen Rechenaktionen?

Eine Rechenaktion dauert im Moment 20 Sekunden. Wenn ich Server_time_out beinflussen kann( sofern der jeweilige Server nicht im Safe Mode ist) würde ich das Script aber gerne mit mehr Daten befüllen sodass ein Rechenvorgang auch mal 1 Minute dauern kann.

Hierzu sollte das Script auch wenn der User längst die Internetverbindung abgebrochen hat bis zume Ende ausgeführt und die entsprechenden Daten gespeichert werden.

Müsste doch eigentlich auch funktionieren oder?


8.

Und noch eine Frage. Sollte voriger Thread mit Ja beantwortet werden kann ich dann jeden Server auf dem mein Script läuft durch die Zeile safe_mode=off in diesem Script auf Safe off stellen? anscheinen hat set_time_limit(50); bei Server mit Safe on
keinen Einfluss und ist somit Witzlos. An die PHP.ini komme ich zB bei mir nicht heran. Keine Ahnung ob andere die mein Script vieleicht einmal verwenden werden da ran kommen. Darum sollte wenigsten diese eine Script für seine ausführung diese Dinge wenn nötig umgehen können.

Ausserdem wie verhält sich meine vorrige Frage (ausführen im Hintergrund) beim ausführen des Skriptes durch mehrere Nutzer gleichzeitig? Funktioniert das trotzdem noch?

Danke nochmal


9.

Also den safe_mode kannst du per php-script nicht deaktivieren, sonst wär er auch witzlos. Genauso kann man das script-timeout bei vielen providern nicht hochsetzen (die wollen schließlich ihren server nicht unnötig mit irgendwas belasten)..

Du brauchst keinen Browser um die Verarbeitung in einer php-seite auszulösen, telnet reicht da schon.. Flash ruft im prinzip ja auch einfach die url auf..
Irgendwie willst du doch aber an deine rechen-ergebnisse drankommen?! wie machst du das im moment?


10.

Was Du machen willst (Berechnungen im Hintergrund), wäre ein Fall für Ajax...


11.

Ich versuche mal in Detail zu gehen.

Ich habe einen Shirt und VCard Designer in Flash gebastelt. D.h. der User kann sich selbst Logos hochladen oder vorhandene nehmen und diese dann nach Lust und Laune auf der VCard oder dem Shirt positionieren, drehen, skalieren usw. Genauso kann er auch Texte einfügen und diese drehen etc.

Da ja die Vorlagen bzw das was der User hochgeladen hat bereits auf dem Server in guter Qualität ist, stellt es für denjenigen der jetzt im Falle von Shirt design sitz kein Problem dar anhand der daten das so wie es der User will zu reproduzieren.

Da ich mein Problem mit Größen von 1000 auf 600 Pixel hinbekomme gibts sogar einen generierten Entwurf de ganzen.
So funktionieren laut meinem Kunden alle Shirtdesigner.

Aaaaber bei dem VCarddesigner hätte ich das ganze gerne so das die Datei schon Druckbar ausgestoßen wird. Automatisiert sozusagen.

Ich dachte das daß bei kleinen VCards mit der Auflösung reicht.

Zum Arbeitsablauf:

Flash zerlegt alle Pixel des erstellten Designs und sendet diese an PHP. PHP setzt diese wieder zu einem jpg zusammen und speichert die auf dem Server.
Maximum bis zum Server Time out bei mir 1000 auf 600 Pixel.

Für eine VCard eigentlich aussreichend. Allerdings kommen hier eben meine Fragen von oben ins Spiel. Wie sieht es aus wenn mehrere User gleichzeitig etwas abschicken?
Arbeitet PHP in dem Fall auch ohne Browser das ganze ab??(wurde ja mit jaa beantwortet. Richtig?)

usw.

Wobei ich nocheinmal eine Frage anfügen möchte.

Bisher wird mir alles in RGB generiert.

Gibts auch eine Möglichkeit das ganze auf CMYK zu generieren?

Ich hoffe das brachte Licht ins Dunkel
:-)


Hier gehts zum Orginal Eintrag "PHP Script auch ohne Browser ausführen" im Forum
 
phpforum.de | Impressum