За последние 24 часа нас посетили 19298 программистов и 1608 роботов. Сейчас ищет 881 программист ...

Переменные переменные

Тема в разделе "PHP для новичков", создана пользователем sey, 21 сен 2008.

  1. sey

    sey Активный пользователь

    С нами с:
    28 янв 2008
    Сообщения:
    32
    Симпатии:
    0
    PHP:
    1. $vars    = array('skip', 'page', 'cpage', 'action', 'id', 'ucat', 'category', 'number', 'template', 'static', 'year', 'month', 'day', 'title', 'sort', 'user', 'author', 'time', 'link', 'tpl');
    2.  
    3. foreach ($vars as $k => $v){
    4.     $$k = @htmlspecialchars($v);
    5. }
    прошу объясните что это делает?
     
  2. Anonymous

    Anonymous Guest

    Обрабатывает переменные $skip, $page ... функцией htmlspecialchars
     
  3. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Нихера он не делает. :)

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

    Код должен выглядить так:
    PHP:
    1. <?php
    2. $vars    = array('skip', 'page', 'cpage', 'action', 'id', 'ucat', 'category', 'number', 'template', 'static', 'year', 'month', 'day', 'title', 'sort', 'user', 'author', 'time', 'link', 'tpl');
    3.  
    4.  foreach ($vars as $v){
    5.      $$v = @htmlspecialchars($$v);
    6.  }
    Т.е. из строки skip делаем переменную $skip и присваиваем ей значение из переменной $skip при этом экранизируя html. Потом page и т.д.
     
  4. Anonymous

    Anonymous Guest

    lexa, малаца. я старый и не заметил...
     
  5. sey

    sey Активный пользователь

    С нами с:
    28 янв 2008
    Сообщения:
    32
    Симпатии:
    0
    lexa, т.е. в моем случае берется значение к и создается переменное, так как значение к 0, 1, 2...... и такое переменное задать нельзя, я правильно понял или нет? код взята strawberry(cutenews) http://strawberry.goodgirl.ru, а зачем они такую ошибку допустили?
     
  6. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    sey, правильно. А ошибку такую допустили потому что автор мудак. И автор оригинала - CuteNews - тоже. До кучи. :)

    Пользуй лучше 2z как альтернативу клубники. Идейно тоже (новостной скрипт + плагины), но плюшек больше. Хотя текстовую базу народ из 2z не поддерживают пока, но имеют в планах, как и SQLite (тоже текстовая база, по сути).

    P.S. На безопасности этот мудацкий код, кстати, не отражается, потому что:
    1) $_GET слешится;
    2) обёртке для БД слэшей достаточно, т.к. она идёт через $sql->метод(array(данные)) и мускульный класс там дополнительно свои специальные mysql_real_escape_string() ставит.
     
  7. Anonymous

    Anonymous Guest

    пацталом...... Подпись исправь тогда :)
     
  8. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Уши не горят и нормально. :) К тому же, от души поругал ведь там много всего на что смотреть без слёз сложно. Взять хотя бы код, который автор топика привёл. Это я сейчас могу много чего в голове держать и заранее знаю, где кака, где неплохо, а к чему можно долго не возвращаться. Раньше же у мну всё было "потрясающе" и "гениально". :)
     
  9. sey

    sey Активный пользователь

    С нами с:
    28 янв 2008
    Сообщения:
    32
    Симпатии:
    0