Hash для запоминания url

305
06 января 2017, 12:13

Hash для идентификации url?

Нужно запоминать некоторые URL, посещенные пользователем на сайте, для того, чтобы в случае необходимости вернуть пользователя на этот адрес. Например, пользователь зашел на страницу example.com?part=cart&order=1 (корзина с заказами), в БД записался адрес этой страницы и вернулся hash этого адреса, например 5f41402dbc4b2a76b9231d911017c592. Для каждой ссылки на товар заказа к адресу ссылки добавляется параметр backurl. Т.е., чтобы отредактировать товар из корзины, ссылка на него получается такого вида:

example.com?part=goods&id=57483&backurl=5f41402dbc4b2a76b9231d911017c592 

Теперь после любых действий с этим товаром, по нажатию кнопки "сохранить" пользователь будет возвращен на страницу с хешем

5f41402dbc4b2a76b9231d911017c592: example.com?part=cart&order=1.

Какой hash лучше использовать в этом случае? Чем он меньше (короче) - тем лучше, предполагаю использовать md5 - его длина 32 символа, а криптостойкость большого значения не имеет, так как шифруется не пароль, а только адрес ссылки + пользователь не сможет перейти по ссылке другого пользователя, так как в БД с хешем записывается еще идентификатор пользователя. Хотелось бы что-то наподобие tinyurl.com

Answer 1

Возьмите метку времени (timestamp). Они будут уникальными и не требуют какого-то сложного механизма генерации. Вот так можно получить миллисекундный stimestamp:

$milliseconds = round(microtime(true) * 1000);
READ ALSO
Правильным ли является такой код?

Правильным ли является такой код?

У вас всё нормально, но я бы функцию changeCss переделал бы в такую:

350
Удаление пробела в строке в javascript

Удаление пробела в строке в javascript

Имеется регулярное выражение:

490
Проблемы с кодировкой

Проблемы с кодировкой

Текст из js выводится некорректно

473
Реализация Push-уведомлений. Web Push Notification

Реализация Push-уведомлений. Web Push Notification

Сделал отправку пуш уведомлений сам себеНо как сделать чтобы те, кто подписались заностились в базу? И главное как? Потому что надо будет...

376