Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP在每个不同的服务器上创建唯一的id_Php - Fatal编程技术网

使用PHP在每个不同的服务器上创建唯一的id

使用PHP在每个不同的服务器上创建唯一的id,php,Php,我正计划为用作信息亭的脱机站点的用户创建我的数据库表。。这些信息亭既没有网络连接,也没有相互连接,它们有一个单独的Web服务器和数据库。。我能用什么来让这些用户在每个信息亭上拥有他们不同的唯一id?我计划使用散列,这样当我们将每台机器上的所有数据合并到一台服务器上时,我们就可以容纳每个唯一的ID。如果您可以完全控制如何形成ID,那么您可以在首次设置时为每台机器提供一个唯一的ID,然后,您可以将该数据包含在用户的唯一ID中,这样它们就不会在机器之间重叠 如果您不想进行任何手动设置,可以使用某种硬件

我正计划为用作信息亭的脱机站点的用户创建我的数据库表。。这些信息亭既没有网络连接,也没有相互连接,它们有一个单独的Web服务器和数据库。。我能用什么来让这些用户在每个信息亭上拥有他们不同的唯一id?我计划使用散列,这样当我们将每台机器上的所有数据合并到一台服务器上时,我们就可以容纳每个唯一的ID。

如果您可以完全控制如何形成ID,那么您可以在首次设置时为每台机器提供一个唯一的ID,然后,您可以将该数据包含在用户的唯一ID中,这样它们就不会在机器之间重叠


如果您不想进行任何手动设置,可以使用某种硬件ID(如网络适配器MAC地址)作为机器的唯一ID。

如果您可以完全控制如何形成ID,则可以在首次设置时为每台机器提供唯一ID,然后,您可以将该数据包含在用户的唯一ID中,这样它们就不会在机器之间重叠


如果您不想进行任何手动设置,您可以使用某种硬件ID(如网络适配器MAC地址)作为机器的唯一ID。

如果您需要零设置选项,请在创建用户时进行设置,将其转换为字符串,然后对其进行散列(使用md5或类似工具)?由于精度和机器时钟的任意变化,这很可能会为所有用户提供唯一性


如果你可以做一些预设置,给每台机器一个唯一的ID,并让它从该ID+机器上的某些用户特定数据项中进行散列。

如果你需要零设置选项,请在创建用户时进行设置,将其转换为字符串,然后散列(使用md5或类似的工具)?由于精度和机器时钟的任意变化,这很可能会为所有用户提供唯一性


如果你可以做一些预设置,给每台机器一个唯一的ID,并让它从该ID+机器上的一些特定于用户的数据项中进行散列。

我会使用PHP的函数,或MySQL的函数。

我会使用PHP的函数,或者MySQL的函数。

使用一个简单的ini文件来存储kiosk id,并将其放在任何唯一的哈希前面

可通过以下方式实施:

$config = parse_ini_file('./config.php');
$hash = $config['kiosk_id'].'_'.microtime();
//$hash = md5($hash); //looks more random, but can collide

使用一个简单的ini文件来存储kiosk id,并将其放在任何唯一散列的前面

可通过以下方式实施:

$config = parse_ini_file('./config.php');
$hash = $config['kiosk_id'].'_'.microtime();
//$hash = md5($hash); //looks more random, but can collide

您最好的选择是创建一个组合键,该组合键基于一个常规的自动增量列作为可变部分,以及一个不变的每个kiosk标识。主机名、IP地址、MAC地址(如果有以太网卡)(即使没有实际使用)、Windows SID等

CREATE TABLE user
     user_id   auto_increment not null,
     kiosk_id   char(32) not null,
     PRIMARY KEY (user_id, kiosk_id),
     etc...
);

然后可以在主表中进行简单的组合。

您的最佳选择是创建一个组合键,该组合键基于一个常规的自动增量列作为可变部分,以及一个不变的每个kiosk标识。主机名、IP地址、MAC地址(如果有以太网卡)(即使没有实际使用)、Windows SID等

CREATE TABLE user
     user_id   auto_increment not null,
     kiosk_id   char(32) not null,
     PRIMARY KEY (user_id, kiosk_id),
     etc...
);

以后可以在主表中进行简单的组合。

您是否正在寻找能够为同一用户在每台机器上生成相同哈希的内容?比如,如果我以
Slokun
的身份登录,我的哈希值可能在每台机器上都是
abc123
,但如果我以
Slokun2
的身份登录,它将是
g6y3xg
?是否有一些特定的项目可以告诉你谁是谁,比如信用卡号码或其他什么?你是否在寻找能够在每台机器上为同一个用户生成相同哈希值的东西?比如,如果我以
Slokun
的身份登录,我的哈希值可能在每台机器上都是
abc123
,但如果我以
Slokun2
的身份登录,它将是
g6y3xg
?是否有一些特定的项目可以告诉你谁是谁,比如信用卡号码之类的?