我正在使用Heroku和SQL创建一个包含登录用户数据库的页面。我无法从PHP和MYSQL中翻译它。作为过渡的一部分,我不断在我的网站的每个页面上都出现此错误,但我不能为我的生活弄清楚为什么或如何摆脱它:
警告:ini_set():会话处于活动状态。您目前无法在第56行的/app/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php中更改会话模块的ini设置
我试过读这个,但没有到达任何地方: 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 :(得分:2)
我想出了答案!我不小心包含了session_start();在我的配置文件中。一切都好了。
答案 1 :(得分:0)
您在cofig文件
中不需要这一行 session_start();
//需要调用PHP的会话对象来访问它
当你加载会话库时,它的构造函数会为你做这些。