如何在不使用session_id()的情况下生成唯一的会话ID?

时间:2013-07-11 14:49:57

标签: php session cookies session-cookies

我想生成一个会话ID。这个唯一的sessionId代表了每个不同用户的一些不同数据。

我的代码到现在为止:

  1. onclick和onload of page我称之为函数create_session_id();

    function create_session_id() {
        // This function sends a string to a PHP page using ajax post.
    }
    
  2. 在我的PHP页面上,我收到这些数据然后插入它:

    session_start();
    $a = session_id();
    $object->insert_sessionid($a);
    
  3. 我的问题

    是否可以仅使用session_start()(无session_id())并存储一些我在以后获取数据并将数据投放到网页时可以使用的唯一会话ID值。我不希望任何点击注册sessionid。它应该在页面加载时发生,没有任何函数create_session_id()

    我想在图片中加入一些饼干。

    注意:我的网站不允许登录。

2 个答案:

答案 0 :(得分:3)

使用像

这样的功能
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;
    }

并传递会话ID

中的返回值

答案 1 :(得分:0)

上面的代码有点儿错误,因为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;
}