Cytat
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/jojo/public_html/forum/ips_kernel/class_template.php(238) : regexp code on line 1
Fatal error: Failed evaluating code: $this->_statement_if('ipb.member[''id''] == 0', '
<form action="{ipb.script_url}act=Login&CODE=01&CookieDate=1" method="post">
<input type="text" size="20" name="UserName" onfocus="this.value=''''" value="{ipb.lang[''qli_name'']}" />
<input type=''password'' size=''20'' name=''PassWord'' onfocus="this.value=''''" value=''ibfrules'' />
<input class="button" type=''image'' src=''{ipb.vars[''img_url'']}/login-button.gif'' />
</form>
') in /home/jojo/public_html/forum/ips_kernel/class_template.php on line 238
Fatal error: Failed evaluating code: $this->_statement_if('ipb.member[''id''] == 0', '
<form action="{ipb.script_url}act=Login&CODE=01&CookieDate=1" method="post">
<input type="text" size="20" name="UserName" onfocus="this.value=''''" value="{ipb.lang[''qli_name'']}" />
<input type=''password'' size=''20'' name=''PassWord'' onfocus="this.value=''''" value=''ibfrules'' />
<input class="button" type=''image'' src=''{ipb.vars[''img_url'']}/login-button.gif'' />
</form>
') in /home/jojo/public_html/forum/ips_kernel/class_template.php on line 238
Linia, której on dotyczy wygląda następująco:
<?php $html = preg_replace( \"#(?:s+?)?<if=[\"'](.+?)[\"']>(.+?)</if>#ise\", \"$this->_statement_if('1' , '2')\", $html ); ?>
Oczywiste jest dla mnie, że błąd ten tyczy się złego umiejscowienia cudzysłowów, ale nie mam bladego pojęcia o wyrażeniach regularnych, więc zwracam się z prośbą o pomoc.
Częściowo mój problem rozwiązało ujęcie drugiego parametru w funkcję eval():
<?php $html = preg_replace( \"#(?:s+?)?<if=[\"'](.+?)[\"']>(.+?)</if>#ise\", eval( \"$this->_statement_if('1' , '2')\" ), $html ); ?>
Po takiej operacji instalator dochodził do końca, wyswietlał informację o poprawnym zakończeniu instalacji, ale na górze strony pojawiało się kilka błędów postaci:
Cytat
Parse error: parse error, unexpected $ in /home/jojo/public_html/forum/ips_kernel/class_template.php(240) : eval()'d code on line 1
Szczególnie interesujące jest to, że powyższe problemy pojawiają się tylko na jednym serwerze. Jest to FreeBSD 5.2.1-RELEASE-p8 / Apache 2.0 (nie wiem dokładnie który) / php 4.3.7 Na innym (na przykład tym z mojej sygnaturki FreeBSD 5.1) wszystko działa bez zarzutu.
[EDIT]
Właśnie zauważyłem przy tym podświetleniu kodu, że tam jest mocno namieszane z cudzysłowami (mój edytor pokazywał wszystko dobrze) ale nadal nie mam pojęcia jak to poprawić.
[/EDIT]