Я переместил приложение Yii на другой общий хост. Поскольку приложение работало ...index.php?r=site/login с учетными данными для входа, я получил предупреждение:
session_regenerate_id(): Cannot regenerate session id - headers already sent
код actionLogin
:
public function actionLogin($name = null )
{
$model=new LoginForm;
if ($name) $model->username = $name;
if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
if(isset($_POST['LoginForm']))
{
$model->attributes=$_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if (headers_sent($filename, $linenum))
{
echo "Headers have been sent in {$filename} line number is {$linenum}\n"
exit;
}
if($model->validate() && $model->login())
$this->redirect(Yii::app()->user->returnUrl);
}
// display the login form
$this->render('login',array('model'=>$model));
}
Документы и форумы говорят, что может быть проблема со спецификацией. Тем не менее, в моем Notepad++ все файлы сохраняются как UTF-8 без BOM.
Должен ли я сделать специальную проверку файлов? Какие? Или может быть другая причина ошибки?
Я добавил функцию headers_sent($filename, $linenum)
(см. код выше) для отслеживания отправленных заголовков, но безрезультатно.