Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #61 (permalink)  
Старый 09.02.2018, 03:56
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

laimas,

вот тут ошибка 403


у хостера спросил про права и нули жду ответа

Последний раз редактировалось spinastr, 09.02.2018 в 04:31.
Ответить с цитированием
  #62 (permalink)  
Старый 09.02.2018, 04:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

3) и важное

Почему закрытая папка с запретом на внешний доступ? Потому, что файлы конфигураций, системные/служебные файлы не являются публичными. Если разрешить вызов (значит его запуск) файла current.php браузером, то любой желающий может генерировать запросы к ЦБ, что может закончится плачевно - ЦБ заблокирует доступ к своим ресурсам для вашего сайта.

Можно вообще разрешить доступ к этому сайту только одному домену - сайту который у вас и выводит курс на странице. Это можно сделать также посредством .htaccess, но который будет располагаться в корне документов (еще раз прочесть 1), чтобы вспомнить что это такое). В этом .htaccess можно указать IP сайта который выводит курс. Все. Всем остальным будет отлуп, включая и поисковых роботов, им там тоже делать нечего. Но это для справки и делать не обязательно, просто закроем папку current.

Но нужно выяснить - на хосте будут ли исполняться РНР скрипты из закрытой папки. Это только в техподдержке можно узнать. Если запускаются, то все ОК, и вся структура на сайте будет такая как описано выше. Но если нет, то в папке current будут только два файла: .htaccess и файл с курсами, который будет записывать скрипт - current.json.

А файл current.php придется вынести из папки в корень документов. То есть структура на сервере будет такая:

current
    .htaccess
    current.json
current.php
index.php


Но в этом случае файл current.php становится доступным для внешнего доступа, то есть не проблема его запускать в браузере по адресу http://domain/current.php. Чтобы этого не допустить, в этом случае можно разрешить запуск скрипта в этом файле только если он будет запущен из под командной строки, что и будет в случае запуска его по cron. Для этого код файла current.php немного дополнить, поместив код в условие if(PHP_SAPI == 'cli') { тут код }, о чем я писал ранее. В коде current.php также нужно будет заменить путь записываемого файла, вот эта строка file_put_contents('current.json', должна быть такой - file_put_contents('current/current.json',



При этом для php скриптов доступ к закрытой папке никак не ограничен так как они выполняются от имени владельца.

Понятно что нужно выяснить и что сделать если ...?

Последний раз редактировалось laimas, 09.02.2018 в 05:44.
Ответить с цитированием
  #63 (permalink)  
Старый 09.02.2018, 04:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от spinastr
вот тут ошибка 403
http://h116641.s08.test-hf.su/current/index.php
Кто будет читать пост https://javascript.ru/forum/477344-post56.html и вникать что и как? Ну сколько можно говорить об этом бедном индексном файле и где он должен быть? С какого хрена он оказался в папке current?

Вот адрес это должно быть адресом сайта http://h116641.s08.test-hf.su/index.php или просто http://h116641.s08.test-hf.su/. А доступ к http://h116641.s08.test-hf.su/current/ и должен возвращать 403! Читать https://javascript.ru/forum/showpost...0&postcount=62
Ответить с цитированием
  #64 (permalink)  
Старый 09.02.2018, 04:07
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

Вот сделал так

https://pp.userapi.com/c840226/v8402...zHVvKcS8ns.jpg


на хостинге папка www там файл index.php. И папка current с двумя файлами ( .htaccess и current.php)

ссылка http://h116641.s08.test-hf.su/index.php - в корне
Ответить с цитированием
  #65 (permalink)  
Старый 09.02.2018, 04:15
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

Всё верно сделал никто не сможет поменять что то? так как файл current.php закрыт .htaccess А index.php в корне?

Теперь что делать ждать ответ тех поддержки?
Ответить с цитированием
  #66 (permalink)  
Старый 09.02.2018, 04:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

