я хочу дать пользователю случайное число в первый раз, когда они заходят на мою веб-страницу

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

0

Решение

Существует несколько способов получения уникального идентификатора в PHP. Однако не все они так уникальны, как вы могли подумать.

рант

http://php.net/manual/en/function.rand.php

$userId = rand(1, 99999999);

На это очень плохо полагаться, так как случайность подобна бросанию игральных костей. Есть довольно хорошие шансы, что он удвоит одно и то же значение.

UniqId

http://php.net/manual/en/function.uniqid.php

$userId = uniqid('prefix', true);

Лучшее предложение, но все же небезопасное при обработке важных данных пользователя. Второй параметр дает вам больше энтропии

GUID

Наиболее часто используемые варианты уникальных идентификаторов — это 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.

1

Другие решения

Вы, вероятно, хотите использовать функцию 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

Надеюсь, это поможет!

0

Надеюсь, это поможет. Попробуйте следующий код.

uniqid(rand(),true)
0
По вопросам рекламы [email protected]