timo-71

Рейтинг
63
Регистрация
19.09.2018
Nadejda:

Причем здесь Expires сессии? Если речь идет об Ошибке HTTP заголовка сервера

Может при том, что если первый раз, ( заходим без Cookie ) то

Array

(
[0] => HTTP/1.1 200 OK
[1] => Server: nginx
[2] => Date: Wed, 04 Sep 2019 19:25:59 GMT
[3] => Content-Type: text/html; charset=utf-8
[4] => Connection: close
[5] => X-Powered-By: PHP/7.1.32
[6] => Cache-Control: no-store, no-cache, must-revalidate
[7] => Pragma: no-cache
[8] => Expires: Mon, 09 Sep 2019 22:25:59 +0300
[9] => Set-Cookie: PHPSESSID=ce61e387ae90a8a82f49f5e954937492; path=/; secure; HttpOnly
[10] => Vary: Accept-Encoding
)

А если второй раз, вот так:


$default = stream_context_set_default( [ 'http'=>[ 'method'=>"GET",
'header'=>"Cookie: PHPSESSID=ce61e387ae90a8a82f49f5e954937492"
]
] );
print_r(get_headers($url)); die;

то ответ может быть другим

Array

(
[0] => HTTP/1.1 200 OK
[1] => Server: nginx
[2] => Date: Wed, 04 Sep 2019 19:32:10 GMT
[3] => Content-Type: text/html; charset=utf-8
[4] => Connection: close
[5] => X-Powered-By: PHP/7.1.32
[6] => Cache-Control: no-store, no-cache, must-revalidate
[7] => Pragma: no-cache
[8] => Expires: Mon, 09 Sep 2019 22:32:10 +0300
[9] => Vary: Accept-Encoding
)

Смысл, иногда возникает, в том, что если нет сессии (хз кто, бот какой может), то Expires = time() + 86400*5 и можно закешировать,

а если есть, то Expires заведомо в прошлом (реальный юзер, а документ динамический), чтобы запретить кеширование браузером. Но тут, все равно Expires = time() + 86400*5 (видимо использовали советы 😂) и юзер может получить документ из кеша браузера. И несмотря на то что он только добавил сообщение на сайт может его не увидеть, пока кнтрл-ф5 не нажмет. А если это какой ajax и документ с таким урлом уже вызывался и Expires еще не вышел?

богоносец:
Но у отдельных несознательных корпораций выявляются такие недоработки (как в 737 max), которые заставляют реальных пилотов безуспешно бороться с автоматом (не понимая бесполезности)... автомат выигрывает, и появляются инфоповоды.

Там все на боинг повесили, но и к пилотам как выясняется вопросов куча:

Недавно русская служба BBC опубликовала материал “Что случилось в кабине “Боинга”? После слов ‘пилоты сделали все, что могли’ я не смог заставить себя читать дальше эту статью. Так-то они сделали всё... чтобы убиться – это да. Вот с этого надо было начинать. (с) denokan

Кстати, рекомендую этот журнал - Денис Окань, являясь пилотом Б737, в т.ч. max, регулярно публикует свои мысли по тем или иным событиям в авиации. Есть и Ютуб .

Да и у А320 НЕО, выясняется, что те же самые проблемы


denokan
Aug. 7th, 2019 05:47 am (UTC)
Если обсуждаем NEO, там проблема в предельных значениях балансировки.
Могу скинуть бюллетень.
==

Неверно. Там проблема с тем, что при определенных обстоятельствах происходит то, что происходит с 737MAX при определенных обстоятельствах. И для временного решения этой проблемы издан бюллетень, ограничивающий диапазон эксплуатационных центровок.

Но вот проблему распознания неправильных действий пилота другим пилотом и противодействие этому - Аэрбас до сих пор не решил. И катастрофа А330 над океаном была не единственной, где один пилот тянул сайдстик на себя (сваливал самолет), а второй не мог понять, что происходит. Существующая процедура не сработала.

Чем это отличается от глючной работы датчика и связанной с этим MCAS?

Тем, что проблему MCAS в итоге решат, а мина, заложенная в философию сайдстиков, останется.

Что не удивительно, ведь и там (НЕО) и там (Макс) новые двигатели ЛЕАП увеличенного диаметра

donc:
Было немного психологически неуютно, еще и с ребенком

