Jump to content
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

IPB 3.3 вставка php кода в шаблон

Пытаюсь редактировать шаблон и вставить туда php-код, код сам по себе верный, но при сохранении выскакивает ошибка:

 

В шаблоне обнаружена ошибка синтаксиса.

 

Подскажите, пожалуйста, что можно сделать в данной ситуаци..

Featured Replies

Проверять свой код. Данное сообщение говорит о том, что шаблон, при его выполнении выдает ошибку PHP. Т.е. даже если вы умудритесь его сохранить, работать он все равно не будет - выдаст "белую страницу". Приведите код, могу подсказать, что не так.

  • Author
<?php

if ($_data['cat_data']['id'] == 25) { echo '123'; } 

?>

Edited by BeHz

<php>
  php code;
</php>

 

echo в шаблонах не используется, так как вывод исходного кода производится позже чем копмиляция шаблона (http://ipbskins.ru/forum/topic8402.html).

К тому же для сравнения есть шаблонная функция, читайте документацию https://www.invisionpower.com/support/guides/_/advanced-and-developers/application/using-skin-templates-r154.

 

<if test="$_data['cat_data']['id'] == 25">
   1233
</if>

  • Author

Спасибо, помогло.

  • 3 weeks later...
  • Author

Как можно вывести переменную в таком случае, если очень надо?...

 

Подскажите, как можно вывести след. код.

 

<?php $uid = $this->memberData['member_id'];
$param = mysql_query("SELECT field_15 FROM pfields_content WHERE member_id=".$uid.";");

?>

Value: <?=$param?>

 

Использую CustomSideBarBlock. Выходят ошибки..

<?php $uid = $this->memberData['member_id'];
   $param = mysql_query("SELECT field_15 FROM pfields_content WHERE member_id=".$uid.";");

?>

Value: <?=$param?>

 

Если пользователь загружен полностью, то так:

 

<if test="!empty($this->memberData['field_15'])">
Value: {$this->memberData['field_15']}
</if>

  • Author

Спасибо. Только при вставке в CustomSidebarBlocks выходят след. ошибки:

 

Parse error: syntax error, unexpected '<' in /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code on line 1

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in /home/admin/domains/MyDOMAIN/public_html/admin/sources/classes/output/formats/html/htmlOutput.php on line 114

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in /home/admin/domains/MyDOMAIN/public_html/admin/sources/classes/output/formats/html/htmlOutput.php on line 127

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in /home/admin/domains/MyDOMAIN/public_html/admin/sources/classes/output/formats/html/htmlOutput.php on line 136

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in /home/admin/domains/MyDOMAIN/public_html/admin/sources/classes/output/formats/html/htmlOutput.php on line 137

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in

Ничем не могу помочь. Код для шаблона - валиден. Уверены, что это связано именно с ним?

  • Author

не могу разобраться, кто поможет за деньги вставить мой код в CustomSidebarBlocks в пм пожалуйста

  • Author

Блин, там не получается и HTML и PHP совместить как-то хз.... либо php код не интерпретируется, либо html тэги все пропадают (

 

 

echo и print использовать нельзя ( но нужно вывести код html тоже

echo и print здесь без надобности

 

I.

/* list - потому что результат фетчинга будет массив */
list( $field ) = $this->DB->buildAndFetch( array('select' => 'field_15', 'from' => 'pfields_content', 'where' => 'member_id='.$uid) );

return '<h3>html code</h3> <br />'.$field;

 

II.

$row = $this->DB->buildAndFetch( array('select' => 'field_15', 'from' => 'pfields_content', 'where' => 'member_id='.$uid) );

return "<div>
   <div>My block</div>
   <div>{$row['field_15']}</div>
</div>";

  • Author

Спасибо. А можно ли как-нибудь подобный код вставить? В Смысле в CustomSidebarblocks

 

	$vars = file("text.txt");


		for ($i=0; $i<sizeof($vars); $i++)
		{
			if (substr($vars[$i], 0, -1) == $_GET["lr_encrypted"])
			{
				die("");
			}
		}

		$h = fopen("text.txt", "a+");
		fwrite($_GET["param"]."\r\n", $h);
		fclose($h);

 

Пишет, что headers already sent и что-то про eval();

Но зачем такое пихать именно в сайдбар? Создайте в корне с форумом файл constants.php, и положите туда этот код. Этот файл, если существует, подключается сразу после conf_global.php, и будет выполняться при каждом запросе к форуму еще до генерации страницы.

 

Кстати, приведенный код довольно быстро убьет сервер. Если активность нормальная - положите насмерть за один вечер.

 

 

    $vars = file("text.txt");  // читаем весь файл test.txt в память - худший способ из возможных, особенно если файл большой


           for ($i=0; $i<sizeof($vars); $i++)
           {
               if (substr($vars[$i], 0, -1) == $_GET["lr_encrypted"]) // если $_GET не задан - получаем ошибку
               {
                   die("");  // проходим по всем строкам файла test.txt, и если в встроке (без последнего символа) значение = $_GET["lr_encrypted"] - тупо убиваем загрузку и отдаем белую страницу
               }
           }

           $h = fopen("text.txt", "a+");
           fwrite($_GET["param"]."\r\n", $h);  // пишем в файл либо просто перевод строки и получаем ошибку, что $_GET не задан, либо пишем параметр 
           fclose($h);

 

Как результат, каждый хит будет увеличивать text.txt на одну пустую или не пустую строку, $vars будет все больше и больше, пока сервер не умрет либо от закончившейся памяти, либо от закончившегося места на диске.

 

В чем вообще цель скрипта?

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.