Какая ошибка вывода в Json?
Вывожу данные статистики:
PHP <?PHP $i = parse_ini_string(file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')); file_put_contents('st.json',json_encode($i)); ?> JSON {"LI_site":"devaka.ru","LI_month_hit":"109891","LI_month_vis":"49790","LI_week_hit":"26620","LI_week_vis":"14228","LI_day_hit":"5207","LI_day_vis":"3393","LI_today_hit":"335","LI_today_vis":"232","LI_online_hit":"11","LI_online_vis":"6"} HTML <div class="lives"></div> <script> $.getJSON(".s08.test-hf.su/st.json", function(data) { $('.lives').html(LI_site); }); </script> Подскажите что тут неверно? Почему не работает? |
Цитата:
file_put_contents('st.json',json_encode($i)); - это зачем? $.getJSON должен обращаться к файлу сценария, который делает запрос к другому домену и сразу возвращает нужное: <? if($f = file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')) { exit(json_encode(parse_ini_string($f))); } else exit(json_encode(['error'=>'Text error.'])); |
laimas,
На самом сайте у меня нету PHP и нужно через json выводить со стороннего хостинга. Добавил ваш код в php? а дальше что делать я в js и php не особо разбираюсь. Подскажите пожалуйста? |
Ничего не делать, изменить url запроса в $.getJSON.
|
laimas,
Подскажите как игде изменить в js или php я написал так и неработает <div class="lives"></div> <script> $.getJSON("http://h116641.s08.test-hf.su/st.php", function(data) { $('.lives').html(data.LI_site); }); </script> |
Если http://h116641.s08.test-hf.su/st.php, это файл выполняющий указанный код, то все должно работать. Ошибки могут быть только на клиенте.
PS. Конечно, если это запрашивает также домен h116641.s08.test-hf.su. В противном случае нужно разрешение, перечитывайте тему о курсах валют, так об этом говорилось - о заголовках, которые должен отдавать домен h116641.s08.test-hf.su. |
laimas,
У меня сайт на юкоз там нету php, как можно перевести php в json и оттуда через js вывести данные в div? |
Читайте постскриптум выше.
|
laimas,
В этом домене на эти файлы ещё не ставил ограничения как с курсом Я всю ночь читал и уже забыл, подскажите? Как вывести? Почему я делал через json? Цитата:
Про заголовки, есть такой фаил index.php <?php header('Access-Control-Allow-Origin: Мой сайт'); header('Vary: Origin'); header('Access-Control-Allow-Methods: GET'); header('Content-type: application/json; charset=utf-8'); exit(file_get_contents('current/current.json')); ?> |
Если домен h116641.s08.test-hf.su отдает и курсы валют и прочую информацию, то разрешение для домена ее запрашивающую нужно поместить в файл .htaccess, который размещен в корне документов на домене h116641.s08.test-hf.su. Эти строки нужно поместить в этот файл:
Header add Access-Control-Allow-Origin "домен вашего сайта" Header add Vary "Origin" Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" Header add Access-Control-Allow-Methods "GET, POST" Из index.php нужно удалить передачу этих заголовков, то есть в нем должно быть: <?php header('Content-type: application/json; charset=utf-8'); exit(file_get_contents('current/current.json')); ?> Передавать заголовок header('Content-type: application/json; charset=utf-8'); должен и файл отдающий другую информацию в формате JSON. |
<?php header('Content-type: application/json; charset=utf-8'); exit(file_get_contents('current/current.json')); ?> Программист из темы курса не велел там ничего удалять. В файл .htaccess лежит в каталоге отдельном, содержит (Deny from all) в корне хоста создал два файла st.php и st.json В корне есть и файл index.php - я так понял он не разрешает вывести данные? Там нужно стереть запрет? А можно в него что то дописать что бы он разрешал вывод статистики? И уменя нету php нужно через json |
Мне нужно вывести хиты на сайт, вот тут статья
это пример вот оттуда нужно вывести число может есть более простые способы? LI_site = 'mexboy.ru'; LI_month_hit = 5313; LI_month_vis = 3886; LI_week_hit = 1096; LI_week_vis = 885; LI_day_hit = 172; LI_day_vis = 144; LI_today_hit = 89; LI_today_vis = 74; LI_online_hit = 4; LI_online_vis = 4; |
Цитата:
Цитата:
Цитата:
|
laimas,
Извините я запутался! Скажите мне всё по порядку: 1. Какие файлы создать? 2. Какие коды в них должны быть? 3. JS который выводит данные на мой сайт? Помогите, я так написал чтобы больше не было путаницы. __________________________________________________ ____ В корне хоста создал папку: st В папке два файла st.php и st.json Содержимое: st.php <? if($f = file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')) { exit(json_encode(parse_ini_string($f))); } else exit(json_encode(['error'=>'Text error.'])); ?> st.json пусто И js на моём сайте: <div class="lives"></div> <script> $.getJSON("http://h116641.s08.test-hf.su/st/st.php", function(data) { $('.lives').html(data.LI_site); }); </script> Что по порядку нужно куда дописать и сделать? |
Почему не работает?
Тут получается json http://h116641.s08.test-hf.su/st/st.php У меня на сайте скрипт php не работает. ![]() |
Цитата:
Первая потребность иметь домен с РНР поддержкой возникла из-за необходимости получения курса валют. А так как курс валют изменяется раз в сутки, то и запрос курса в ЦБ делается один раз. Но ваш сайт может запрашивать этот курс многократно. А значит и возникает потребность хранения полученных курсов на домене h116641.s08.test-hf.su, что и делается их записью в файл в формате json. Теперь потребовалось получение какой-то статистки. Но эти данные могут изменяться с течением времени. А это означает, что их запрос на домене counter.yadro.ru предполагает сразу возврат их вашему сайту. Отсюда вопрос - нужно ли сохранять их на домене h116641.s08.test-hf.su? |
Цитата:
Я решил сделать также как в курсе валют, нашёл php вставил перевёл в json записал в json. Скриптом старался вытянуть но не получается. Так то да данные готовые: Нужно просто число хитов. Это число хотел вставить в панель или вверх сайта. Это нужно что бы пользователи видели значимость сайта. Что бы они видели сколько раз на него зашли в сутки. так как сайт небольшого города и многие считают сайт не популярным. Все привыкли к соц сетям где написано количество подписчиков. Вот я и решил вывести количество общих просмотров за день. На сайте у меня чисто (целевая) местная аудитория, раскрутками посещаемости не занимаюсь. Можно как то вывести без хостинга? Сразу в блок? По ссылке всё само обновляется. |
Цитата:
Домен h116641.s08.test-hf.su обслуживает только ваш сайт и для этого передает соответствующие заголовки. Пока вы не перенесете их из индексного файла в .htaccess никакой статистки вы не получите. Никаких st.json не нужно, а файл st.php должен получать и отдавать клиенту только значение хитов (каких именно не знаю, там и за месяц, и за неделю, и за сутки...): <?php if($f = file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')) { exit(parse_ini_string($f)['LI_month_hit']); //это хиты за месяц, указывайте сами какие нужны } ?> Клиент получает: $(".lives").load("http://h116641.s08.test-hf.su/st/st.php"); |
laimas,
Выше немного не понял! Получилось так http://h116641.s08.test-hf.su/st/st.php Это у меня на сайте <div class="lives"></div> <script> $(".lives").load("http://h116641.s08.test-hf.su/st/st.php"); </script> Но говорю ещё раз, у меня не будет работать скрипт с*.php Данные не выводятся |
Цитата:
|
Цитата:
Сделайте то, о чем говорилось выше и все будет работать. Все, больше об этом сказать нечего. |
laimas,
Цитата:
|
Цитата:
|
laimas,
Я верно понимаю? в файле htaccess который находится в каталоге с скриптом курса валют стереть Deny from all и написать: Header add Access-Control-Allow-Origin "домен вашего сайта" Header add Vary "Origin" Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" Header add Access-Control-Allow-Methods "GET, POST" в файле index.php всё сереть и написать так: <?php header('Content-type: application/json; charset=utf-8'); exit(file_get_contents('current/current.json')); ?> 1. Всё верно? 2. Это не повлияет на работу скрипта курса валют? Сейчас в index.php написано так <?php header('Access-Control-Allow-Origin: сайт.ru'); header('Vary: Origin'); header('Access-Control-Allow-Methods: GET'); header('Content-type: application/json; charset=utf-8'); exit(file_get_contents('current/current.json')); ?> |
Цитата:
Оставьте в покое .htaccess в папке current, его задача закрыть эту папку от прямого доступа. Неужели не понятно из сказанного, что нужно создать в корне документов новый файл .htaccess, в который поместить указанное? Ну ладно вы не знаете языка и изучать не хотите, но читать то вы можете. А надо еще и внимательно читать. |
laimas,
Я понял в папке st где находится st.php создать .htaccess с вашим содержимым который написано выше? И всё будет работать? Верно? |
Цитата:
|
В корне документа создать два файла st.php и .htaccess ?
|
Цитата:
|
Всё работает, поставил домен своего сайта и не работает почему то?
|
laimas,
Спасибо разобрался благодаря вашей помощи! Всё работает. Скажите эти данные не нужно добавлять в крон? Всё автоматически обновляется? |
Если я хочу вывести несколько данных?
exit(parse_ini_string($f)['LI_today_hit, LI_today_hit']); Нужно так делать? Через запятую LI_today_hit, LI_today_hit |
Цитата:
Цитата:
Получайте как раньше, и запрашивайте методом getJSON. |
laimas,
У меня пропал курс доллара? Почему? Скрипты на сайте стоят так <script> //именно такое и получит Ajax $.getJSON("http://h116641.s08.test-hf.su/", function(data) { $.each(data, function(k, o) { $.each(o, function(a, r) { $('.' + k + '.' + a).html(a == 'date' ? r : { 'USD': '$', 'EUR': '€' }[a] + ' ' + r.value.toFixed(2) + ' <b class=' + ['', 'down', 'up'][r.rate] + '>' + ['', '▼', '▲'][r.rate] + '</b>').attr('title', function() { return $(this).hasClass('title') ? data[k].date : '' }) }) }); }); </script> <!-- /курс доллара--> <!-- Количество хитов--> <script> $(".lives").load("http://h116641.s08.test-hf.su/st.php"); </script> <!-- /Количество хитов--> если это стереть то курс появляется Header add Access-Control-Allow-Origin "сайт.ru" Header add Vary "Origin" Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" Header add Access-Control-Allow-Methods "GET, POST" может всё перенести в отдельный каталог, скрипт хитов? |
Перенёс всё в другой каталог не работает, что делать?
|
дописал в файл строки st.php и удалил .htaccess, в корне
<?php header('Access-Control-Allow-Origin: http://мой.ru'); header('Vary: Origin'); header('Access-Control-Allow-Methods: GET'); header('Content-type: application/json; charset=utf-8'); if($f = file_get_contents('http://counter.yadro.ru/values?site=мой.ru')) { exit(parse_ini_string($f)['LI_today_hit']); //это хиты за месяц, указывайте сами какие нужны } |
Часовой пояс GMT +3, время: 20:32. |