![]() |
Страницы (3): « 1 [2] 3 » Показаны 39 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Оптимизация кода, и новые фичи (http://netadmin.ws/forum/showthread.php?threadid=7563)
А у меня такое вопрос, стоит ли делать так:
if ( isset($_GET['act']) ) {
$act = $_GET['act'];
if ($act != "vote" AND $act != "show_miss" AND $act != "show_all_miss" AND $act != "add_compliment" AND $act != "show_news" AND $act != "show_all_news" AND $act != "show_all_quotes" AND $act != "logout") {
print "<h1 align=\"center\"><bR /> <bR /> <bR />ПОПАЛСЯ ХАКЕÐ_!!!</h1>";
exit;
}
}
__________________
Админ - вождь Апачей...
А в чем проблема так делать? Ð_то ничему не грозит.
__________________
Всегда есть решение.
polo ну я имею ввиду оптимальность. а) Что бы скрипт меньше ресурсов жрал...
б) Чтоб проблем невзникло непредвиденных...
__________________
Админ - вождь Апачей...
Вообще, полная оптимальность - это конечно бы без $act = $_GET['act'];. Но если у тебя в $_GET['act'] особо объемистых данных не будет... для удобства можно сделать и копию с "нормальным" именем - на потребляемых ресурсах это отразится лишь теоретически.
P.S. Кстати, вместо print() и exit; можно воспользоваться одной функцией - exit() (или её альясом die()).
MarKer ну в приведенном примере значения маленькие, но есть др. функции (подобные) в которых происходит добавление статей в БД, и там поля до longtext 65т. с коп. символов, я это так же делаю, из $_POST['var'] записываю в $var а потом подставляю в SQL запрос...
__________________
Админ - вождь Апачей...
Ну... как говорится - копейка рубль бережет 
В таких случаях лучше конечно же не делать копии... или делать unset() для "неудобной" переменной после создания копии.
Можно просто воспользоваться символьной (или символической?) ссылкой:
$act =& $_GET['act'];
he][es Кстати, по твоему примеру - так делать не стоит имхо
Слишком много условий - криво. Либо надо делать
if ... elseif ... elseif ... else, или что-то вроде этого:
$actions = array ('add', 'del', 'edit', 'etc...');
if (in_array($act, $actions) == false) {...}
Т.е. можно и как ты, но в таком месиве можно легко допустить фотальную ашипку.
whisk я просто с такими "фишками" плохо разбираюсь, объясни поподробнее плз...
__________________
Админ - вождь Апачей...
in_array - возвращает TRUE, если значение существует в массиве.
quote:
$actions = array ('add', 'del', 'edit', 'etc...');
if (in_array($act, $actions) == false) {...}
__________________
http://www.best-pills-store.com
------------
$act =& $_GET['act'];
-------------
& Ð_то указатель.
$act =& $_GET['act']; в данном случае переменная $act будет ссылаться на тот же участок памяти что и $_GET['act'].
__________________
http://faq.pp.ru/read_mee/
Пасибо большое... заюзаю...
he][es добавил 01-02-2004 в 16:27:27:
А вот такие конструкции допустимы?
$vote_add =& (int) $_GET['vote_add'];
Судя по ошибке или нет, или пишу не так...
__________________
Админ - вождь Апачей...
php имеет свойства сам определять тип переменной. Если тебе надо быть уверенным что в $_GET['vote_add'] именно целое число то пиши intval($_GET['vote_add']).
__________________
Всегда есть решение.
polo т.е. пишу
$vote_add =& intval($_GET['vote_add']);
???
__________________
Админ - вождь Апачей...
да, только & нафига здесь. & создает ссылку на переменную, это здесь ни к чему. Ð_то полезно например использовать в функциях
при передачи параметров и чтобы глобальные переменные тоже менялись. Посмотри пример и сделай выводы:
$a = 1;
function print_a ($a) {
$a++;
echo $a;
}
print_a($a); // выведет 2
echo $a; // выведет 1
print_a(&$a); // выведет 2
echo $a; // выведет 2
__________________
Всегда есть решение.
Блин, я ещё больше запутался...
если мы делая так:
$k=5;
$a =& $k;
print $a; // 5
Делаем ссылку, на область памяти и не делаем новой переменной, (как я понимаю изменение $k повлечет соотв. изменение $a), то вызывая ф-ию с параметром &$a мы чего делаем???
если ф бы было $b = & print_a($a);
я б понял но как с параметром ссылки...ээ...
Я просто не догоняю как это работает?
$a=5 -> function($a=5) -> $a++ -> 6
это понятно, а
$a=5 -> function(&$a=5) я не понимаю...
__________________
Админ - вождь Апачей...
| Формат времени GMT. Текущее время 13:48. | Страницы (3): « 1 [2] 3 » Показаны 39 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.