Поскольку компилятор считает, что это объявление функции, которая не принимает аргументов и возвращает экземпляр MyObject.
Несколькими путями Вы могли сделать это.
Теоретически, Вы могли также хранить данные сессии в плоском файле, даже если у Вас не может быть базы данных.
Вам действительно нужна форма? Независимо от того, что Вы делаете, Вы ограничены именем пользователя и известным паролем. Если они знают, что, получают Ваш волшебный cookie, который позволяет им. Вы хотите предотвратить их видящий страницы, если они не знают секрета, и основная авторизация делает это, легка настроить и не требует большой работы с Вашей стороны.
Необходимо ли действительно видеть заголовок Авторизации, если веб-сервер заботится об управлении доступом для Вас?
Кроме того, при обеспечении приложения известному списку людей (а не общественность), можно обеспечить основанный на веб-сервере доступ на других факторах, таких как входящий IP-адрес, клиентские сертификаты и много других вещей, которые являются вопросом конфигурации вместо программирования. Если Вы объяснили свои ограничения безопасности, мы смогли предлагать лучшее решение.
Удача, :)
... О соли добавьте, что имя пользователя в Вашей соли хеша предотвратит кого-то, кто знает Вашу соль, и имейте доступ к своему файлу паролей для записи таблицы радуги и взломанного количества пароля пользователей.
Если Вы в настоящее время используете, Проходят проверку подлинности, то у Вас может уже быть htpasswd файл. Если требуется продолжить использовать тот файл, но переключаться на использование основанной на форме аутентификации, а не через Аутентифицировать заголовок, можно использовать Сценарий PHP для использования того же htpasswd файла и сессий использования для поддержания состояния аутентификации.
Быстрый поиск Google php htpasswd показывает эту страницу с функцией PHP для проверки учетных данных по htpasswd. Вы могли интегрировать его (предположение, что Вам установили сессии для автозапуска) с некоторым кодом как это:
// At the top of your 'private' page(s):
if($_SESSION['authenticated'] !== TRUE) {
header('Location: /login.php');
die();
}
// the target of the POST form from login.php
if(http_authenticate($_POST['username'], $_POST['password']))
$_SESSION['authenticated'] = TRUE;