Wie Skriptverzeichnis angeben?

Ich habe vor einger Zeit mal ein update gemacht. Seither läuft von meiner Hausautomation so ziemlich gar nix mehr automatisch.
Meine sämtlichen Skripte liegen bei mir im Verzeichnis c:\ip-symcon\scripts .
Einige Scripte Starten, sobald da aber eine include anweisung ( z.B. drin ist, dann gibt es einen Fehler. Dann versucht IPSymcon das zu ladende Scriot im ordner c:\php\pear zu suchen. Das verzeichnis existiert aber nicht. Gibt es irgendwo eine einstellung wo ich ein Default-Skriptverzeichnis angeben kann?

Eine Fehlermeldung sieht zum Beispiel so aus:

warning: include_once(IPSLogger.ips.php): failed to open stream: No such file or directory in C:\ip-symcon\scripts\46752.ips.php on line 3
warning:include_once(): Failed open ‚IPSLogger.ips.php‘ for inclusion (include path =’.;c.\php\pear’ in C:\ip-symcon\scripts\46752.ips.php on line 3

Da stimmt wohl irgendwas mit dem Dateinamen nicht

Gruß
Bruno

Also die Datei, die er anmeckert findet er und führt sie auch aus!

In der besagten Skriptdatei 46752.ips.php steht allerdings in Zeile 3

 
include_once "IPSLogger.ips.php";

und genau das findet er nicht, obwohl diese Implementation in den Beispielskripten unter „Best Practice“ in der IPSlogger Wiki syntaktisch genauso angegeben ist.

Im richtigen Unterverzeichnis geschaut …

vielleicht das

Was steht den in deiner php.ini als „include_path=“ ?

… das hatten wir hier vor kurzem auch schon, dieser Aufruf ist veraltet.

Werde das Wiki auch noch überarbeiten, hab diesen „Best Practice“ Teil komplett übersehen!

Meine php.ini schaut so aus



```php

max_execution_time=150
register_globals=off
error_reporting=E_ALL
extension_dir="C:\IP-Symcon\ext"
memory_limit=32M
auto_prepend_file="C:\IP-Symcon\scripts\__autoinclude.inc.php"
extension = php_curl.dll
extension = php_gd2.dll
extension = php_gettext.dll
extension = php_mbstring.dll
extension = php_soap.dll
[DATE]
date.timezone="Europe/Berlin"


Da gibt es keinen "include_path=…’ Eintrag.

Ich habe die entsprechende Zeile im Skript geändert. Siehe Zeile 5

Danach schaut der Fehler so aus.

Ich hab einen Eintrag drin der auf mein Scriptverzeichniss zeigt.
http://www.php.net/manual/de/ini.core.php#ini.include-path

Was fuer ein Fehler kommt den wenn in deinem Script nur eine Zeile steht?

IPSUtils_Include ('IPSLogger.inc.php',      'IPSLibrary::app::core::IPSLogger');

Wenn die Datei nicht da ist sollte eigentlich folgendes kommen.

Fatal error:  Uncaught exception 'Exception' with message 'script.....

In der Datei „…\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php“

sollte folgendes stehen

	function IPSUtils_Include($file, $namespace="") {
	   if ($namespace=="") {
	      include_once $file;
	   } else {
	      $file = IPS_GetKernelDir().'\\scripts\\'.str_replace('::','\\',$namespace).'\\'.$file;

	      if (!file_exists($file)) {
				throw new Exception('script '.$file.' could NOT be found!', E_USER_ERROR);
	      }
	      include_once $file;
	   }
	}