Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вставка контексной рекламы внутри статьи

Сообщения:  [1-10]    [11-20]  [21-24] 

 
 автор: confirm   (20.09.2017 в 19:09)   письмо автору
 
   для: hitball   (20.09.2017 в 16:44)
 

Вы не смотрите на то, что на странице, вы проанализируйте, что получаете после разбиения массива на части (array_chunk) и у вас гарантировано нет элемента с индексом 1 в нем. А так как в логах, это не ошибки, тем более не фатальные, то что есть в этом массиве будет выедено, чего нет - нет. Вот вам и кажется, что все Ок, чего еще надо.

PHP Notice: Undefined offset: 1 in view_articles.php on line 134
PHP Примечание: неопределенное смещение: 1 в view_articles.php в строке 134
(то есть нет в указанном массиве элемента к которому ссылаются)

PHP Warning: implode(): Invalid arguments passed in /view_articles.php on line 134
PHP Warning: implode (): неверные аргументы, переданные в /view_articles.php в строке 134
(то есть функция implode ожидает массив, а ей передается иное)

Учитесь выявлять причины, и самые простейшие для этого элементы инструменты, это echo, print_r, var_dump "сомнительных" переменных.

  Ответить  
 
 автор: hitball   (20.09.2017 в 16:44)   письмо автору
 
   для: confirm   (20.09.2017 в 14:52)
 

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

  Ответить  
 
 автор: confirm   (20.09.2017 в 14:52)   письмо автору
 
   для: hitball   (20.09.2017 в 13:15)
 

Да, помню, речь была о разбиении текста по тегу параграфа. Но вы же пишите, что код строки 134, это:

<?=implode('</p>'$myrow["text"][1])?>


Где не разбиение, а обратная операция и вывод. Более того, если настройками подавлен вывод предупреждений, то интерпретатор примет значение несуществующей переменной равное null и в данном случае ничего не выведет.

Вы же пишите, что работа вообще заканчивается крахом (предупреждения не страшны, но они могут быть предпосылками дальнейших проблем, а по сему в режиме отладки вывод их должен быть включен).

Либо вы ошиблись строкой, либо массив $myrow["text"] имеет один элемент (согласно сообщению), а значит это

<?=implode('</p>', $myrow["text"][1])?>

нелогичный подход. Проанализируйте что получаете в $myrow["text"] простым выводом на экран.

  Ответить  
 
 автор: hitball   (20.09.2017 в 13:15)   письмо автору
 
   для: confirm   (20.09.2017 в 11:57)
 

я думала, что мы так делили текст на несколько частей

<? 
$myrow
["text"] = explode('</p>'$myrow["text"]); 
$myrow["text"] = array_chunk($myrow["text"], round(count($myrow["text"])/2)); 
?> 
<h1><?=$myrow["title"]?></h1>   
<div><img src='<?=$myrow["mini_img"]?>' /> 
<div > 
<?=implode('</p>'$myrow["text"][0])?> 
</p><script type="text/javascript"><!--  
google_ad_client = "...";  
/* pod_img */  
google_ad_slot = "...";  
google_ad_width = 125;  
google_ad_height = 125;  
//-->  
</script>  
<script type="text/javascript"  
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">  
</script> 
<?=implode('</p>'$myrow["text"][1])?> 
</p> 
</div></div>  
<p><?=$myrow["author"]?></p> 

  Ответить  
 
 автор: confirm   (20.09.2017 в 11:57)   письмо автору
 
   для: hitball   (20.09.2017 в 11:00)
 

Что носится то, причина в том, что не существует элемента под индексом 1 в массиве $myrow["text"], попытка обращения которому в 134 строке - $myrow["text"][1].

Проверяйте, что такое $myrow["text"]? С чего вдруг $myrow["text"][1]?

  Ответить  
 
 автор: hitball   (20.09.2017 в 11:00)   письмо автору
 
   для: confirm   (12.09.2017 в 14:15)
 

Добрый день! Все ношусь с этой проблемой.
Сервер в логах выдает эту ошибку
PHP Notice:  Undefined offset: 1 in view_articles.php on line 134
PHP Warning:  implode(): Invalid arguments passed in /view_articles.php on line 134

после чего выбивает сайт по ERR_CONNECTION_TIMED_OUT
думаю, что это может быть из-за большого обращения посетителей к этой странице. Может такое быть?
И я совершенно не знаю как это исправить и сделать проверку!

  Ответить  
 
 автор: confirm   (12.09.2017 в 14:15)   письмо автору
 
   для: hitball   (12.09.2017 в 11:27)
 

Сообщение гласит о том, что в массиве $myrow["text"] указанного смещения $myrow["text"][1], а значит и implode не может быть выполнено. То есть после разбиения массива array_chunk($myrow["text"], .... в нем всего один элемент. Проверять нужно.

  Ответить  
 
 автор: hitball   (12.09.2017 в 11:27)   письмо автору
 
   для: confirm   (24.01.2015 в 19:22)
 

Здравствуйте! Если логи сервера выдают ошибку
PHP Notice: Undefined offset: 1 in /var/www/.../view_articles.php on line 134
PHP Warning: implode(): Invalid arguments passed in /var/www..../view_articles.php on line 134
а на линии 134 как раз этот кусок
<?=implode('</p>'$myrow["text"][1])?>  

из кода

<?  
$myrow
["text"] = explode('</p>'$myrow["text"]);  
$myrow["text"] = array_chunk($myrow["text"], round(count($myrow["text"])/2));  
?>  
<?=implode('</p>'$myrow["text"][0])?>  
</p> 
<center>  <?php  include ("blocks/gogle.php");  ?> </center> 
<?=implode('</p>'$myrow["text"][1])?>  
</p> 

как это исправить?

  Ответить  
 
 автор: hitball   (24.02.2017 в 15:33)   письмо автору
 
   для: confirm   (29.03.2013 в 21:40)
 

confirm, огромное вам человеческое спасибо через четыре года! только сейчас заметила ваш ответ! Тогда так и не решила вопрос, а сегодня пришлось снова им занятся и единственное место где нашла ответ - это здесь! СПАСИБИЩЕ!!!

  Ответить  
 
 автор: confirm   (24.01.2015 в 19:22)   письмо автору
 
   для: bond007   (24.01.2015 в 13:05)
 

Да это не мой вариант, а ваш, описанный функциями РНР. Если ничего не выводится, значит где-то у вас допущена ошибка. Выполните этот пример отдельно:

<?
$delim 
3;
$insert '<p>BLOCK</p>';

$text '<p>A</p><p>B</p><p>C</p><p>D</p><p>F</p><p>G</p><p>H</p>';
$text explode('</p>'$text);

echo 
implode('</p>'array_slice($text0$delim)) . '</p>' 
     
$insert .    
     
implode('</p>'array_slice($text$delim)) . '</p>';


Все выводится, и абзац с текстом BLOCK будет включен в вывод как указано, после 3 параграфа.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-24] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования