Undefined offset: 19 – Chyba laděnky?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
m4rty
Člen | 40
+
0
-

Ahoj,
už delší dobu se snažím opravit tuto chybu. Nemám tušení, co to zapříčinilo. Zkontroloval jsem bootstrap.php, nahrál znovu celý /Nette, zkoušel jsem i nette minified, ale nic nepomohlo..

Chybová hláška

Filip Procházka
Moderator | 4668
+
0
-

To je super no, ale dokud to budeš lovit v minifikovaném Nette tak tam toho ze screenu moc nevyšťourá ani CIS:Miami.

Dej si do té aplikace ne-minifikované Nette a zkus to znovu.

m4rty
Člen | 40
+
0
-

:-D. Prikladam hlasku z ne minifikovane verze:
Chyba

David Grudl
Nette Core | 8147
+
0
-

Můžeš mi poslat ten soubor, který se zvýrazňuje (argument metody highlightFile().

m4rty
Člen | 40
+
0
-

DG: argumenty nešly zobrazit, ale ze zdrojového kódu jsem zjistil, že to je bootstrap.php, řádka: 31. bootstrap

Zkusím ještě upravit bootstrap podle sandboxu z RC verze.

SendiMyrkr
Člen | 30
+
0
-

já už jsem se s tim taky setkal. docházelo k tomu stylem, že tahle chybová stránka překryla jinou chybovou stránku.

EDIT: myslim, že k tomu docházelo v případě kdy došlo k chybě a zároveň byl někde předtim nějak dump

Editoval SendiMyrkr (29. 1. 2012 19:39)

m4rty
Člen | 40
+
0
-

Přesně tak, u mě stejný problém. Jak jsi to vyřešil?

SendiMyrkr
Člen | 30
+
0
-

zatim nijak, vzhledem k tomu že jsem se s tim setkal jenom u staršího projektu jsem usoudil, že to bude chyba u mězatim jsem to odložil.

David Grudl
Nette Core | 8147
+
0
-

A co je součástí pole $source? Zkus ho vypsat, třeba do souboru.

Filip Procházka
Moderator | 4668
+
0
-

@**m4rty**: To nepomohlo, potřebujeme vědět, co se předává do té funkce.

Rozklikni si to v laděnce, kterou jsi nám posílal. Pokud je to soubor, někam ho nahrej a pošli nám, prosím, odkaz. Pokud je to cokoliv jiného, tak to prosím zkopíruj třeba na http://pastebin.com a pošli nám odkaz.

Díky

m4rty
Člen | 40
+
0
-

Argumenty té funkce jsou

$file
"/hosting/www/app/bootstrap.php" (47)
$line
31

Bootstrap jsem již přiložil (odkaz).
V poli $source je to, co jsem posílal o post výše.

Toto stačí? Víc informací z toho nedostanu. :/

David Grudl
Nette Core | 8147
+
0
-

m4rty napsal(a):

Call stack – bluescreen.phtml:169 source

To nějak nechápu, předpokládám, že $source bude pole, kde z nějakého důvodu chybí prvek č.19.

m4rty
Člen | 40
+
0
-

Jaj, omlouvám se, až teď jsem pochopil, co jste po mně chtěli.

Vypsané pole

Aktuálně mi to hlásí na 20 prvku.

Notice

Undefined offset: 20
David Grudl
Nette Core | 8147
+
0
-

Tohle bude ještě složitější. Metoda highlight se totiž zavolá vícekrát (tj. pro celý callstack) a když poté v ní dojde k chybě, tak ještě pro nově vzniklou E_NOTICE (+ opět callstack).

Chce to zjistit, který source generuje chybu. Mohl bys zkusit tohle: Za řádky

		$source = explode('<br />', $source[1]);
		array_unshift($source, NULL);

přidat

		static $counter = 0;
		file_put_contents(__DIR__ . '/dump.' . ++$counter, print_r(error_get_last(), TRUE) . print_r($source, TRUE));

A klíčový bude ten první soubor dump předtím, než se objeví Undefined offset.

m4rty
Člen | 40
+
0
-

Ahoj,
vygenerovalo mi to 7 dump souborů. Všechny jsem je projel a u 3. dumpu chybí prvky pole.

dump.2
dump.3

David Grudl
Nette Core | 8147
+
0
-

Předpokládám, že tohle to vyřeší. Zkus si stáhnout poslední verzi.

m4rty
Člen | 40
+
0
-

Díky za pomoc. Vše se tím vyřešilo. THUMBS UP!