Come sostituire session_register() del PHP 5.4+

di punto in bianco mi è stato sempre il seguente errore quando si accede a uno dei miei siti:

Call to undefined function session_register()

Dopo alcune ricerche ho visto che session_register() è deprecato dopo PHP 5.4. Ho controllato nel mio pannello di controllo di hosting, e abbastanza sicuro, si dice che la versione corrente sono in esecuzione di PHP è 5.4.19. Presumo che solo forzato un aggiornamento che è il motivo per cui questo problema è apparso il verificarsi di out of the blue.

Ho guardato attraverso diversi Overflow dello Stack post e rivedendo i link alla documentazione di PHP. Da quello che ho capito, session_register() è deprecato e deve essere sostituito con $_SESSION invece.

Problema è, sia di quelli già presenti nel mio codice. Ecco il codice nel mio index.php file:

  53 <? if ($username) {
  54    session_register("ADMIN");
  55    $_SESSION['ADMIN'] = $username;
  56 ?>

Così ho sperato solo rimuovendo la linea 54 (deprecato pezzo) quindi dovrebbe funzionare, tuttavia, che non è il caso. Si è rotto il codice quando l’ho fatto.

Basato su altri post ho letto QUI e QUI sembrano essere dicendo che il codice vedo in linea 55 di cui sopra dovrebbe di per sé fare il trucco. Quindi sono un po ‘ confuso perché non ha funzionato. Se qualcuno mi sa dire che codice devo utilizzare sarei sinceramente grato. Lo sviluppatore di script non è davvero offrire supporto.

NOTA: Anche, sì, c’è un session_start() chiamata all’inizio della pagina.

Hai un session_start() sulla tua pagina?
l’errore che si ottiene per i $_SESSION['ADMIN']?
sì, c’è un session_start() all’inizio della pagina
Dubito fortemente che il 2 errori sono correlati. Hai “risolto” il session_register errore, ora che hai scoperto un altro. Call to undefined function è un “errore fatale”, che farà tappa PHP. Ora che è possibile ottenere passato che, trovato un altro errore fatale.
ci deve essere un fantasma nella macchina. Ho deciso di cancellare tutta la directory e poi caricato tutti i file di nuovo pulito. Poi ho fatto la modifica la rimozione di linea 54 e sostituito solo il index.php file. Adesso quando faccio il login, non sto ottenendo il 2 ° errore di cui ho parlato sulla linea 17. Invece sto ancora ricevendo lo stesso errore, come il 1 ° tempo, citando linea 54, che è ora ‘$_SESSION[‘ADMIN’] = $username;’

OriginaleL’autore Michael Curving | 2013-09-17

4 Replies
  1. 6

    Possibile, manca la chiamata per session_start, session_register fare questo automaticamente, quindi quello che dovete fare è assicurarsi che hai chiamato session_start prima di utilizzare $_SESSION globale.

    È possibile controllare più qui http://www.php.net/manual/en/function.session-register.php

    Se session_start() non è stato chiamato prima questa funzione viene chiamata, una chiamata implicita di session_start() senza parametri. $_SESSION non imitare questo comportamento e richiede session_start() prima dell’uso.

    OriginaleL’autore krolow

  2. 2

    Perché session_register('ADMIN') registra la variabile globale con lo stesso nome nella sessione corrente, quindi forse nel tuo codice hai $ADMIN variabile, trovare e sostituire con:

    $_SESSION['ADMIN']

    Spero che questo vi aiuterà.

    $ADMIN non appaiono in qualsiasi altro punto della pagina. Grazie per il suggerimento

    OriginaleL’autore 01e

  3. 1

    Sembra che ho trascurato l’ovvio. Ero sulla strada giusta, semplicemente rimuovendo il vecchio session_register codice.

    A meno di notare il codice originale che ho postato inizia

    <?

    invece di

    <?php

    doh

    OriginaleL’autore Michael Curving

  4. 0

    Aggiungere un session_start() all’inizio del codice e $_SESSION per manipolare o creare.

    OriginaleL’autore Starx

Lascia un commento