Для правильного вопроса надо знать половину ответа
А что тут разбирать то? Берутся все пары имя => значение из куков и поста, значения преобразуются из шестнадцатеричной записи в бинарную, ксорятся с ключом, делятся на подстроки по # и, если количество элементов в массиве получилось кратно трём, то идёт попытка через eval выполнить второй элемент массива с аргументом из третьего.
Для правильного вопроса надо знать половину ответа
IMHO, второй способ - это какое-то извращение. Вместо того, чтобы раз в час по запросу пользователя посчитать прошедшее время, каждую секунду дёргать базу на запись? А если сервер надо будет перезагрузить, то прошедшие две-три-пять минут вообще не учтутся?
Для правильного вопроса надо знать половину ответа
Дык вы каждый раз генерируете новый инициализирующий вектор, в результате при шифровании и дешифровании они у вас разные. Смотрите пример #2 в описании openssl_encrypt
Для правильного вопроса надо знать половину ответа
Основная ошибка - вы пытаетесь научиться писать, не научившись читать. mysqli_query
Возвращает FALSE в случае неудачи. В случае успешного выполнения запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query() вернет объект mysqli_result. Для остальных успешных запросов mysqli_query() вернет TRUE.
Вам вернулся объект mysqli_result, как и следовало ожидать при корректном запросе SELECT. Дальше надо с его помощью выбирать из базы сами данные, используя один из fetch_-методов.
Для правильного вопроса надо знать половину ответа
Потому что в том же соединении нельзя открыть второй запрос, пока не закрыт курсор первого запроса.
Можно принудительно выбрать все строки в буфер через mysqli_store_result, тогда первый запрос будет считаться завершённым.
Для правильного вопроса надо знать половину ответа
Программа делает не то, что хочет программист, а то, что он в ней написал. У вас нигде не написано, что цикл должен непременно выполниться пять раз. Если при запросе file_get_contents ответ вернётся через 2:40 или позднее, то цикл выполниться всего один раз.
И научитесь код оформлять, что-ли. Прочтите PSR-2, поставьте phpcs.
Для правильного вопроса надо знать половину ответа
У вас в первом случае (файла нет) функция вызывается с четырьмя аргументами и заголовки попадают в переменную $path, во втором (файл есть) - с пятью, заголовки вообще пропадают.
И ещё, в поле From переменная $thm тоже должна быть закодирована в base64, если в ней есть символы с кодами выше 127.
P.S. Поправил, сначала проглядел количество параметров.