Ho copiato un sito esistente e in esecuzione con successo su un nuovo server di sviluppo.Impossibile modificare il nome del cookie della sessione php
L'account di accesso sul nuovo server ora è rotto, e ho rintracciato verso il basso per il fatto che, sebbene il cookie di sessione viene rinominato ...
ini_set('session.name', 'DOMAIN1');
... il browser mantiene memorizzare il cookie sesssion come PHPSESSID.
Quando rimuovo la riga sopra dall'applicazione sul nuovo server, il login funziona di nuovo. Ma questa non è una buona soluzione, perché un'altra applicazione usa anche PHPSESSID sotto questo nome.
E preferirei trovare il motivo dello strano comportamento invece di utilizzare una soluzione alternativa. Se non lo aggiusto, potrebbe mordermi da qualche altra parte.
Forse questo è già abbastanza informazioni per qualcuno a darmi un suggerimento. In caso contrario, quali informazioni sarebbero utili?
Questa macchina era un server Ubuntu 8.04 molto nudo e basilare, e ho installato apache2, mysql e php5 con aptitude. Ho anche aggiornato i lokales e il fuso orario.
Soluzione:
ho sostituito la linea di cui sopra con questo codice da dalla risposta accettata ...
if(ini_set('session.name', 'DOMAIN1') === false || !session_name('DOMAIN1'))
{
die('Unable to set sesssion scope');
}
... e il login ora lavora sul nuovo server.
No, ini_set() non dovrebbe modificare il file INI: vedere http://php.net/ini_set Altrimenti sarebbe una grande potenziale violazione della sicurezza. – mojuba
Sì spiacente, solo runtime :) – RobertPitt
Grazie, dopo ore di ricerca, finalmente funziona. Ho sostituito il codice precedente con le 4 linee del tuo esempio e l'ho risolto! – mit