4)

Я не буду разбираться что есть что среди ваших доменов, какой РНР, какой хочет курс у РНР. Я напишу условно, далее сами подставляйте реальное в код.

Пусть домен (сайт) запрашивающий курс валюты у ЦБ, это http://domain_1
Домен который выводит курс на страницу и которому он и нужен, это домен http://domain_2

Тогда код индексного файла будет таким:

<?
header('Access-Control-Allow-Origin: http://domain_2');
header('Vary: Origin');
header('Access-Control-Allow-Methods: GET');
header('Content-type: application/json; charset=utf-8');
exit(file_get_contents('current/current.json'));
?>


Я убрал проверку наличия файла курса, вот эту строку:
exit(file_exists('current/current.json') ? file_get_contents(current/current.json) : json_encode(false));

Приготовьте такой файл (current.json) и поместите его в папку current. Это можно сделать запустив и current.php, но не хочу еще кучи долгих пояснений, поэтому возьмите этот текст как исходный:

{"current":{"date":"8.2.2018","value":56.95,"rate" :"▼"},"previous":{"date":"7.2.2018","value":57.2 2,"rate":"▲"}}

В браузере запросить курс за три дня http://www.cbr.ru/scripts/XML_dynami...L_NM_RQ=R01235, указав в параметрах: date_req1=минус два дня от текущей даты, date_req2=текущую дату, в формате dd/mm/YYYY. Ручками все просчитать, заменив в тексте выше, и этот текст сохранить в папке current под именем current.json.

На клиенте Ajax запрос будет к http://domain_1/, а проверка пришел ли ответ будет уже не в плане есть ли уже курс на http://domain_1, он гарантированно есть, а в плане вернул ли вообще сервер ответ (ошибки и т.п.).

Последний раз редактировалось laimas, 09.02.2018 в 04:31.
Ответить с цитированием
  #67 (permalink)  
Старый 09.02.2018, 04:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от spinastr
Всё верно сделал никто не сможет поменять что то? так как файл current.php закрыт .htaccess А index.php в корне?
Да.

Сообщение от spinastr
Теперь что делать ждать ответ тех поддержки?
Выяснить все, что описано здесь и сделать то, что там написано в зависимости от ответа техподдержки.
Ответить с цитированием
  #68 (permalink)  
Старый 09.02.2018, 04:43
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

индекс файл изменил, подставил доммен сайта.

создать пустой файл (current.json) в блокноте в utf-8 и загрузить в (current)?


Дальше это куда?

{"current":{"date":"8.2.2018","value":56.95,"ra te" :"▼"},"previous":{"date":"7.2.2018","value":5 7.2 2,"rate":"▲"}}

Я не знаю js и php как что дальше запрашивать не знаю
Ответить с цитированием
  #69 (permalink)  
Старый 09.02.2018, 04:45
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

Мой хостинг не забъётся от запросов? у меня на хостинге всего 50 мб
Ответить с цитированием
  #70 (permalink)  
Старый 09.02.2018, 04:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Дополнение к посту https://javascript.ru/forum/showpost...4&postcount=66

Можно приготовить файл current.josn и не ручками. Хороший хост не только предоставляет услуги планировщика, но и имеет хороший сервис по нему. Если в число таких сервисов входит и возможность запуска планировщика в ручную, нужно просто запустить его, не дожидаясь 0:00 часов.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод контента в модалном окне, чтобы к нему можно было обратиться по ссылке decadent42 jQuery 3 11.04.2016 15:12
Преключатель валют alexmixaylov jQuery 7 21.10.2014 13:10
Проблема с выводом курса валют bubanay Элементы интерфейса 0 20.12.2013 20:42
Вывод переменных MasterHrust Javascript под браузер 4 03.08.2011 15:41
Вывод данных в Друпал 6 из MySQL, небольшая работа torquemada Работа 1 22.05.2011 17:05