PHP 8.5.0 Alpha 1 available for testing

session_id

(PHP 4, PHP 5, PHP 7, PHP 8)

session_idLee y/o modifica el identificador de sesión actual

Descripción

session_id(?string $id = null): string|false

session_id() se utiliza para recuperar o definir el identificador de sesión para la sesión actual.

La constante SID también puede ser utilizada para leer el nombre de la sesión actual y el identificador de sesión a proporcionar en las URL. Véase también Gestión de sesión.

Parámetros

id

Si id es proporcionado y no es null, reemplazará el identificador de sesión actual. session_id() debe ser llamado antes de session_start(). Dependiendo del gestor de sesiones que se utilice, no todos los caracteres serán aceptados en este valor. Por ejemplo, el gestor de sesiones por defecto, basado en archivos, solo acepta caracteres dentro del intervalo [a-zA-Z0-9,-]!

Nota: Cuando se utilizan sesiones con cookies, el hecho de especificar un id para session_id() hará que una nueva cookie siempre sea enviada al llamar a session_start(), independientemente de si el identificador de sesión actual es idéntico al que acaba de ser definido.

Valores devueltos

session_id() devuelve el identificador de sesión para la sesión actual o una cadena vacía ("") si no hay sesión actual (ningún identificador de sesión existe). En caso de error, false es devuelto.

Historial de cambios

Versión Descripción
8.0.0 id ahora es nullable.

Ver también

add a note

User Contributed Notes 1 note

up
44
Riikka K
10 years ago
It may be good to note that PHP does not allow arbitrary session ids. The session id validation in PHP source is defined in ext/session/session.c in the function php_session_valid_key:

https://github.com/php/php-src/blob/master/ext/session/session.c

To put it short, a valid session id may consists of digits, letters A to Z (both upper and lower case), comma and dash. Described as a character class, it would be [-,a-zA-Z0-9]. A valid session id may have the length between 1 and 128 characters. To validate session ids, the easiest way to do it use a function like:

<?php

function session_valid_id($session_id)
{
return
preg_match('/^[-,a-zA-Z0-9]{1,128}$/', $session_id) > 0;
}

?>

session_id() itself will happily accept invalid session ids, but if you try to start a session using an invalid id, you will get the following error:

Warning: session_start(): The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,'
To Top