Я хочу сделать это, чтобы они могли анонимно просматривать мой контент, но при этом иметь возможность синхронизировать уведомления о других устройствах.
Существует несколько способов получения уникального идентификатора в PHP. Однако не все они так уникальны, как вы могли подумать.
http://php.net/manual/en/function.rand.php
$userId = rand(1, 99999999);
На это очень плохо полагаться, так как случайность подобна бросанию игральных костей. Есть довольно хорошие шансы, что он удвоит одно и то же значение.
http://php.net/manual/en/function.uniqid.php
$userId = uniqid('prefix', true);
Лучшее предложение, но все же небезопасное при обработке важных данных пользователя. Второй параметр дает вам больше энтропии
Наиболее часто используемые варианты уникальных идентификаторов — это GUID. Исходя из мира Microsoft, он обеспечивает наибольшую энтропию. Есть несколько способов генерации GUID
В Windows размещены реализации PHP:
http://php.net/manual/en/function.com-create-guid.php
$userId = com_create_guid();
Когда у вас есть доступ к PECL
устанавливать http://pecl.php.net/package/uuid
$userId = uuid_create();
Или создайте собственную реализацию
Например
function getGUID(){
if (function_exists('com_create_guid')){
return com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);// "-"$uuid = chr(123)// "{".substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"return $uuid;
}
}
UserId лучше всего хранить в переменной Session. В зависимости от используемой системы PHP это может быть что-то вроде:
$_SESSION['userID'] = $userId;
И получать в других запросах (перевернуть пример кода), как AJAX-запрос на обновление уведомлений.
Конечно, вы также можете сохранить в общедоступном файле cookie, сделав значение доступным для JS.
Вы, вероятно, хотите использовать функцию rand () в php.
<?php
echo rand();
?>
Вы можете найти больше информации об этом здесь:
http://php.net/manual/en/function.rand.php
Затем сохраните его в своей базе данных или в сеансе.
В зависимости от того, использовали ли вы сеансы раньше, здесь есть хорошее руководство:
http://www.w3schools.com/php/php_sessions.asp
Вы могли бы сделать что-то вроде этого:
<?php
// Start the session
session_start();
$random_no = rand();
// Set session variables
$_SESSION["visitor_number"] = $random_no;
?>
Единственная проблема с rand () состоит в том, что в зависимости от количества посетителей, которые посещают ваш сайт, вы можете получить дубликаты. Было бы целесообразно сохранить некоторые проверки, чтобы избежать дублирования.
Эта тема может помочь вам в этом:
Генерация уникальных случайных чисел в диапазоне — PHP
Надеюсь, это поможет!
Надеюсь, это поможет. Попробуйте следующий код.
uniqid(rand(),true)