Autor Zpráva
petrpribyl
Profil *
Zdravím,
na hostingu Otoman mi nefunguje funkce parse_ini_file.

imho to může souviset se safe_mode, který je na hostingu nastaven na On.

samotný .ini soubor je umístěn v adresáři /config/config.ini v rootu ...tak si myslím,, že by se měl načíst i při zapnutém safe mode... nebo jsem mimo ? :)
díky
Davex
Profil
petrpribyl:
mi nefunguje funkce parse_ini_file.
Jak nefunguje? Vypíše se nějaká chyba?

samotný .ini soubor je umístěn v adresáři /config/config.ini v rootu
Do kořenového adresáře serveru určitě přístup nemáš, takže hledáš soubor jinde, než kde skutečně je. Použij relativní cestu od umístění skriptu, třeba config/config.ini.
petrpribyl
Profil *
díky za reakci.
nevypíše se nic, žádná chyba, jen je načtené pole prostě prázdné.

tím rootem jsem myslel root vlastního webu ...
tedy neco jako serverroot/mujweb/web/ tam je index.php, config.ini je v serverroot/mujweb/web/config/config.ini
a cesta by měla být v pořádku, na lokálním serveru mi to běhá ...
Davex
Profil
Jiná funkce, jako třeba file(), ho načte?
petrpribyl
Profil *
funkce file() ho načte bez problémů :(

původní kód :
APP a SITE jsou konstanty, definovane driv ...
Prioritní je config ze složky pod SITE, nahrazuje prvky pole defaultního APP configu
self::$config = array_merge ( parse_ini_file ( APP . "config/config.core.ini", TRUE ), parse_ini_file ( SITE . "config/config.site.ini", TRUE ) );


jsem doplnil o toto :
var_export(self::$config);
		
$soubor = file(APP . "config/config.core.ini");
var_export($soubor);


vyhodí na obrazovku toto :

NULL

array ( 0 => 'version = "2.1" ', 1 => 'onLoadFunction = javaScriptInit ....
Davex
Profil
Není konfigurační soubor uložen v kódování UTF-8 s BOMem a na webserveru nějaká starší verze PHP? Na tento problém jsem našel bug #45991 a na PHP 5.1.6 v CentOS 5 se mi projevil.
petrpribyl
Profil *
Nevím, jak zjistit, jestli má BOM nebo ne, a už vůbec ne, jak ho "vypnout" :(

Jinak config.ini byl uložen v UTF-8, změnil jsem jeho kódování na ISO-8859-1 a žádná změna.
Na serveru je PHP 5.2.9.

phpInfo() s celým nastavením PHP na serveru je např. tady
Davex
Profil
Zobrazí se nějaká zajímavá chyba po zapnutí chybových hlášek v PHP?

error_reporting(E_ALL);
ini_set('display_errors', '1');

var_export(parse_ini_file(APP . "config/config.core.ini", TRUE));
petrpribyl
Profil *
No, asi se blížíme :)

objevuje se varování :
Warning: Error parsing core/2_1/config/config.core.ini on line 6 in /home/users/ciwes/ciwes.com/web/develop/core/2_1/application/application.class.php on line 81

pak jich tam ještě víc, ale to už jsou chyb, související s tím, že je očekávané pole prázdné ...

a tady je ten inkriminovaný config včetně řádku 6 :
version	= "2.1"
onLoadFunction = javaScriptInit
style = baseStyle

controls[route] 	= html
controls[mode] 	= debug
controls[layout] 	= straight
controls[section] 	= home
controls[language] 	= en
Davex
Profil
Neměla by být správná syntaxe ini souboru takto?
[controls]
route    = html
mode    = debug
layout    = straight
section    = home
language     = en
Mike8748
Profil
petrpribyl:
pokud ty hodnoty (html, debug, straight,...) nejsou tebou definovane konstanty v php, tak je dej do uvozovek, jinak jsou zpracovavany PHPckem ktere se snazi dosadit jejich hodnotu.... predpokladam ze nekde v kodu mas definovanou konstantu debug (radka 6) a v ni neco co se sem nehodi
petrpribyl
Profil *
Davex: díky, to bylo ono, problém byl v syntaxi ini souboru. Moje lokální PHP 5.3.3. to bere, na hostingu je verze 5.2.9., myslíš, že to bude tím ?
Každopádně děkuju za pomoc

Mike8748: i na Tvou radu došlo, uvozovky jsem nasypal preventivně všude :) díky
Davex
Profil
petrpribyl:
Moje lokální PHP 5.3.3. to bere, na hostingu je verze 5.2.9., myslíš, že to bude tím ?
Je to možné, v PHP 5.3.3 je hodně vylepšení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0