Я не такой смелый, тем более с ребенком. К новому всегда с опаской стоит подходить, пока не накоплена какая то статистика.

Что мы знаем?

Предварительный отчет

В котором:

1.18.2. Предыдущие случаи попадания молний на RRJ-95

16 раз - вероятность 1:17

1.18.3. Предыдущие случаи перехода в DIRECT MODE на RRJ-95

8 раз - вероятность 1:9

Все это умножаем на количество самолетов, их налет и :(

Боюсь все проблемы у этого самолета еще впереди, если экстраполировать на

ЗыЖ Сейчас и Аирбасов 320/18/19/21 не меньше боингов 737, если не больше.

Sitealert:
timo-71, это не про то. ;)
Это про редирект на www. Редиректов с site.com/ на site.com и с site.com на site.com/ - не бывает.
Для сервера все эти адреса - со слэшем. Это же элементарно. Корневой каталог сайта.

Да, зарапортовался. Позор на мою седую голову. Папка-файл попутал :(

а мне нужно без закрывающего слэша,

Ну вы блин даете.

print_r( get_headers('https://php.net') ); #без закрывающего слэша

Ответ

Array

(
[0] => HTTP/1.1 301 Moved Permanently #!!!!!!!!!!!!!
[1] => Server: myracloud
[2] => Date: Sat, 10 Aug 2019 20:51:28 GMT
[3] => Content-Type: text/html
[4] => Content-Length: 177
[5] => Connection: close
[6] => Location: https://www.php.net/ #!!!!!!!!!!!!!
[7] => HTTP/1.1 200 OK
[8] => Server: myracloud
[9] => Date: Sat, 10 Aug 2019 20:51:29 GMT
[10] => Content-Type: text/html; charset=utf-8
[11] => Connection: close
[12] => Last-Modified: Sat, 10 Aug 2019 20:10:09 GMT
[13] => Content-language: en
[14] => X-Frame-Options: SAMEORIGIN
[15] => Set-Cookie: COUNTRY=NA%2C*********; expires=Sat, 17-Aug-2019 20:51:29 GMT; Max-Age=604800; path=/; domain=.php.net
[16] => Set-Cookie: LAST_NEWS=1565470289; expires=Sun, 09-Aug-2020 20:51:29 GMT; Max-Age=31536000; path=/; domain=.php.net
[17] => Link: <https://www.php.net/index>; rel=shorturl
[18] => Expires: Sat, 10 Aug 2019 20:51:29 GMT
[19] => Cache-Control: max-age=0
)

Пардон, что вклинился в беседу, но тема важная для меня. Не о погоде, но геопозиция важна.

keepersheet:
Из трех баз

https://prnt.sc/oqmmag 3 из 3-х, MaxMind верно. Судя по

$reader = new Reader('GeoLite2-City.mmdb');

город определяется не платным решением (Downloadable Database: $100 for site license, includes first month of updates. Updates are available for $100 или $0.002 per query), тем не менее делает это хорошо. Резюме для меня: Базы обновлять надо (см. $_SERVER для того же самого IP внизу, где возраст базы пара-тройка месяцев )

Samail:
А там где нужно запросы делать, вот ту правильно: https://www.geoplugin.com/webservices/json

Тоже более-менее верно определяет https://extreme-ip-lookup.com/json. И вот этот http://ip-api.com/json

Samail:

Ну и Яндекс карты тоже .... tech.yandex.ru/maps/jsapi/doc/2.1/dg/concepts/geolocation-docpage

4-й вариант, на несколько десятков км в другую сторону. Но, в браузере где залогинен продолжительное время - точность десятки, край сотни метров.

Я в итоге остановился на следующем алгоритме:

const geoprovider = {

#key: [url, priority]
eil: ['https://extreme-ip-lookup.com/json/', .9],
geoplugin: ['https://www.geoplugin.com/webservices/json', .9],
ipapi: ['http://ip-api.com/json', .8],
geobytes: ['http://gd.geobytes.com/GetCityDetails', .2],
geoiplookup: ['https://json.geoiplookup.io/api', .2]
}

По одному перебираются (на каждый новый хит) и если нет в storage.objGet(), получаем json по урлу и если он валидный пишем storage.objSet( key, get_adres(json_res) ).

Как только откроется какая Яндекс карта на сайте, запишется 'ya_geo' в storage с приоритетом 1**

В итоге, получаем вероятностную оценку города.

Ну и GeoLite2-City, куда же без него с приоритетом как у Яндекса

Array

(
[SERVER_SOFTWARE] => nginx/1.16.0
[SCRIPT_NAME] => /index.php
[REQUEST_METHOD] => GET
[GEOIP_POST] => 422189
[GEOIP_LAT] => 55.0038
[GEOIP_LON] => 50.0549
[GEOIP_REGION] => Tatarstan
[GEOIP_CITY] => Chelny
[GEOIP_COUNTRY_NAME] => Russian Federation
[GEOIP_COUNTRY_CODE] => RU
[REQUEST_TIME] => 1565374544
)

Чуть порезанный $_SERVER, но заметьте, это 5 вариант геопозиции для моего IP с 2-3 месячными данными GeoLite2-City

**

function ya_geolocation() {

var yamaplink = 'https://api-maps.yandex.ru/2.1/?lang=ru_RU';
$.getScript( yamaplink, function( data, textStatus, jqxhr ) {
if(jqxhr.status==200) {
ymaps.ready(
function(){
var geoloc = ymaps.geolocation;
geoloc.get({
provider : 'yandex',
king : 'locality',
mapStateAutoApply: true
}).then(function (res) {
geolocation.ya = get_adres(res.geoObjects.get(0));
storage.objSet('ya_geo', geolocation.ya );
});
}
);
}
});
}
Это, вроде, пока работает без APIKEY

Некоторые данные в CODE вырезаны, приведены лишь для иллюстрации идеи

скрин из СМS modx evo при создании карточки товара. в эти строчки прописываю то, что писал выше. раньше не замечал, что некоторые строки несмотря на то, что я их заполняю нигде не появляются, как будто и не прописываю

Понятия не имею как работает СМS modx evo. Банально, но, всегда, изменение чего то в админке ведет к изменению в каком то хранилище. Или не ведет. Затем, когда надо показать их юзеру, данные оттуда достаются, если есть, шаблонизируются и показываются пользователю. Т.е. записали в базу

[css=>/assets/themes/def/css/custom.min.css]

если где то в шаблоне есть

<link rel="stylesheet" href="{{ css }}">

то это учтется в документе. Ну а на нет и суда нет.

Поэтому, нужно понять:

1) пишется это куда то или нет

