WordPress 3.5 wprowadził kilka istotnych zmian, aby zmniejszyć pewne zagrożenia bezpieczeństwa, takie jak SQL Injection. Metoda wpdb::prepare
była używana niezawodnie, ponieważ twórcy wtyczek wysyłali kompletne zapytania zamiast oddzielać argumenty. Oznaczało to, że "przygotowane" wyciągi nie były przygotowane i faktycznie przekazywały parametry bezpośrednio do zapytania, co jest zabezpieczeniem nie-nie. Od wersji 3.5 ta metoda przyjmuje teraz trzy argumenty.
Aby przeciwdziałać natychmiastowej problem, edytować plik php.ini, znajdź linię dla error_reporting
i zmienić je na następujące ...
error_reporting(E_ALL & ~(E_NOTICE|E_WARNING));
Uruchom ponownie serwer.
Zapobiegnie to zgłaszaniu wszystkich pomniejszych błędów skryptu.
Alternatywnie, wyślij błędy do pliku dziennika. W php.ini znajdź ten wiersz komentarza (to), i zmienić go ...
error_log "/path/to/php-error.log"
To będzie uniknąć błędów, które są wyświetlane na swojej stronie internetowej. Zamiast tego zostaną zapisane w dzienniku, który tylko Ty możesz zobaczyć.
Jeśli ten błąd Cię niepokoi, możesz spróbować użyć fałszywej wtyczki do użycia fałszywych wartości. Widzimy, że metoda wpdb::prepare
trwa trzy argumenty ...
$wpdb->query(
$wpdb->prepare(
"
DELETE FROM $wpdb->postmeta
WHERE post_id = %d
AND meta_key = %s
",
13, 'stack overflow'
)
);
Dokonując narażona plug-in wysłać null
jako drugiego i trzeciego argumentu w metodzie będzie rozwiązać ten problem całkowicie.
Otwórz swój /home/content/52/8331652/html/wp-content/themes/chateau-2.0/functions.php i wklej w linii 91, abyśmy mogli zobaczyć, co się dzieje. –
można wyświetlić funkcję, która generuje błąd w linii 91 w "themes/chateau-2.0/functions.php"? –
Może powinieneś [Google to następnym razem] (http://make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/) –