Autor Zpráva
salab
Profil *
Mám systém, který si pomocí cronu provádí různé scripty v určený čas, zjistil jsem, že se mi tyto skrypty neprovádí a hledám chybu. Je tento zápis správný? Programátor momentálně není dostupný a já to potřebuji opravit co nejdříve, jedná se o veřejnou službu. Mám SSL certifikát a v htaccess mám prioritní přesměrování právě z http://www. na https://

require_once "../main_config.php";
require_once(ROOT_DIR."includes/funkce.php");
require_once ROOT_DIR."configs/constants.php";

Znepokojuje mě to ROOT_DIR - to se musí dekladovat? Ten různý způsob napsání a to, že je zde použit " a né '

Děkuji za pomoc.
Someone
Profil
Konstanty by mohly pomoci.
salab
Profil *
Nejsem programátor, pro mne je důležité jestli je to tak dobře a hnout se z místa. require_once způsobí bílou obrazovku Zde má '
DJ Miky
Profil
Při spouštění cronem je většinou potřeba použít absolutní cesty, nebo se odpíchnout od adresáře s aktuálním skriptem - __DIR__ (od PHP 5.3) nebo dirname(__FILE__) (starší verze), např.
require_once dirname(__FILE__) . "/../main_config.php";

ROOT_DIR možná už bude obsahovat absolutní cestu (takže ty dva další řádky asi budou v pořádku) a tipoval bych, že to bude definováno v main_config.php - zkus se tam podívat a možná to tam najdeš. V opačném případě bude potřeba to definovat.

Na uvozovkách (") vs. apostrofech (') v tomto případě nezáleží.

Ještě doplnění: cron skripty se provádí přímým spuštěním skriptu na serveru, nikoliv HTTP požadavkem, takže se .htaccess nebere vůbec v úvahu.
salab
Profil *
V main_config je:
define('ROOT_DIR',dirname(__FILE__).'/');

Stačí tedy změnit vše zbylé na zápis typu: require_once "/../NÁZEV.php"; ?
jan99
Profil *
Nacpi všude $_SERVER['DOCUMENT_ROOT']

např:

include_once $_SERVER['DOCUMENT_ROOT'].'/includes/funkce.php';

Mělo by to fungovat

Spravnou cestu zkontroluješ když na te strance vypíšeš var_dump($_SERVER['DOCUMENT_ROOT']); musí to pak správně sedět se zbytkem co vede k tomu souboru.
salab
Profil *
Možná byla chyba v tom, že soubory pod require_once neměly chmod pro čtení... dám vědět.

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: