View Full Version: Diselesaikan 4.2.5 lain ditangkap BB dengan ralat VBET
Mendapat satu lagi amaran supaya saya telah mencipta satu ralat laporan untuk menulis template untuk log dan ditangkap ini...
[04-Jun-2018 18:52:57 UTC] $lastpostinfo['lastposter'] = '' . $lastpostinfo['lastposter'] .'';
[04-May-2018 18:52:57 UTC] Ralat Hurai PHP: ralat sintaks, tidak dijangka '' (T_ENCAPSED_AND_WHITESPACE), mengharapkan pengecam (T_STRING) atau berubah-ubah (T_VARIABLE) atau nombor (T_NUM_STRING) di /home/allfreec/public_html/phpBB2/includes/class_core.php(4695): () eval menginap kod pada baris 1
Apa yang saya buat ialah menulis template untuk log sebelum ia gagal, saya mengambil masa 3 hari tapi ini memuatkan templat yang membuang kesilapan.
Kami akan menyiasatnya dan menghantar jawapan tidak lama lagi.
Kita mesti mempunyai versi yang berbeza daripada vBulletin kerana di tempat yang dinyatakan oleh log ralat yang kami ada} dan harus ada beberapa plugin pelaksanaan.
Sila berikan kami kandungan barisan 4695 dalam fail /home/allfreec/public_html/phpBB2/includes/class_core.php Jadi kita akan dapat mencari plugin yang bersalah dan mencari pepijat.
Bermula dari 4660, anda boleh melihat kod untuk menangkap ralat ke fail log melontar off sebenar
/**
* Renders the output after preperation.
* @see vB_Template::render()
*
* @param boolean Whether to suppress the HTML comment surrounding option (for JS, etc)
* @return string
*/
protected function render_output($suppress_html_comments = false)
{
//This global statement is here to expose $vbulletin to the templates.
//It must remain in the same function as the template eval
global $vbulletin;
extract($this->registered, EXTR_SKIP | EXTR_REFS);
$actioned = false;
($hook = vBulletinHook::fetch_hook('template_render_output')) ? eval($hook) : false;
if (!$actioned)
{
$template_code = self::fetch_template($this->template);
}
if (strpos($template_code, '$final_rendered') !== false)
{
eval($template_code);
}
else
{
/*
$tcount = 0;
$tst = str_replace("vB_Template_Runtime::fetchStylevar('outertablewidth')","",$template_code,$tcount);
$tst = str_replace("old_explorer","",$template_code,$mcount);
if ($mcount==0&&$tcount==0){
error_log($template_code, 0);
}
*/
eval('$final_rendered = "' . $template_code . '";');
}
Terima kasih. Dan Kod ini mengulas kod anda, yang kembali 1 jenis log ralat?
Ya, ia akan masuk mana-mana template yang dilaksanakan, yang tidak sepadan dengan kedua-dua tahu yang ia adalah pembalakan. Kemudian ia akan menulis ytemple pada log kemudian diikuti dengan mesej ralat
Tidak pasti jika yang masuk akal, saya rekodkan setiap template satu beban tiada, maka dikeluarkan mereka jika mereka tidak pula menyebabkan ralat dengan cek ganti str.
Terima kasih. Dan Kod ini mengulas kod anda, yang kembali 1 jenis log ralat?
error_log ($template_code, 0); <-talian ini $template_code semasa menulis ke fail log
Kerana kesilapan itu boleh membawa maut, saya terpaksa untuk menulis setiap kod template yang diproses, kemudian lihat apa yang ia adalah sebelum ralat tersebut direkodkan.
$lastpostinfo['lastposter'] = '' . $lastpostinfo['lastposter'] .'';
Terdapat tiada Kod tersebut di vBET... Adakah anda membuat sebarang perubahan pada kod? Versi mana yang anda mempunyai (mungkin beberapa lebih tua)?
Mesti template lain yang sedang menggunakan nama VBET di sana kerana tiada perubahan dibuat kepada VBET 492.
Jadi mungkin Kod ini dijana dengan menambah beberapa bahagian (dalam gelung atau beberapa ungkapan lain). Saya akan menyemak semula, mencari hanya sebahagian daripadanya dan memberitahu anda.
OK, saya mendapati ia. Saya tidak dapat mencari lebih awal, kerana dalam kod kita mempunyai watak-watak melarikan diri sebelum '. Kod adalah dalam fail vbenterprisetranslator_functions_hooks.php
$vbulletin->templatecache['forumhome_lastpostby'] =
'$lastpostinfo[\'lastposter\'] = \'\' . $lastpostinfo[\'lastposter\'] .\'\\ ';'
. $vbulletin -> templatecache ['forumhome_lastpostby'];
Saya tidak boleh mengeluarkan semula isu tersebut jadi saya tidak dapat menyemak penyelesaian. Sila terangkan cara untuk menghasilkan semula atau cuba untuk menggantikan Kod dengan di bawah. Penyelesaian ini tidak disemak.
$vbulletin->templatecache['forumhome_lastpostby'] =
'$lastpostinfo[lastposter] = \'\' . $lastpostinfo[lastposter] .\'\\ ';'
. $vbulletin -> templatecache ['forumhome_lastpostby'];
Ini boleh-kod ralat yang memberitahu tentang tidak dijangka ' dan kerana vBulletin meletakkan kod kita dalam "()eval('$final_rendered = "' . $template_code . '";');) ini boleh membawa kepada kesalahan. Sila beritahu kami, bagaimana untuk membuat salinan, atau menyemak penyelesaian yang mungkin dan menghantar status anda.
Saya tidak boleh memaksa Ralatnya, saya hanya dapat menangkap ia... Ia berlaku sekurang-kurangnya beberapa kali dalam beberapa hari jadi saya akan mengemaskini kod dan menonton!
Hebat - kita akan menunggu untuk maklumat anda.
Setakat ini tiada ralat, kelihatan baik
Besar. Saya akan tandakan bug ini yang diselesaikan dan termasuk penyelesaian dalam keluaran akan datang. Jika masalah muncul lagi, sila maklumkan.
Automatic Translations (Powered by Google, Microsoft®,
Yandex, SDL Language Cloud, IBM Watson and Apertium):
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.