пятница, 16 марта 2012 г.

Объявление!

Добрый день!
Я только изучаю Yii, поэтому не судите строго: в моем коде везде использовалось $_GET[имя переменной] - это в корне не верно!

Надо так: Yii::app()->request->getParam('имя переменной'); Тогда данные проходят проверку rules. Повышается безопасность.

Итак: вместо (например)
echo $_GET[имя переменной];

надо писать

echo Yii::app()->request->getParam('имя переменной');

10 комментариев:

  1. Это вы благодаря моей теме на форуме, решили исправить тоже ? :))

    ОтветитьУдалить
  2. Ответы
    1. Это не в rules. Это в любом месте, где надо обратиться к массиву передаваемых переменных.

      Удалить
    2. > Надо так: Yii::app()->request->getParam('имя переменной');
      > Тогда данные проходят проверку rules. Повышается безопасность.

      Каким образом данные проходят проверку? Я это имел ввиду

      Удалить
    3. Форма связана с моделью и в модели можно указать правила валидации, вот про них и речь.

      Удалить
    4. Yii::app()->request->getParam('имя переменной'); никакой валидации тут не происходит. Вот код метода getParams:

      public function getParam($name,$defaultValue=null)
      {
      return isset($_GET[$name]) ? $_GET[$name] : (isset($_POST[$name]) ? $_POST[$name] : $defaultValue);
      }

      Удалить
  3. не соглашусь, всегда напрямую обращаюсь и без проблем.

    ОтветитьУдалить
  4. getParam() - $_GET + $_POST
    Если нужно только $_GET - getQuery()
    $_POST - getPost()

    Вообще можно и не использовать эту обертку. Но у нее есть преимущества перед прямым обращением к переменным $_GET, $_POST.

    ОтветитьУдалить