Jump to content

Photo
- - - - -

Błąd


3 replies to this topic
  • Please log in to reply
Ups...
1
Neutralna

Posted 12 July 2015 - 22:54

#1

Bawię się pewnym skryptem, niestety na stronie głównej otrzymuje taki błąd

Strict Standards: Non-static method db::_query() should not be called statically in lokalizacja pliku on line 133
Warning: Cannot modify header information - headers already sent by (output started at lokalizacja pliku) in lokalizacja pliku on line 220

Skrypt wygląda tak:

http://wklej.to/ISzC2

 


  • 0

writen

    Stary wyjadacz

  • 458 posts
    • Czas spędzony online: 29d 22h 59m 44s
133
Znakomita!

Posted 13 July 2015 - 00:03

#2

Nie no, nie chce mi się analizować całej klasy. ale
Próbujesz wywołać metodę, która nie jest statyczna w sposób taki jakby była. Wywołanie metody _query() powinno wyglądać tak $this->_query()

Drugi błąd mówi, że próbujesz wysłać nagłówek gdy te już został wysłany. Prawdopodony scenariusz jest taki, że wywołujesz funkcję header() już po wyświetleniu jakiś danych np. funcją echo. Tak nie można robić. Tego się jednak nie dopatrzyłem w tym skrypcie. Być może ten błąd dotyczy innego pliku?


  • 0

logo-green-dark.png


Ups...
1
Neutralna

Posted 13 July 2015 - 01:38

#3

Co do header, wycinek:

if( $error -> status() ){


            $batch['tlumaczenie'] = escape($_POST['tlumaczenie']);
            $tmp_cat = explode(',',$batch['kategorie']); unset ($batch['kategorie']);
            
if($db -> update('movie',$batch,null,$id)){

$db->q('DELETE FROM `category_movie` WHERE `movie_id` = "'.intval($id).'" ');
foreach ($tmp_cat as $v) {
$db->insert('category_movie',array(
'movie_id'=>intval($id),
'category_id'=>intval($v),
));


}


$item = $db->row('SELECT * FROM `movie` WHERE `id` = "'.intval($id).'" LIMIT 0,1');
$item = movie::parse($item,false);


header('Location: '.$item['link']);
exit();


    CMS::setContent( info::success('Film został pomyślnie zaktualizowany. <a href="admin.php?mode=movie&function=list">Wróć do listy filmów</a>') );
                 $showform=false;
} else {
    $error->put( l::t('sys','error_mysql') . $db->error ); 
               if(!empty($batch['okladka'])){
               @unlink( $batch['okladka'] );
                      @unlink( file::prefix($batch['okladka']) );
                  }
            } 
} else {
 if(!empty($batch['okladka'])){
       @unlink( $batch['okladka'] );
              @unlink( file::prefix($batch['okladka']) );
          }
}

Wypatrzyłem coś jeszcze:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given

A to wygląda tak.

public function fetchAssoc($mysql_query) {
$this->result = mysql_fetch_assoc($mysql_query);
if ($this->result) return $this->result;
else return false;
}

Pozbyłem się błędu "Non-static".


Edited by Ups..., 13 July 2015 - 01:53 .

  • 0

Yeoman

    Stary wyjadacz

  • 358 posts
    • Czas spędzony online: 6d 19h 43m 48s
169
Znakomita!
  • LocationKatowice

Posted 13 July 2015 - 16:48

#4

mysql_fetch_assoc przyjmuje rezultat zapytania z tego jak dobrze pamiętam, a Ty mu przesyłasz true lub false.

 

Pierw musisz wykonać przykładowo:

$result = mysql_query();

a później:

mysql_fetch_assoc($result);

Spróbuj sobie debuggować za pomocą var_dump()


  • 0

2ed58r7.png





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users