Forum Webscript.Ru

Программирование => PHP => Тема начата: Berkut от 30 Мая 2004, 17:35:49

Название: как обойтись без eval :)
Отправлено: Berkut от 30 Мая 2004, 17:35:49
RomikChef за что тему зарубил??? С eval  я уже разобрался, но чем он так плох?
Использую я его в таком котексте:
Снначала проверяется, если вошёл админ то:
 
$admin_links=\'echo "IP: {$row[\\\'ip\\\']}   Редакактировать ";\';
//$row[\'ip\'], $row[\'id\'] - вынимаются в последующем из базы

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

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

Т.е. если вошёл админ, выводятся дополнительные линки для редактирования.
Название: как обойтись без eval :)
Отправлено: Макс от 30 Мая 2004, 17:39:04
начинающие eval()-ом легко могут сделать дырку на сайте. Поэтому обходись пока без него.
Твое объяснение я понял плохо, но :
Цитировать
Berkut:
Т.е. если вошёл админ, выводятся дополнительные линки для редактирования.
это реализуется простым if-ом
Название: как обойтись без eval :)
Отправлено: Berkut от 30 Мая 2004, 17:51:21
Но в моём случае eval никак не может повлиять на безопасность.
Цитировать
это реализуется простым if-ом

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

while($row=mysql_fetch_assoc($res)) {
       echo $row[\'massege\'].\'
\';
       if ( АДМИН )
               echo \'IP: \'.$row[\'ip\'];
}
Как-то не логично каждую итерацию проверять, выводить-ли линки или нет.
Название: как обойтись без eval :)
Отправлено: Меняздесьдавнонет от 30 Мая 2004, 18:11:13
Цитировать
Berkut:
Дык мне казалось, что как-то не очень хорошо в цикле использовать if

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

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

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