WordPress 3.5 ha apportato alcune modifiche importanti per ridurre alcuni rischi per la sicurezza, come ad esempio SQL Injection. Il metodo wpdb::prepare
veniva utilizzato in modo non preciso poiché gli sviluppatori di plug-in inviavano query complete invece di separare gli argomenti. Ciò significava che le istruzioni "preparate" non erano state preparate e in effetti stavano trasmettendo direttamente i parametri nella query, che è un no-no di sicurezza. A partire da 3.5, questo metodo ora richiede tre argomenti.
Per contrastare il problema immediato, modificare il file php.ini, trovare la linea per error_reporting
e modificarlo al seguente ...
error_reporting(E_ALL & ~(E_NOTICE|E_WARNING));
Riavviare il server.
Ciò impedirà la segnalazione di tutti gli errori di script minori.
In alternativa, inviare errori a un file di registro. Nel php.ini, trovare questa linea (rimuovere il commento di esso), e modificarlo in ...
error_log "/path/to/php-error.log"
che impedirà errori venga visualizzato sul tuo sito web. Invece saranno scritti in un registro che solo tu puoi vedere.
Se questo errore ti infastidisce, puoi provare a fare in modo che il plug-in rogue utilizzi valori fittizi. Possiamo vedere che il metodo wpdb::prepare
prende tre argomenti ...
$wpdb->query(
$wpdb->prepare(
"
DELETE FROM $wpdb->postmeta
WHERE post_id = %d
AND meta_key = %s
",
13, 'stack overflow'
)
);
Rendendo il plug-in colpita inviare un null
come secondo e terzo argomento nel metodo, si risolverà completamente il problema.
fonte
2012-12-19 16:37:52
Aprire il file /home/content/52/8331652/html/wp-content/themes/chateau-2.0/functions.php e incollare nella riga 91, in modo che possiamo vedere cosa sta succedendo. –
puoi mostrare la funzione che sta generando l'errore sulla riga 91 in 'themes/chateau-2.0/functions.php'? –
Forse dovresti [Google la prossima volta] (http://make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/) –