Błędy w pliku html.php Illegal string offset

0

Witam
Przez kilka dni walczyłem z "PHP Warning: Illegal string offset"

<br /><b>Warning</b>: Illegal string offset 'nazwa' in <b>/ewidencja/templates_c/%%10^10F^10F6055D%%pracodawca_filters.html.php</b> on line <b>12</b><br />
<br /><b>Warning</b>: Illegal string offset 'nazwa' in <b>/ewidencja/templates_c/%%10^10F^10F6055D%%pracodawca_filters.html.php</b> on line <b>14</b><br />
<br /><b>Warning</b>: Illegal string offset 'adres' in <b>/ewidencja/templates_c/%%10^10F^10F6055D%%pracodawca_filters.html.php</b> on line <b>24</b><br />
<br /><b>Warning</b>: Illegal string offset 'regon' in <b>/ewidencja/templates_c/%%10^10F^10F6055D%%pracodawca_filters.html.php</b> on line <b>31</b><br />

Kod linijka 12 i 14:

<input type="text" name="filters[nazwa]" value="<?php echo ((is_array($_tmp=$this->_tpl_vars['filters']['nazwa'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
" size="20" /> i
<input type="text" name="filters[nazwa]" value="<?php echo ((is_array($_tmp=$this->_tpl_vars['filters']['nazwa'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
" size="20" />

Jeśli mógłby ktoś pomóc bo ja to czarny jestem z php a kolega leży chory w szpitalu a muszę to naprawić

0

Co znajduje się w $this->_tpl_vars['filters']? (możesz to zbadać za pomocą np. var_dump(...);)

0

Dosłownie musisz

var_dump($this->_tpl_vars['filters']); 
die;
0

Dostałem taki błąd


Warning: Illegal string offset 'nazwa' in /ewidencja/templates_c/%%10^10F^10F6055D%%pracodawca_filters.html.php on line 12
string(0)

1

Taki błąd oznacza mniej więcej to że próbujesz użyć string'a jako tablicy.

Przykładowo:

$mojaZmienna = 'Jakiś tekst';
echo $mojaZmienna['tekst'];

Wyświetli błąd: "Illegal string offset 'tekst' in...". Warto więc dodać warunek sprawdzający czy dany klucz w tablicy rzeczywiście istnieje:

if (isset($mojaZmienna['tekst']))

Czyli:

<input type="text" name="filters[nazwa]" value="<?php echo (isset($this->_tpl_vars['filters']['nazwa']) && is_array($_tmp=$this->_tpl_vars['filters']['nazwa'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
" size="20" />
0

Parse error: syntax error, unexpected ')', expecting ',' or ';' in /ewidencja/templates_c/%%10^10F^10F6055D%%pracodawca_filters.html.php on line 12

0
Łukasz Paluch napisał(a):

Parse error: syntax error, unexpected ')', expecting ',' or ';' in /ewidencja/templates_c/%%10^10F^10F6055D%%pracodawca_filters.html.php on line 12

Nie zauważyłem ) na końcu wyrażenia. Musisz dodać ( przed isset:

echo ((isset

0

Dzięki wielkie za pomoc. Wszystko działa na razie poprawnie jakby coś było nie tak to będe pisał. Jeszcze raz dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1