laimas,
index.php? должен быть в пути? |
Раньше было написано так
Надо удостовериться, что данные в нем меняются, то есть файл current.php я думал этот файл в планировщик прописать. а теперь запутался нужно index.php прописать? |
Цитата:
Перечитать этот пост, где я специально рассказывал, что такое индексный файл. Перечитать этот пост, где я рассказывал о вопросах связанных с получением курса валюты с ЦБ и почему нужна закрытая папка. Ответить на вопрос - какой файл и по какому пути должен быть указан в планировщике задач? |
laimas,
вот от current.php он находится в закрытом каталоге что бы его не открыли и не могли генерировать. и скрипт обращается только к моему домену что бы нельзя было запускать с других доменов. Верно? |
Цитата:
|
|
Цитата:
|
Сделано, что было описано тут - https://javascript.ru/forum/477434-post100.html?
В этой строке в индексном файле домен указан верно? header('Access-Control-Allow-Origin: http://domain_2'); А в JS в этой строке домен указан верно? $.getJSON("http://domain_1", function(data) { |
laimas,
теперь у меня на сайте и на домене должен курс поменяться в 0:00 ? |
Цитата:
wget -O /dev/null "http://имя домена/current/current.php" |
laimas,
https://pp.userapi.com/c840427/v8404...-HKT_Q-TXA.jpg https://pp.userapi.com/c840427/v8404...qWb0Jgc4mg.jpg Верно? А тут адрес моего второго сайта? header('Access-Control-Allow-Origin: http://domain_2'); |
Цитата:
|
А тут адрес моего второго сайта?
header('Access-Control-Allow-Origin: http://domain_2'); а то уже скоро 0:00 |
laimas,
уже 23:45 верно всё? |
|
Что не так то?
страница моего первого сайта где будет курс <style> /*общие правила для элементов отображающих курс*/ span[class|=rate] { display: block; text-align: center; padding: 3px 0; color: #000; font-weight: bold; } /*правила для знака доллара*/ span[class|=rate]:before { margin-right: 10px; content: "$"; } /*общие правила для стрелок*/ span[class|=rate]:after { margin-left: 10px; } /*правила для стрелки вверх*/ .rate-1:after { content: "▲"; color: #BC0101; } /*правила для стрелки вниз*/ .rate-0:after { content: "▼"; color: #089301; } </style> <div id="usd" class=""> <span id="current" class="rate-0"></span> <span id="previous" class="rate-0"></span> </div> <script> $.getJSON("http://h116641.s08.test-hf.su/", function(data) { $.each(data, function(k, o) { $('#'+k).text(o.value).attr('class', function() { return this.className.replace(/\d/, o.rate) }) }) }); </script> index.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')); ?> .htaccess <Files *> Deny from all </Files> current.json {"current":{"date":"8.2.2018","value":56.95,"rate" :"▼"},"previous":{"date":"7.2.2018","value":57.2 2,"rate":"▲"}} current.php <? $dir = dirname(__FILE__); chdir($dir); libxml_use_internal_errors(); if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.date('d/m/Y', strtotime('-2 day')).'&date_req2='.date('d/m/Y').'&VAL_NM_RQ=R01235')) { $last = round((float)str_replace(',', '.', current($xml->Record[0]->Value)), 2); $usd_prev = round((float)str_replace(',', '.', current($xml->Record[1]->Value)), 2); $usd_curr = round((float)str_replace(',', '.', current($xml->Record[2]->Value)), 2); chmod($dir, 0777); //уточнить у хостера file_put_contents('current.json', json_encode([ 'current' => [ 'date' => date('j.n.Y'), 'value' => $usd_curr, 'rate' => intval($usd_curr > $usd_prev) ], 'previous' => [ 'date' => date('j.n.Y', strtotime('-1 day')), 'value' => $usd_prev, 'rate' => intval($usd_prev > $last) ] ], JSON_UNESCAPED_UNICODE) ); chmod($dir, 0644); //уточнить у хостера } ?> |
В этом файле current.json данные не изменились
|
когда в файле index.php прописано
exit(file_get_contents('current/current.json')); то отображается его содержимое. А когда в index.php прописан полный путь exit(file_get_contents('http://h116641.s08.test-hf.su/current/current.json')); то в этом файле ничего не видно пусто |
Цитата:
|
Цитата:
|
laimas,
скрипт удалил второй, крон на других скриптах работает хорошо. Видно эту проблему никому не решить, очень много заморочек |
Цитата:
#Deny from all Сохраните файл. Примечание: этот файл вообще может иметь только эту одну строку, это будет равнозначно <Files *> Deny from all </Files> Теперь запустить скрипт запроса к ЦБ браузером - http:/domain_name/current/current.php. Если будут ошибки, то они будут выведены в бразуер (правда в зависимости от настроек РНР на сервере не все их уровни могут выведены, но и это не проблема, можно определить их вывод на время теста). Причин ошибок, которые связаны только с сервером конкретным, может только две: 1) Права на папку, то есть в строках задания прав, о чем ранее говорилось: chmod($dir, 0777); и chmod($dir, 0644); Решается обращением в техподдержку. 2) На сервере РНР версии ниже 5.4. В этом случае будет ошибка по поводу объявления массива - []. В этом случае код записи полученных курсов в файл current.json переписать так: file_put_contents('current.json', json_encode( array( 'current' => array( 'date' => date('j.n.Y'), 'value' => $usd_curr, 'rate' => intval($usd_curr > $usd_prev) ), 'previous' => array( 'date' => date('j.n.Y', strtotime('-1 day')), 'value' => $usd_prev, 'rate' => intval($usd_prev > $last) ) )) ); Все, более в коде файла current.php нет ничего, что вызывало бы проблемы. JSON_UNESCAPED_UNICODE - это константа, которая указывает не кодировать UTF как \хххх, а представлять как есть. Это было существенно для передачи стрелок в json, чтобы видеть их, а не юникод. Данная константа функции json_encode доступна в РНР с версии 5.4. Но ее наличие и в ранних версиях проблем у функции json_encode не вызовет - значение неопределенной константы равно NULL. Так как в последнем варианте сервер возвращает не символы стрелок, а integer и jsjon не имеет строк на русском, то наличие константы не нужно и она удалена. Сделайте изменения указанные выше в коде current.php и опять запустите его браузером. Файл current.json изменяется, принимает курс от ЦБ? Удалите решетку в .htaccess у Deny from all и сохраните файл, опять закрыв папку current. Все, более никаких проблем с кодом быть не может. Далее проблемы могут быть только с cron. |
laimas,
Версия php ![]() Запуск через браузер дал просто белый результат, всё пусто. |
не могу теперь вообще зайти в папку current
Пишет:ошибка доступа скачал папку, она пустая и удалить папку current нельзя |
Файлы папки. Инструкция в .htaccess уже закомментирована, можно вызывать файл из под браузера.
|
laimas,
как удалить ту папку теперь? Вдруг весь сервер полетит? |
Нужно удалить ту папку, не будет совпадать путь
|
Цитата:
Цитата:
Не надо ничего выдумывать. Загрузите файлы в папку и пробуйте. Если не будет работать, попробуйте заменить права папки на 700 (файлы папки тоже должны иметь эти права), в current.php строку chmod($dir, 0644); заменить на chmod($dir, 0700); И попробуйте с этими правами. |
laimas,
а что стой папкой делать, current? Я уже в поддержку написал, в неё зайти нельзя, удалить нельзя. Просто ваши файлы залить? |
Цитата:
|
Поместите в корень документов файл с этим кодом:
<? chmod('current', 0700); ?> назвав его как угодно, например f.php и запустите его из под браузера http://domain/a.php Будет ли после этого доступна папка? |
Каталог удалите не могу права доступа нашёл
|
laimas,
я скачал его и написано что размер 0 |
Цитата:
|
Цитата:
|
Востановил папку бекапом!
Так теперь что делать? |
Права доступа папки
![]() |
Цитата:
Далее разрешить доступ к папке (как было написано ранее) и запустить current.php браузером. Файл который в корневой каталог помещался (f.php) удалить. |
Не 755, а 700.
|
Закачал ваши файлы что дальше?
|
Часовой пояс GMT +3, время: 06:33. |