Cria novo ID de sessão

# session_create_id

(PHP 7 >= 7.1.0, PHP 8)

session_create_id — Cria novo ID de sessão

### Descrição

function session_create_id(string `$prefix` = ""): string|false

session_create_id() é usado para criar um novo id de sessão para a sessão atual. Ele retorna um ID de sessão livre de colisão.

Se a sessão não estiver ativa, a verificação de colisão será omitida.

O id de sessão é criado de acordo com a configuração no php.ini.

É importante usar o mesmo ID de usuário do seu servidor web para o script de tarefa do GC. Caso contrário, você poderá ter problemas de permissão, especialmente com o gerenciador de salvamento de arquivos.

### Parâmetros

`prefix`

  Se `prefix` for especificado, o novo id de sessão é prefixado por `prefix`. Nem todos os caracteres são permitidos no ID da sessão. Caracteres na faixa `[a-zA-Z0-9,-]` são permitidos. O comprimento máximo é de 256 caracteres.

### Valor Retornado

session_create_id() retorna um novo id de sessão livre de colisão para a sessão atual. Se for usado sem uma sessão ativa, a verificação de colisão é omitida. Em caso de falha, `false` é retornado.

### Exemplos

Exemplo #1 session_create_id() exemplo com session_regenerate_id()

    <?php
    // Minha função de início de sessão suporta gerenciamento de timestamp
    function my_session_start() {
        session_start();
        // Não permitir o uso de ID de sessão muito antigo
        if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
            session_destroy();
            session_start();
        }
    }

    // Minha função de regeneração de id de sessão
    function my_session_regenerate_id() {
        // Chame session_create_id() enquanto a sessão estiver ativa
        // para garantir que não haja colisões.
        if (session_status() != PHP_SESSION_ACTIVE) {
            session_start();
        }
        // AVISO: Nunca use strings confidenciais para prefixo!
        $newid = session_create_id('myprefix-');
        // Definir timestamp de exclusão. Os dados da sessão não devem ser excluídos imediatamente por motivos.
        $_SESSION['deleted_time'] = time();
        // Terminar sessão
        session_commit();
        // Certifique-se de aceitar o ID de sessão definido pelo usuário
        // NOTA: Você deve ativar use_strict_mode para operações normais.
        ini_set('session.use_strict_mode', 0);
        // Define novo ID de sessão personalizado
        session_id($newid);
        // Comece com um ID de sessão personalizado
        session_start();
    }

    // Certifique-se de que use_strict_mode está habilitado.
    // use_strict_mode é obrigatório por motivos de segurança.
    ini_set('session.use_strict_mode', 1);
    my_session_start();

    // O ID da sessão deve ser regenerado quando
    // - Usuário se loga
    // - Usuário se desloga
    // - Certo período já passou
    my_session_regenerate_id();

    // Escreva códigos úteis
    ?>

### Veja Também

- session_regenerate_id() - Atualiza o id da sessão atual com um novo id gerado
- session_start() - Inicia uma nova sessão ou continua uma sessão existente
- session.use_strict_mode
- SessionHandler::create_sid() - Retorna um novo ID de sessão

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open