2) достается это откуда то или нет

3) выводится это в шаблоне или нет.

Естественно, никто здесь на эти вопросы не ответит. Поэтому, к админу или какому другому специалисту.

В данном случае достаточно str_replace

echo str_replace("Поздравляем! Вы выиграли\n{coinCount} монет. Сегодня вы сможете получить ещё {number} монет.", '', $str);
mega94:
есть неправильный json который идет с парсера, как валидировать json с помощью php

json-last-error

Там ошибка простая - ключ data для php в кавычках должен быть

{ "data": ..... }

#вместо
{ data: ..... }
postavkin:
а если страница статична, никаких действий юзер не производит

success: function(res){ }

Внутри {} вы можете что то сделать, например алерт сказать после 8 минут, что через 2 минуты бронь будет снята, а это товар уже хотят купить 100500 человек. Алгоритм же простой ява скрипт посылает с сайта через заданный интервал времени какие то данные, в ответ получает данные с сервера и выполняет какие то действия. Т.е технически, примерно ясно. А конкретные действия (через 6 минут предупредить, с 9 минуты через минуту последнее китайское предупреждение, через 30 минут самое последнее, через сутки удалить ) уж точно не в разделе веб-строительства спрашивать. Может маркетологи какие подскажут?

postavkin:
Мне надо проверить, что через 10 минут документ мне может что то отдать обратно

А в чем проблема? Js присылает последнюю активность юзера

last_event_fired:1563207948
. Добавить к ней current_client_time:1563257948 и оттуда понять активен он или нет в последние х сек/мин, а сравнив реальное время запуска серверного скрипта чистильщика, не забыв о timezone можно понять что делать.

Три цифры (от балды, для понимания)

1563207948 последний раз мышка двинулась

1563257948 последний раз js прислал данные

1563457948 запустился крон и решает что делать.

postavkin:
Пишем юзеру любую куки =1. Черз 10 минут js запрашивает эту куки

А кто удалит эту куку?😂

Всего: 541