PDA

View Full Version: Diselesaikan 4.2.5 lain ditangkap BB dengan ralat VBET



ctrenks
04-06-18, 20:49
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.

vBET
07-06-18, 01:16
Kami akan menyiasatnya dan menghantar jawapan tidak lama lagi.

vBET
15-06-18, 19:56
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.

ctrenks
17-06-18, 02:11
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 . '";');
}

vBET
18-06-18, 18:01
Terima kasih. Dan Kod ini mengulas kod anda, yang kembali 1 jenis log ralat?

ctrenks
18-06-18, 18:16
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

ctrenks
18-06-18, 18:55
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.

ctrenks
19-06-18, 16:33
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.

vBET
21-06-18, 17:06

$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)?

ctrenks
22-06-18, 14:50
Mesti template lain yang sedang menggunakan nama VBET di sana kerana tiada perubahan dibuat kepada VBET 492.

vBET
22-06-18, 16:05
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.

vBET
23-06-18, 19:03
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.

ctrenks
25-06-18, 14:31
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!

vBET
26-06-18, 10:05
Hebat - kita akan menunggu untuk maklumat anda.

ctrenks
27-06-18, 21:38
Setakat ini tiada ralat, kelihatan baik

vBET
30-06-18, 09:15
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):
AfrikaansAlbanianArabicBelarusianBulgarianCatalanChineseCroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGermanGreekHaitian CreoleHebrewHindiHungarianIcelandicIndonesianIrishItalianJapaneseKoreanLatvianLithuanianMacedonianMalayMalteseNorwegianPersianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwahiliSwedishTaiwaneseThaiTurkishUkrainianVietnameseWelshYiddish
Translations made by vBET 4.10.1