Php 如何在不使用session_ID()的情况下生成唯一的session ID?
我想生成一个会话ID。这个唯一的会话ID代表每个不同用户的一些不同数据 我的代码到现在为止:Php 如何在不使用session_ID()的情况下生成唯一的session ID?,php,session,cookies,session-cookies,Php,Session,Cookies,Session Cookies,我想生成一个会话ID。这个唯一的会话ID代表每个不同用户的一些不同数据 我的代码到现在为止: 单击并加载一个页面后,我调用一个函数create_session_id() 在我的PHP页面上,我收到此数据,然后将其插入: session_start(); $a = session_id(); $object->insert_sessionid($a); 我的问题 是否可以只使用session\u start()(无session\u id())并存储一些唯一的session id值,以
create_session_id()代码>
session_start();
$a = session_id();
$object->insert_sessionid($a);
session\u start()
(无session\u id()
)并存储一些唯一的session id值,以便以后在获取数据并将数据抛出到网页时使用。我不想任何点击来注册sessionid。它应该在页面加载时发生,并且没有任何函数create\u session\u id()
我想带些饼干到照片里来
注意:我的网站不允许登录。请使用以下功能
function createRandomVal($val){
$chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,-";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i<=$val)
{
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
函数createRandomVal($val){
$chars=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz012456789,”;
srand((双)微时间()*1000000);
$i=0;
$pass='';
而($i使用如下函数
function createRandomVal($val){
$chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,-";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i<=$val)
{
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
函数createRandomVal($val){
$chars=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz012456789,”;
srand((双)微时间()*1000000);
$i=0;
$pass='';
虽然($i以上代码有点错误,因为user669677
已经编辑了它
以下是正确的代码:
function createRandomVal($val) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,-";
srand((double)microtime() * 1000000);
$i = 0;
$pass = '';
while ($i < $val) {
$num = rand() % 64;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
函数createRandomVal($val){
$chars=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz012456789,”;
srand((双)微时间()*1000000);
$i=0;
$pass='';
而($i<$val){
$num=rand()%64;
$tmp=substr($chars,$num,1);
$pass=$pass.$tmp;
$i++;
}
返回$pass;
}
上面的代码有点错误,因为user669677
已经对其进行了编辑
以下是正确的代码:
function createRandomVal($val) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,-";
srand((double)microtime() * 1000000);
$i = 0;
$pass = '';
while ($i < $val) {
$num = rand() % 64;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
函数createRandomVal($val){
$chars=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz012456789,”;
srand((双)微时间()*1000000);
$i=0;
$pass='';
而($i<$val){
$num=rand()%64;
$tmp=substr($chars,$num,1);
$pass=$pass.$tmp;
$i++;
}
返回$pass;
}
uh,如果你想引入cookie,你应该意识到PHP会话默认使用cookies。因此,只需使用session\u start(),然后使用session\u id()
来获取已创建(或正在重用)的会话id。你可以使用某种计数器?session\u start()可以发生在任何php页面上,无需与用户进行任何额外的交互,只需用户简单地请求页面即可。但是——不使用“登录”和简单地使用cookie本质上是不安全的,用户清除cookie将生成一个新的“唯一”会话,因此您将无法跟踪“用户”这样,只需要从同一个浏览器中重复已接受但未清除cookies的会话。@Ginstask他可能会这样做,但这不会造成潜在的安全威胁,因为会话id很容易被猜测?@MarcB:我不需要重复使用会话id。问题是跟踪网站上的用户行为。所以网站上的每个用户登录页应该有一个会话id。显然,每个用户的行为都会有所不同。我被告知,您可以通过使用会话启动()来实现这一点。您能给我一个小片段吗?问题是我不需要像创建会话id()这样的函数并且想在加载时生成会话id??如何实现?嗯,如果你想引入cookies,你应该意识到PHP会话默认使用cookies。所以只需使用session_start(),然后使用session_id()
来获取已创建(或正在重用)的会话id。你可以使用某种计数器?session_start()可以发生在任何php页面上,无需与用户进行任何额外的交互,只需用户简单地请求页面即可。但是——不使用“登录”和简单地使用cookie本质上是不安全的,用户清除cookie将生成一个新的“唯一”会话,因此您将无法跟踪“用户”这样,只需要从同一个浏览器中重复已接受但未清除cookies的会话。@Ginstask他可能会这样做,但这不会造成潜在的安全威胁,因为会话id很容易被猜测?@MarcB:我不需要重复使用会话id。问题是跟踪网站上的用户行为。所以网站上的每个用户登录页应该有一个会话id。显然,每个用户的行为都会有所不同。我被告知,您可以通过使用会话启动()来实现这一点。您能给我一个小片段吗?问题是我不需要像创建会话id()这样的函数并且想在加载时生成会话id??如何实现?我感谢您的努力,但正如我所说的,我不想创建函数。看一下注释!!!在加载时,如果不调用任何事件或函数,您必须调用一些函数或启动一个进程来生成会话值,这是对cpu周期的浪费。为什么不使用和获取一个具有更好特性的随机字符串?可能吗..如果我在html主页的第一行上写session_start(),那么我应该怎么做next@MarcB:我知道会话id的作用。我也使用过它。只想在不使用会话_id()的情况下问你,我们无法生成唯一的会话id?我感谢您的努力,但正如我所说的,我不想创建函数。请查看注释!!!在不调用任何事件或函数的情况下,在加载时,您必须调用一些函数或启动一个进程来为您生成会话值。这是多么浪费cpu周期。为什么不直接使用并获取会话id呢具有更好特性的随机字符串?可能吗..如果我在html主页的第一行写session_start(),我该怎么办next@MarcB:我知道会话id的作用。我也使用过它。我只是想问你,如果不使用会话_id(),我们无法生成uniq