[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка при редиректе
Страницы: 1, 2
lodas
Здравствуйте уважаемые форумчане. Возникла такая проблема:
Если пользователь не авторизовался я хочу сделать редирект на страницу ошибки:
     if($model->validate() && $model->my_avtorizatings())
{ echo "Пользователь Avtorizovan";
$this->render('index',array('model'=>$model,));
}
else
{
echo "Пользователь не авторизован";
$this->redirect('errors');
}

Происходит такая ошибка:
Цитата
Cannot modify header information - headers already sent by (output started at Z:\home\yii\www\protected\controllers\UserController.php:29)

где 29 строка это и есть функция редиректа. Почему нельзя изменить информацию в заголовке? И как это исправить?
Markus111
поставьте функцию редиректа перед <!DOCTYPE

_____________
https://t.me/pump_upp
lodas
Markus111, у меня доктайп в themes/layoys/main.php а мне редирект нужен в views/user/error.php.
В файле error.php у меня вообще доктайпа нет, ибо в нем выводиться только сообщение об ошибке.
Как это можно обойти?
Bolik
это можно обойти через output buffering или посмотри внимательно свой html код, удали все пробелы или пустые строки перед редиректом.
bestxp
убери echo "Пользователь не авторизован";
перед редиректом
ипользуй сессию для хранения таких сообщений.
Michael
в yii для этого уже есть заготовка -
Yii::app()->user->setFlash(string $key, mixed $value, mixed $defaultValue=NULL)


_____________
There never was a struggle in the soul of a good man that was not hard
twin
А то, что echo в контроллере, это нормально? Причем прямо перед вызовом рендера... Я уже про редирект и не заикаюсь.
Вот зачем пользовать фреймворк, не разобравшись в его принципах? Не рановато?

Свернутый текст
Вот они, жертвы моды и new-school. Ничего не понимаю в основах, но фреймворк - это круто и я буду тоже крутой.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Michael
lodas, почитай про MVC, это же есть в мануале. Чтобы понять где что делать, где echo пишется.

Вместо этого:
echo "Пользователь Avtorizovan";
$this->render('index',array('model'=>$model,));

надо например так:
$msg = "Пользователь Avtorizovan";
$this->render('index',array('model'=>$model, 'msg' => $msg));

И в виде уже echo $msg;
И все дела.


Свернутый текст
На twin-а не обращай внимание. Он фанатично не любит чтобы люди разбирались в том, в чем он не разбирается. И прикладывает усилия чтобы их остановить.
Как например сейчас в теме, вместо помощи новичку, помощи в разбирании, он критикует твои занятия с фреймворком.


_____________
There never was a struggle in the soul of a good man that was not hard
TMake
lodas как тебе уже писали - нельзя ничего выводить перед редиректом.
Можно использовать, как написал Michael Yii::app()->user->setFlash();
Но я так понял что ты хочешь сделать вывод на экран и затем, через промежуток времени, перенаправить пользователя, в html это делается так http://redirekt.info/article/redirekt-na-h...ta-refresh.html
в yii для этого есть специальный метод регистрации meta тагов http://www.yiiframework.com/doc/api/1.1/CC...rMetaTag-detail

Если же ты решил все же вывести ошибку, то для этого есть исключения http://www.yiiframework.com/doc/guide/1.1/ru/topics.error
bestxp
Цитата (twin @ 6.08.2013 - 08:40)

Вот зачем пользовать фреймворк, не разобравшись в его принципах? Не рановато?


ага выйдете в окно пожалуйста

По факту, с того и начинается что ставишь задачу и решаешь, пока ты изучаешь принципы фреймворка, он уже пишет, когда ты начнешь писать он уже разобрался и имеет какой никакой опыт.

Тут ты не прав,
ТС не слушай твина, он тут самый жирный троль)
Valick
bestxp, небольшая поправочка, пока кто-то изучает принципы ЯЗЫКА, и только потом фреймворка, кто-то другой говнокодит на фреймворках коллективным "разумом", тут как бы каждый сам решает кому верить и кого слушать.

_____________
Стимулятор ~yoomoney - 41001303250491
bestxp
Цитата (Valick @ 6.08.2013 - 12:46)
bestxp, небольшая поправочка, пока кто-то изучает принципы ЯЗЫКА, и только потом фреймворка, кто-то другой говнокодит на фреймворках коллективным "разумом", тут как бы каждый сам решает кому верить и кого слушать.

знания языка ничего не состроят, все языки программирования сделаны для людей, а не компьютера, по сути поняв один язык, сможешь писать на разных, лишь синтаксис понять и некоторые особенности, остальное не так страшно.

По твоим словам полному новичку, который ни бе ни ме лезть во фреймворк опасно( это верно )

Но если человек не новичок, так и изучаются фреймворки, в процессе работы с ним, а не чтением сотли листов доков, а потом только написания хелловорд

Хотя каждый сам выбирает путь
twin
bestxp
Цитата
ага выйдете в окно пожалуйста
По сути это вы ходите в окно. Хотя есть двери. Сначала как минимум нужно изучить основы, потом браться за фреймворк.

Я встречал кучу народу, с вашей подачи легко говнокодящих на фреймворках, но не знающих простых вещей. Вот как и ТС, понятия не имеет, что заголовки нельзя отправлять раньше вывода. Да и вообще слово "заголовок" для него наверняка большая новость.

Давайте, давайте. Учите человека "хорошему". Это похоже на то, что маленького ребенка сразу учат высшей математике, забыв рассказать про таблицу умножения. Вышка же рулит!

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Valick
bestxp, не надо в крайности. Для написания программ нужна логика и она мало зависит от конкретного языка, тут я согласен с вами, но для того чтобы знать возможности конкретного языка необходимо его изучать. На форуме не мало примеров когда та или иная задача решается не как положено одним или двумя операторами, а через жЁпу в полсотни строк, это ли не говнокод?
С фреймворками еще сложнее... Сложнее заставить людей читать доки по ним. А нафига? Можно же залезть на форум, да напихать костылей на скорую руку.
___
Особенно заметно отсутствие стремления к изучению у людей которые нахватались верхушек РНР и считают что изучать SQL вроде как и лишнее занятие.


_____________
Стимулятор ~yoomoney - 41001303250491
bestxp
Прошу прочитать внимательно моих 2 сообщения, а не вырывать слова из контекста.

Там явно указал, если новичек то опасно не зная языки лезь во фреймворк, но зная язык, можно нырять с головой, и изучать в процессе пользования и активного рефакторинга.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.