Автор Тема: как обойтись без eval :)  (Прочитано 2656 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как обойтись без eval :)
« : 30 Мая 2004, 17:35:49 »
RomikChef за что тему зарубил??? С eval  я уже разобрался, но чем он так плох?
Использую я его в таком котексте:
Снначала проверяется, если вошёл админ то:
  
$admin_links
=\'echo "IP: {$row[\\\'ip\\\']}   <a href=\\"admin.php?page=$page&edit={$row[\\\'id\\\']}\\"> Редакактировать </a>";\';
//$row[\'ip\'], $row[\'id\'] - вынимаются в последующем из базы

//если вошёл обычный пользователь, то:
$admin_links=\'\';

//Потом выдёргиваю сообщения из бд, допустим так: 
while($row=mysql_fetch_assoc($res)) {
       echo $row[\'massege\'].\'
\';
       eval($admin_links);
}

Т.е. если вошёл админ, выводятся дополнительные линки для редактирования.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
как обойтись без eval :)
« Ответ #1 : 30 Мая 2004, 17:39:04 »
начинающие eval()-ом легко могут сделать дырку на сайте. Поэтому обходись пока без него.
Твое объяснение я понял плохо, но :
Цитировать
Berkut:
Т.е. если вошёл админ, выводятся дополнительные линки для редактирования.
это реализуется простым if-ом
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как обойтись без eval :)
« Ответ #2 : 30 Мая 2004, 17:51:21 »
Но в моём случае eval никак не может повлиять на безопасность.
Цитировать
это реализуется простым if-ом

Дык мне казалось, что как-то не очень хорошо в цикле использовать if

while($row=mysql_fetch_assoc($res)) { 
       echo 
$row[\'massege\'].\'
\'; 
       if ( АДМИН )
               echo \'IP: \'.$row[\'ip\']; 
}

Как-то не логично каждую итерацию проверять, выводить-ли линки или нет.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
как обойтись без eval :)
« Ответ #3 : 30 Мая 2004, 18:11:13 »
Цитировать
Berkut:
Дык мне казалось, что как-то не очень хорошо в цикле использовать if

а eval в цикле использовать ХОРОШО???
а каждую итерацию запускать еще один интерпретатор - это ЛОГИЧНО???

то есть, вместо ОДНОЙ инсрукции проццессора - сравнение и условный переход, мы должны ПОЛНОСТЬЮ выполнить все операции над кодом: побуквенно парсить строку, переводить ее в байт-код, исполнять его?

куда катится этот мир...
ЧТО в головах этих людей?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28