How to set and access session after using session_name

1

I have a $_SESSION["id"]="123"; and access it directly like this:

echo $_SESSION["id"]; 

If I use

session_name(md5("seg".$_SERVER["REMODE_ADDR"].$_SERVER["HTTP_USER_AGENT"]));

How do I access or set the session?

    
asked by anonymous 18.04.2018 / 01:15

1 answer

0

If you only use session_name() it will return the current session name. When you create a name for session_name($name) it will overwrite the current session name and return the old name.

So when you give a name to the session:

session_name(md5("seg".$_SERVER["REMODE_ADDR"].$_SERVER["HTTP_USER_AGENT"]));

And he wants to rescue her. Just do this:

$nomeDaSessao = session_name();

Take a look at the manuel

  

The session name refers to the session name, which is used in cookies and   URLs (for example, PHPSESSID). It should contain only characters   alphanumeric; it should be short and descriptive (for users with   cookie warnings enabled). If name is entered, the session name   current value is changed to the new value.

EDIT

page1.php

// a variável ficará com o nome da antiga sessao PHPSESSID 
$sessao_antiga = session_name("teste"); // alterei o PHPSESSID para teste 

session_start(); // inicio a sessao

$session_name_new = session_name(); // recupero o nome da atual

echo "O nome da sessão é ".$session_name_new."<br>"; // mostro o nome da atual
echo "Mas o nome da sessão antes era ".$sessao_antiga."<br>"; // mostro o nome da antiga

$_SESSION['id'] = "123"; // abro uma sessão com o nome id

if(isset($_SESSION['id'])){ // verifico se existe a sessao
    echo "A sessão com a chave 'id' existe! O valor dela é ".$_SESSION['id']; // mostro uma msg
}

The above example will return:

O nome da sessão é teste
Mas o nome da sessão antes era PHPSESSID
A sessão com a chave 'id' existe! O valor dela é 123

Note that when you change the session name, you change the PHPSESSID cookie, and bind the other sessions to this name. It is important to note that this change has to be made BEFORE session_start() .

However, for you to retrieve these keys in each script, you will need to change the session name also on the other pages. So:

page2.php

session_name("teste");

session_start();

if(isset($_SESSION['id'])){
    echo "A sessão 'id' Existe!";
}

The above example will return:

The 'id' session exists!

    
18.04.2018 / 01:30