2011-10-16 15 views
6

Sto provando a creare un generatore di ID di sessione personalizzato. Da quello che ho letto su tutti i siti puoi farlo modificando manualmente i file delle impostazioni di PHP, tuttavia, non sarà disponibile finché non passerò dai miei server condivisi a uno completamente personalizzabile.Un modo per generare un ID di sessione personalizzato senza modificare php.ini

Quello che sto cercando di chiedere è se è possibile specificare come vengono generati gli ID di sessione inserendo un codice PHP in una pagina? La mia intenzione è quella di utilizzare la stessa meccanica del generatore di ID predefinito, ma usare sha512 e alcuni extra personalizzati come il sale.

+3

Perché vuoi questo? Le sessioni PHP sono abbastanza sicure per impostazione predefinita. – TimWolla

+0

Il tuo problema è modificare il file php.ini? O che non hai l'hash installato che stai cercando? – hakre

+0

Il mio problema è che non posso modificare php.ini su un sito di hosting condiviso, ma non importa, @MVS mi ha fornito una risposta, grazie. –

risposta

8

Se si passa una stringa alla funzione session_id() prima di chiamare session_start(), è possibile impostare l'ID sessione da soli. Ad esempio:

function generate_id() { 
    ... 
    return $your_id; 
} 

session_id(generate_id()); 
session_start(); 
+0

Questo non è compatibile con ['session_regenerate_id()'] (http://php.net/manual/en/function.session-regenerate-id.php). – hakre

+0

È, sebbene non diretto. Potrei aver bisogno di eseguire alcuni test per vedere se vale la pena usare il metodo che sto pensando, ma è possibile. Grazie per la tua preoccupazione, però. –

+1

Se si passa un ID in session_id e questo era l'ID di una sessione precedente, session_start avrebbe continuato la sessione precedente se i cookie/get/post non avevano dati PHPSESSID? Sto chiedendo di vedere se è possibile passare manualmente l'id della sessione, invece di fare affidamento sui cookie/get/post. – CMCDragonkai

Problemi correlati