View Full Version: Løst Tatt en annen 4.2.5 VB med VBET feil
Var å få en annen advarsel så jeg laget en feilrapportering til å skrive en mal for logg og tatt dette...
[04-Jun-2018 18:52:57 UTC] $lastpostinfo['lastposter'] = '' . $lastpostinfo['lastposter'] .'';
[04-Jun-2018 18:52:57 UTC] PHP Parse error: syntaks feil, uventede " (T_ENCAPSED_AND_WHITESPACE), forventer identifikator (T_STRING) eller variabel (T_VARIABLE) eller tall (T_NUM_STRING) i /home/allfreec/public_html/phpBB2/includes/class_core.php(4695) : eval()'d code on line 1
Hva jeg gjorde var å skrive malen til loggen før det sviktet, tok meg 3 dager, men dette er malen lasting som er kastet feil.
Vi vil undersøke det og sende deg et svar snart.
Vi må ha forskjellige versjoner av vBulletin fordi i stedet beskrevet av feil logg har vi } og det bør være noen plugin gjennomføring.
Vennligst gi oss innholdet på linje 4695 i filen /home/allfreec/public_html/phpBB2/includes/class_core.php så vi vil være i stand til å finne hvilke plugin-modulen er skyldig, og se etter feil.
Starter på 4660, kan du se meg kode for å fange opp feil i loggfilen kaste av den faktiske
/**
* 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 . '";');
}
Takk. Og dette kommentert koden er koden din, som kom tilbake 1. linje av feil logg?
Ja, det ville logge noen mal henrettet, som ikke samsvarer med de to vet de at det var logging. Da ville det skriver ytemple til loggen for deretter å bli etterfulgt av feilmelding
Ikke sikker på om det var fornuftig, jeg logget hver enkelt mal legg det deretter fjernet dem hvis de ikke forårsake feil med str erstatte sjekk.
Takk. Og dette kommentert koden er koden din, som kom tilbake 1. linje av feil logg?
error_log($template_code, 0); <- denne linjen skriver gjeldende $template_code til loggfilen
Så feilen er dødelig, jeg hadde til å skrive hver mal-kode behandlet, og deretter se hva det var før den fatale feilen er registrert.
$lastpostinfo['lastposter'] = '' . $lastpostinfo['lastposter'] .'';
Det er ikke slik kode i vBET... Har du gjort noen endringer i koden? Hvilken versjon har du (kanskje noen eldre)?
Må være en annen mal som bruker VBET navn i det som det ikke er foretatt endringer for å VBET 492.
Så kanskje denne koden er generert ved å legge til flere deler (i loop eller noen andre uttrykk). Jeg vil se igjen, ser bare for en del av det og så du vet det.
OK, jeg fant det. Jeg kunne ikke finne det tidligere, fordi i koden vi har escape-tegn før". Koden i filen vbenterprisetranslator_functions_hooks.php
$vbulletin->templatecache['forumhome_lastpostby'] =
'$lastpostinfo[\'lastposter\'] = \'\' . $lastpostinfo[\'lastposter\'] .\'\\ ';'
.$vbulletin->templatecache['forumhome_lastpostby'];
Jeg kan ikke gjenskape problemet, så jeg er ikke i stand til å sjekke løsning. Kan du beskrive hvordan å reprodusere eller prøve å erstatte den koden med den nedenfor. Denne løsningen ble ikke kontrollert.
$vbulletin->templatecache['forumhome_lastpostby'] =
'$lastpostinfo[lastposter] = \'\' . $lastpostinfo[lastposter] .\'\\ ';'
.$vbulletin->templatecache['forumhome_lastpostby'];
Dette kan være det - feilkode forteller om uventede " og siden vBulletin setter vår koden i " (eval('$final_rendered = "' . $template_code . '";');) dette kan føre til feil. Kan du fortelle oss, hvordan å reprodusere, eller sjekk mulig løsning, og sende oss din status.
Jeg kan ikke tvinge feil, jeg var bare i stand til å fange opp det.. Det skjer minst et par ganger i løpet av et par dager, så jeg vil oppdatere koden og se!
Stor - vi vil vente for info.
Så langt ingen feil, Ser bra ut
Flott. Jeg vil merke dette feil som er løst og inkluderer løsning i neste versjon. Hvis problemer dukker opp igjen, vennligst gi oss beskjed.
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.