2015-01-04 2 views
0

Я делаю страницу с пользовательской базой данных пользователя с использованием Heroku и SQL. У меня возникли проблемы с переводом этого из PHP и MYSQL. В рамках перехода я продолжаю получать эту ошибку поверх каждой страницы на своем веб-сайте, но я не могу на всю жизнь понять, почему и как ее избавиться:«Предупреждение: ini_set(): сеанс активен» ошибка

Предупреждение: ini_set() : Сеанс активен. Вы не можете изменить настройки ини Модуль сеанса в это время в /app/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php на линии 56

Я пытался читать это, но не получить в любом месте: ErrorException: Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in /../../

Вот страница раздела Войти на моей странице:

$app->post('/login/', function() use($app) { 

    // configuration 
    //require("../includes/config.php"); 
$usernameExists = false; 
$emailExists = false ; 

$username = $app['request']->get('username'); 
$password = $app['request']->get('password'); 

$st = $app['pdo']->prepare("SELECT * FROM users where username = ?") ; 
$st -> execute(array($username)); 
$userinfo = array() ; 
while ($row = $st->fetch(PDO::FETCH_ASSOC)) { 
    $app['monolog']->addDebug('Row ' . $row['username']); 
    $userinfo[] = $row; 
    } 

if (count($userinfo) == 1 ) 
{ 
    $row = $userinfo[0]; 
    $salt = openssl_random_pseudo_bytes(64) ; 
    if (crypt($password, $salt) == crypt($row['password'], $salt)) 
    { 
     //set session id 
     session_start(); 
     $app['session']->set('user', array('username' => $username)); 
      return $app->render('myshows.php'/*, array(
    'names' => $usernames) */ 
    ); 
    } 
    else 
    { 
     return $app['twig']->render('login_form.twig', array('incorrectlogin' => 1)); 
    } 
} 

if ($userinfo == null) 
{ 
return $app['twig']->render('login_form.twig' , array(
    'incorrectlogin' => 1)); 
} 
}) ; 

И это мой текущий файл php.ini:

; php options 
date.timezone = UTC 
session.auto_start = 0 
; hhvm specific 
hhvm.log.level = Warning 
hhvm.log.always_log_unhandled_exceptions = true 
hhvm.log.runtime_error_reporting_level = 8191 
hhvm.mysql.typed_results = false 
+0

Убедитесь, что 'session.auto_start' отключен. – Federkun

+0

BTW: нет необходимости в 'session_start();'. Symfony2 запускает сеанс сам по себе. – Federkun

+0

Я добавил файл php.ini, сохраненный в: \ vendor \ heroku \ heroku-buildpack-php \ conf \ hhvm – garson

ответ

2

Я понял ответ! Я случайно включил session_start(); в моем файле конфигурации. Теперь все лучше.

0

Вам не нужна эта строка в файле cofig

session_start(); // необходимо вызвать объект сеанса PHP, чтобы получить доступ к нему, хотя это При загрузке библиотеки сеанса это конструктор делает это для вас.

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