2013-09-17 4 views
6

из голубой, я получаю следующее сообщение об ошибке при входе в один из моих сайтов:Как заменить session_register() для PHP 5.4+

Call to undefined function session_register()

После некоторых исследований я увидел, что session_register() является устаревшим после PHP 5.4. Я проверил на панели управления хостингом, и, конечно же, он говорит, что текущая версия, на которой я запущена, - это PHP 5.4.19. Я предполагаю, что они просто вызвали обновление, поэтому эта проблема, казалось, возникла из-за синего.

Я просмотрел несколько сообщений о переполнении стека и просмотрел ссылки на документацию по PHP. Из того, что я собираю, session_register() устарел и должен быть заменен вместо $ _SESSION.

Проблема в том, что оба они уже фигурируют в моем коде. Вот код в моем файле index.php:

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

Так что я надеялся только путем удаления строки 54 (устаревшая шт), то он должен работать, однако это не так. Когда я это сделал, он сломал код.

Основываясь на других сообщениях, которые я читал HERE и HERE, они, кажется, говорят, что код, который я вижу в строке 55 выше, сам по себе делает трюк. Поэтому я немного смущен, почему это не сработало. Если кто-нибудь скажет мне, какой код я должен использовать, я бы искренне его оценил. Разработчик скрипта не предлагает поддержку.

ПРИМЕЧАНИЕ. Кроме того, да, есть session_start(), вызываемый в самой верхней части страницы.

+0

У вас есть 'session_start()' на вашей странице? –

+0

, какую ошибку вы получаете за '$ _SESSION ['ADMIN']'? – 01e

+0

да, есть session_start() в верхней части страницы –

ответ

6

Возможно он отсутствует призыв к session_start, session_register сделать это автоматически, так что вы должны сделать, это просто убедитесь, что вы назвали session_start перед использованием $ _SESSION глобальной.

Вы можете проверить больше здесь http://www.php.net/manual/en/function.session-register.php

If session_start() was not called before this function is called, an implicit call to session_start() with no parameters will be made. $_SESSION does not mimic this behavior and requires session_start() before use.

0

Добавить session_start() в начале вашего кода и $_SESSION манипулировать им или создать его.

2

Поскольку session_register('ADMIN') регистрирует глобальную переменную с этим именем в текущей сессии, так что, возможно, в вашем коде у вас есть переменная $ ADMIN, найти их и заменить их:

$_SESSION['ADMIN'] 

Я надеюсь, что это поможет.

+0

$ ADMIN не появляется нигде на странице. Спасибо за предложение –

1

Похоже, я пропустил очевидное. Я был на правильном пути, просто удалив старый код session_register.

Но обратите внимание на оригинальный код, который я отправил начинается

<? 

вместо

<?php 

DOH

Смежные вопросы