Взломали Bitrix24 (сносят полностью /home/bitrix) при повторном взломе еще и файлы OS повреждают (ТП хостинга FVDS переустанавливала)
Логи OS и сервера NGINX по ним видно что прогоняли через сервис поиска уязвимостей https://leakix.net/ искали конфиг SFTP клиента VSCode которые по ошибки могли улететь на сервер https://clck.ru/35ccmB (и не только это)
От: - 2023-09-07 10:46:39 По неизвестным причинам пропала часть файлов, которые нужны для корректной загрузки и работы ОС. Пытаемся восстановить их. Точных сроков пока назвать, к сожалению, не можем.
-- С уважением, Системный администратор службы технической поддержки FirstVDS
Цитата
От: - 2023-09-07 11:37:51 На сервере отсутствовали файлы, необходимы для загрузки ОС. Переустановили ядро и загрузчик - сервер запустился. В данный момент видим, что отсутствует директория /home/bitrix, т.е. все файлы сайта. При этом другие директории, судя по всему, не затронуты: MySQL запущен и работает, базы данных на месте. Также на месте файлы в директории /ts (судя по всему это какие-то старые бекапы).
Вижу по переписке, что ранее ваша система была взломана, вероятно это послужило причиной.
Рекомендуем заказать новый сервер, и восстановить сайты на нем из резервных копий. Для этого вы можете обратиться к нам.
-- С уважением, Системный администратор службы технической поддержки FirstVDS
Добавьте в NGINX блокировку POST запросов к файлам
Столкнулся с проблемой, после 2х выключений электричества, на локальной VMBitrix перестала работать mysql
проверка статуса сервиса дает такой ответ
Код
[root@bitrix_vm3 ~]# systemctl status mysql
? mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Tue 2023-07-25 22:53:02 MSK; 1h 49 min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 2479 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=1/FAILURE)
Process: 2455 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Jul 25 22:53:02 bitrix_vm3 systemd[1]: Failed to start MySQL Server.
Jul 25 22:53:02 bitrix_vm3 systemd[1]: Unit mysqld.service entered failed state.
Jul 25 22:53:02 bitrix_vm3 systemd[1]: mysqld.service failed.
Jul 25 22:53:02 bitrix_vm3 systemd[1]: mysqld.service holdoff time over, sc...t.
Jul 25 22:53:02 bitrix_vm3 systemd[1]: Stopped MySQL Server.
Jul 25 22:53:02 bitrix_vm3 systemd[1]: start request repeated too quickly f...ce
Jul 25 22:53:02 bitrix_vm3 systemd[1]: Failed to start MySQL Server.
Jul 25 22:53:02 bitrix_vm3 systemd[1]: Unit mysqld.service entered failed state.
Jul 25 22:53:02 bitrix_vm3 systemd[1]: mysqld.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
Попытки перезапустить, активировать\деактивировать, убить процесcы mysql, удаление файлов /var/run/mysqld/mysqld.pid и /var/lib/mysqld/mysqld.sock ни к чему не приводят, сервис не стартует...
Код
[root@bitrix_vm3 conf.d]# sudo systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
[root@bitrix_vm3 conf.d]# sudo systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: activating (start) since Wed 2023-07-26 02:03:50 MSK; 3s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 18663 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Control: 18687 (mysqld)
CGroup: /system.slice/mysqld.service
├─18687 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
└─18690 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Jul 26 02:03:50 bitrix_vm3 systemd[1]: Starting MySQL Server...
часть лог файла полученный по пути /var/log/mysql/error.log
Код
2023-07-25T22:29:38.932179Z 0 [ERROR] InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files. Please refer to http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html for information about forcing recovery.
2023-07-25T22:29:38.995898Z 0 [Note] InnoDB: 2 transaction(s) which must be rolled back or cleaned up in total 0 row operations to undo
2023-07-25T22:29:38.995921Z 0 [Note] InnoDB: Trx id counter is 3174656
2023-07-25T22:29:39.003107Z 0 [Note] InnoDB: Cleaning up trx with id 3132548
2023-07-25T22:29:39.003128Z 0 [Note] InnoDB: Cleaning up trx with id 3132398
2023-07-25T22:29:39.323692Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2023-07-25T22:29:39.323716Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2023-07-25T22:29:39.323754Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2023-07-25T22:29:39.355900Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2023-07-25T22:29:39.356631Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
2023-07-25T22:29:39.356641Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2023-07-25T22:29:39.357943Z 0 [Note] InnoDB: Waiting for purge to start
2023-07-26 01:29:39 0x7f0fb95f5700 InnoDB: Assertion failure in thread 139705511270144 in file fut0lst.ic line 93
InnoDB: Failing assertion: addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
22:29:39 UTC - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.
Please help us make Percona Server better by reporting any
bugs at https://bugs.percona.com/
key_buffer_size=50331648
read_buffer_size=131072
max_used_connections=0
max_threads=44
thread_count=0
connection_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 407537 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
Build ID: f63b7082d764297ccdfd239bd51989633fcefefb
Server Version: 5.7.37-40 Percona Server (GPL), Release 40, Revision 3a1347ec0d4
Thread pointer: 0x7f0fa80008c0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f0fb95f4cb0 thread_stack 0x20000
/usr/sbin/mysqld(my_print_stacktrace+0x3b)[0xf4624b]
/usr/sbin/mysqld(handle_fatal_signal+0x505)[0xd779c5]
/lib64/libpthread.so.0(+0xf630)[0x7f1027ebe630]
/lib64/libc.so.6(gsignal+0x37)[0x7f1025fbb387]
/lib64/libc.so.6(abort+0x148)[0x7f1025fbca78]
/usr/sbin/mysqld[0x7824cc]
/usr/sbin/mysqld[0x782008]
/usr/sbin/mysqld[0x1160265]
/usr/sbin/mysqld[0x1162b65]
/usr/sbin/mysqld(_Z9trx_purgemmb+0x26b)[0x11659db]
/usr/sbin/mysqld(srv_purge_coordinator_thread+0xa47)[0x1137647]
/lib64/libpthread.so.0(+0x7ea5)[0x7f1027eb6ea5]
/lib64/libc.so.6(clone+0x6d)[0x7f1026083b0d]
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0): Connection ID (thread ID): 0
Status: NOT_KILLED
You may download the Percona Server operations manual by visiting
http://www.percona.com/software/percona-server/. You may find information
in the manual which will help you identify the cause of the crash.
Есть ли шанс восстановить БД или нет? Если нет то как можно ее переустановить не прибегая к сносу самой VM ?
Где вообще реализация возможности для клиента по отписке от рассылки, которая по требованию из закона о рекламе должна быть в письме (стоять ссылкой на стр. с формой отписки)
Цитата
Здравствуйте, C вашей услуги VDS-KVM-NVMe-Битрикс-Турбо #13018827 (37.46.173.88, site.ru) зафиксирована массовая рассылка почтовых сообщений. Мы подозреваем, что сервер рассылает спам, а это запрещено правилами предоставления наших услуг (https://firstvds.ru/docs/main/usloviya_predostavleniya_uslug_ao_iot.pdf Согласно пунктам 3.7-3.8-3.9-3.10-3.11). Сейчас исходящий почтовый трафик сервера автоматически заблокирован.
ЭТО ЛЕГАЛЬНАЯ РАССЫЛКА? Если это легальная рассылка, то мы разблокируем 25, 465, 587 порты и добавим IP адрес вашего сервера в “белый” список.
Для попадания IP в белый список необходимо выполнить следующие условия: 1. Подскажите, каким образом подписчики дают согласие на получение рассылки? (Согласно закону о рекламе, у вас должна быть информация о том, в какое время и с какого IP-адреса каждый пользователь дал подтверждение на рассылку. Иначе рассылка классифицируется как СПАМ) 2. Предоставьте пример отправляемого письма. У получателя должна быть возможность быстро отписаться от рассылки. (можно прислать скриншот или исходник письма) 3. Если в вашем случае рассылаются иные уведомления с учебных сайтов, магазинов или любые технические уведомления, то укажите сайт и приложите скриншот или исходник письма В БЕЛЫЙ СПИСОК НЕ ВНОСЯТСЯ СЕРВЕРЫ, ЕСЛИ: 1. Рассылаются технические уведомления cron 2. Рассылки носят рекламный характер 3. Осуществляется распространение любым способом содержащей рекламу информации без прямого согласия со стороны конечного получателя. Например: письма, содержащие ссылку на некий ресурс сети и подразумевающие, что получатель должен его посетить, спам (в том числе - поисковый); 4. Организуется и/или осуществляется несогласованная отправка одного письма множеству получателей, несогласованная множественная отправка писем одному получателю, иная несогласованная отправка писем; 5. Осуществляется реклама товаров и/или услуг, распространение которых ограничено и/или запрещено Законодательством РФ; 6. Организуется и/или осуществляется принудительная подписка почтового адреса на любые периодические рассылки без предварительного подтверждения владельца адреса, периодическая рассылка, не содержащая явного указания на способ от них отписаться, отправка информации лицам, ранее не выразившим явного желания получать указанную информацию; 7. Организация и/или распространение любым способом списков адресов электронной почты третьих лиц, схем «пирамид», многоуровневого (сетевого) маркетинга (MLM), систем Интернет-заработка и e-mail-бизнесов, в том числе в случаях, если отправка производилась без непосредственного использования Услуг;
В случае обнаружения несоответствия полученных ответов действительности или при получении жалоб от Spamcop, Spamhaus и подобных сервисов разрешение на рассылку аннулируется.
ВЫ НЕ ДЕЛАЕТЕ НИКАКИХ РАССЫЛОК? Если не вы инициировали эту рассылку, то ваш сервер взломан.
Как оказалось не работало из-за сертификата версии TLSv1.3, заменил строку /etc/nginx/bx/conf/ssl-push.conf:11 с ssl_protocols TLSv1.2 TLSv1.3; на ssl_protocols TLSv1.2;
написал: Написано же где ошибка /etc/nginx/bx/conf/ssl-push.conf:11 Вероятнее всего обновили версию php, пути до сертификатов поменялись , переустановить сертификат ssl
Цитата
написал: Потом естественно стартануть nginx
все это сделал, я дополнил свой пост, посмотрите плз!
Дак как он должен открыться если закомментирован конфиг? Либо откатите php на старую версию 7.4 либо исправьте ошибку путей сертификатов, третьего не дано. А то что пустой nginx без конфига стартанул, Дак это не новость, ошибка то никуда не делась. Попробуйте из машины переустановить сертификат, через меню, или вручную конфигурацию с путями прописать напрямую.
Вот что в том файле, ошибка в нем в 11 строке
Код
# If they come here using HTTP, bounce them to the correct scheme
# Nginx internal code used for the plain HTTP requests
# that are sent to HTTPS port to distinguish it from 4XX in a log and an error page redirection.
error_page 497 https://$host$request_uri;
# Increase keepalive connection lifetime
keepalive_timeout 70;
keepalive_requests 150;
# SSL encryption parameters
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.pem;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
# performance
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
в этой строке не путь к файлам сертификата а вот что:
Код
ssl_protocols TLSv1.2 TLSv1.3;
А сертификаты лежат по корректному пути /etc/nginx/ssl [img]data:image/png;base64,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[/img]
как же тогда их исправить эти пути и какой путь должен быть?
написал: Написано же где ошибка /etc/nginx/bx/conf/ssl-push.conf:11 Вероятнее всего обновили версию php, пути до сертификатов поменялись , переустановить сертификат ssl
Цитата
написал: Потом естественно стартануть nginx
все это сделал, я дополнил свой пост, посмотрите плз!
Также после reboot сервера с BitrixVM, сайт стал не доступен Какая последовательность диагностирования проблемы?
Код
Не удается получить доступ к сайту
Сайт xxx.ru не позволяет установить соединение.
Попробуйте сделать следующее:
Проверьте подключение к Интернету.
Проверьте настройки прокси-сервера и брандмауэра.
ERR_CONNECTION_REFUSED
Подозрение упало на то что не стартанул NGINX
пробуем стартнуть NGINX
Код
systemctl start nginx
получаю такой ответ
Код
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
проверяю статус сервиса
Код
systemctl status nginx.service
получаю такой ответ
Код
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2023-04-23 22:47:42 MSK; 59s ago
Docs: http://nginx.org/en/docs/
Process: 3460 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
Apr 23 22:47:42 xxx.ru systemd[1]: Starting nginx - high performance web server...
Apr 23 22:47:42 xxx.ru nginx[3460]: nginx: [emerg] invalid value "TLSv1.3" in /etc/nginx/bx/conf/ssl-push.conf:11
Apr 23 22:47:42 xxx.ru nginx[3460]: nginx: configuration file /etc/nginx/nginx.conf test failed
Apr 23 22:47:42 xxx.ru systemd[1]: nginx.service: control process exited, code=exited status=1
Apr 23 22:47:42 xxx.ru systemd[1]: Failed to start nginx - high performance web server.
Apr 23 22:47:42 xxx.ru systemd[1]: Unit nginx.service entered failed state.
Apr 23 22:47:42 xxx.ru systemd[1]: nginx.service failed.
Выполнил проверку конфигов NGINX командой nginx -t
В ответе получил вывод ошибки
Код
nginx: [emerg] invalid value "TLSv1.3" in /etc/nginx/bx/conf/ssl-push.conf:11
nginx: configuration file /etc/nginx/nginx.conf test failed
закомментировал все директивы в файле /etc/nginx/bx/conf/ssl-push.conf:11 после чего стартанул NGINX командой
Код
systemctl start nginx
проверил статус
Код
systemctl status nginx.service
в ответе получил желанный active [running]
Код
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-04-23 23:17:48 MSK; 23min ago
Docs: http://nginx.org/en/docs/
Process: 1244 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Process: 1185 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 1313 (nginx)
CGroup: /system.slice/nginx.service
├─1313 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
├─1322 nginx: worker process
├─1323 nginx: worker process
├─1324 nginx: worker process
├─1325 nginx: worker process
├─1326 nginx: worker process
├─1327 nginx: worker process
├─1328 nginx: worker process
└─1329 nginx: worker process
Apr 23 23:17:48 art-riseproject.ru systemd[1]: Starting nginx - high performance web server...
Apr 23 23:17:48 art-riseproject.ru nginx[1185]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 23 23:17:48 art-riseproject.ru nginx[1185]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 23 23:17:48 art-riseproject.ru systemd[1]: Failed to read PID from file /var/run/nginx.pid: Invalid argument
Apr 23 23:17:48 art-riseproject.ru systemd[1]: Started nginx - high performance web server.
Здравствуйте, подскажите как же можно подключится к БД проекта на виртуальной машине, установленной на ПК, на Oracle VM VirtualBox? Машина доступна из браузера, IP и DNS настроены. Но вот как подключится к БД сайта который я на ней восстановил из бекапа, из MySQL Workbench не могу понять. Пароль MySQL root пользователя установлен в VMBitrix, т.е нужно пояснение что вводить в настройках соединения... Пробовал IP на котором VMBitrix 192.168.0.110 и логин root с паролем, но вылетают ошибки...
написал: ну смысл я думаю Вы уже поняли:в кеше по сути две переменные (видно на вашем скрине VARS) arResult + переменная отвечающая за сам шаблон (тут не важно что именно, этим Вы не порулите)в шаблоне для построения html кода может использоваться очень много данных из arResult, которые по факту дальше не нужны - вот их и "рубят" с помощью SetResultCacheKeys
Цитата
написал: да, если Вы описали все-все условия, то вполне такое может быть Не забываем, что имеем в виду гипотетическую ситуацию.Вы это можете проделать самостоятельно - передать пустой массив в метод для кеширования ключей. Посмотрите, что попадет в кеш.
Всем спасибо за помощь! Тогда делаю вывод что в SetResultCacheKeys определяю то что нужно в не кешируемой части (component.php, component_epilog.php), а все что лишнее добавляется в файл битриксом (на что я не могу повлиять) я не беру в счет что это будет ошибкой.
написал: потом смотрим, что нам потребуется в component_epilog.php - и пихаем это в SetResultCacheKeys()
так я это сделал $this->SetResultCacheKeys(array('ELEMENT_CNT', 'PRICE_MIN', 'PRICE_MAX')); но в файле кеша все равно в сериализованном коде присутствует куча каких то данных "левых" (красным). Вот откуда они там, должны они там быть, правильно это или нет, как я могу это понять сам?
написал: Если Вы смотрели видео - там наглядно демонстрируют, как посмотреть данные непосредственно в кеше (сам файл).
конечно смотрел, но там показывают только "не правильный" файл кеша, до применения SetResultCacheKeys, а правильный который должен быть (и будет правильным на экзамене) нет... Я применяю SetResultCacheKeys но вижу что там все равно в сериализованном массиве есть данные, ключи которых я не указывал в SetResultCacheKeys. По этому возникают эти вопросы, вы не думайте что я эксперименты не провожу... Хочется полностью во всех нюансах разобраться что бы не было никаких неосознанных моментов "загадок". Спасибо за участие!
написал: PS: попробуйте пересоздать кеш (сделать это вне режима правки). Это касается приведенного Вами фрагмента
попробовал
1)указал только нужные ключи $this->SetResultCacheKeys(array('ELEMENT_CNT', 'PRICE_MIN', 'PRICE_MAX')); 2) удалил весь кеш 3) открыл станицу с компонентом в режиме инкогнито 4) открыл новый созданный файл кеша, и да там данных стало меньше, НО там все равно присутствуют те данные в (сериализованном массиве "templateCachedData") которые я не указывал в SetResultCacheKeys! Это нормально или нет? Чем это объясняется, что то с этим нужно делать или нет?
написал: Готовых решений мы не даем, это часть подготовки к экзамену, которую кандидат должен сделать самостоятельно.В записи вебинара все есть, она не первый год существует и помогла уже не одному слушателю, по отзывам, подготовиться.
Я и не просил вас дать готового решения, мой второй вопрос, задан по ситуации которая в общем может быть в "жизни", но ее скорее всего нет в заданиях на экзамене. Какой тут может быть секрет не понимаю...
И в видео с 50:27 говорится "У нас есть огромное правило, так нельзя оставлять" https://youtu.be/KC6WcgaEWt4?t=3027 так это что получается, нужно делать вот такой вызов $this->setResultCacheKeys(array()); или что? Может же быть ситуация что компонент ничего не использует в некешируемой части... (component_epilog.php).
и наверное дополню:
если компонент по умолчанию сохраняет в кеш весь $arResult (для обр. совместимости), то что я должен сделать, если мне не нужны никакие данные в не кешируемой части (component_epilog.php и component.php)? Допустим, к примеру не надо ни заголовков устанавливать ни AddViewContent и т.п? Вот так вызвать $this->setResultCacheKeys(array()); ?
У вас в видео этот момент не освещается, но ситуация имеет место быть в жизни, разве нет? Так вот, как я могу самостоятельно понять, что нужно делать в такой ситуации? Только вы можете сказать, как это должно быть сделано правильно, по вашим правилам....
И в видео с 50:27 говорится "У нас есть огромное правило, так нельзя оставлять" https://youtu.be/KC6WcgaEWt4?t=3027 так это что получается, нужно делать вот такой вызов $this->setResultCacheKeys(array()); или что? Может же быть ситуация что компонент ничего не использует в некешируемой части... (component_epilog.php).
Не могу понять эти 2 момента... Не сдал экзамен из-за ошибки связанной с этим. Просьба - дайте пожалуйста прямые ответы на эти вопросы, они заданы конкретно и точно...
написал: Вопрос был в другом - в том что в задании 102 вылезают новости из задания 97, в которых по заданию 102 не указывается что вводить в доп. поля "Название на английском", "Анонс на английском". Или вы не понимаете вопроса? Прочтите пожалуйста его еще раз...
боюсь, вопрос непонятен уточните пожалуста, конкретно
- какое задание, из какого билета (имеются в виду задания для подготовки) - какой именно вопрос
написал: Здравствуйте, вопрос по заданию второго билета [ex2-102] там получается что выводятся тестовые новости из предыдущего задания [ex2-97] будет ли такое отображение считаться верным, или как быть что требуется с этими тремя новостями тестовыми сделать?
в задании дан пример реализации переключателя там есть и новости
не понял ничего из вашего ответа... В смысле "там есть и новости" ? Оба задания предполагают работу над "Новости", это и так понятно. Вопрос был в другом - в том что в задании 102 вылезают новости из задания 97, в которых по заданию 102 не указывается что вводить в доп. поля "Название на английском", "Анонс на английском". Или вы не понимаете вопроса? Прочтите пожалуйста его еще раз...
Здравствуйте, вопрос по заданию второго билета [ex2-102] там получается что выводятся тестовые новости из предыдущего задания [ex2-97] будет ли такое отображение считаться верным, или как быть что требуется с этими тремя новостями тестовыми сделать?