Wie wurde Skript gestartet?

Wie wurde Skript gestartet?

am 06.07.2006 16:00:49 von Mario.Adam

Hallo,

ich hab ein kleines Problem, zu dem ich bislang keine Lösung finden
konnte: wie kann ich überprüfen, ob ein PHP-Skript aus einer Konsole
heraus gestartet wurde und nicht per Apache / HTTP?

Hintergrund: ein Skript ist in ein webfähiges Framework angebunden,
welches ebenso auch über die Konsole angesprochen werden kann. Das
Framework an sich wird per HTTP aufgerufen - dieses kleine Skript
jedoch darf nur über die Konsole aufgerufen werden.

Mit besten Grüßen
Mario Adam

Re: Wie wurde Skript gestartet?

am 06.07.2006 16:05:42 von thornythegod

Mario.Adam@luk-as.de schrieb:

> ich hab ein kleines Problem, zu dem ich bislang keine Lösung finden
> konnte: wie kann ich überprüfen, ob ein PHP-Skript aus einer Konsole
> heraus gestartet wurde und nicht per Apache / HTTP?

Ohne es ausgetestet zu haben, würde ich darauf tippen, dass diverse
Werte in $_SERVER nicht setzt sind, wenn man das Script über die Konsole
ausführt.

Gruß,
Torsten

Re: Wie wurde Skript gestartet?

am 06.07.2006 16:09:37 von Carsten Wiedmann

Mario.Adam@luk-as.de schrieb:

> ich hab ein kleines Problem, zu dem ich bislang keine Lösung finden
> konnte: wie kann ich überprüfen, ob ein PHP-Skript aus einer Konsole
> heraus gestartet wurde und nicht per Apache / HTTP?

php_sapi_name() oder PHP_SAPI z.B.

Gruß
Carsten

Re: Wie wurde Skript gestartet?

am 06.07.2006 20:40:49 von Thomas Dartsch

Hallo,

> ich hab ein kleines Problem, zu dem ich bislang keine Lösung finden
> konnte: wie kann ich überprüfen, ob ein PHP-Skript aus einer Konsole
> heraus gestartet wurde und nicht per Apache / HTTP?

Exakt diesselbe Frage habe ich (leider) weiter oben auch gestellt.
Ich hatte aus deinem Betreff aber nicht auf dieselbe Frage geschlossen und
sie darum auch nicht gelesen.

Mein Ansatz war eine Prüfung per $_SERVER['argc'] bzw. $_SERVER['argv'].
Beide scheinen nach meinen Prüfungen nur beim Aufruf per Konsole befüllt zu
sein.
Noch eleganter scheint mir aber die Antwort von Dirk Sohler zu sein. Dabei
würde das Konsolenscript in ein seperates Verzeichnis gelegt und dieses per
..htaccess bis auf 127.0.0.1 gesperrt.
Oder man gibt per das Script in der .htaccess
explizit an, so das es auch mit anderen "normalen" PHP-Dateien in einem
Ordner liegen kann.

Vielleicht hilft dir das schon.

t.d

Re: Wie wurde Skript gestartet?

am 07.07.2006 01:23:17 von Sven Drieling

Mario.Adam@luk-as.de wrote:

Hallo,

> wie kann ich überprüfen, ob ein PHP-Skript aus einer Konsole
> heraus gestartet wurde und nicht per Apache / HTTP?

php_sapi_name() ab PHP 4.0.1.


tschuess
[|8:)
--=20
PHP 5: Hilfreiche Fehlermeldungen mit odebugger von Johan Barbier
http://www.sven-drieling.de/diary/2006/07/05/PHP_odebugger.h tml