![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| mustafallah |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.3.2008 Репутация: 1 Всего: 1 |
Ф-ция выполняется нормально, а Zend при анализе выдает ошибку.
Как ее исправить?
|
||||
|
|||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
похоже на то, что оно хочет один return
|
|||
|
||||
| gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Оно хочет return в конце функции.
И возвращаемое значение не может быть пустым. Это сообщение отредактировал(а) gta4kv - 8.7.2008, 16:12 |
|||
|
||||
| mustafallah |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.3.2008 Репутация: 1 Всего: 1 |
Ясно, ну и хрен с ним, с этим Zend'ом.
|
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
Это сообщение отредактировал(а) SamDark - 8.7.2008, 17:09 -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 6 Всего: 13 |
В настройках можно указать, какие ситуации будут считаться ошибками и вызывать предупреждения IDE.
-------------------- |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
mustafallah, эта функция сама по себе неправильная.
везде, где она встречается, вместо get_ip() напиши $_SERVER['REMOTE_ADDR'] Это сообщение отредактировал(а) Feldmarschall - 8.7.2008, 17:48 |
|||
|
||||
| sTa1kEr |
|
||||||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Иногда ваша уверенность в правоте, без знаний реализации, просто поражает. Или же вы не знаете кто и зачем высылает хидер X-Forwarded-For? Или же считаете, что единственная причина проверки этих заголовков - это определение "подмененного" IP?
Не совсем так. Во первых, если в конце функции нету return-а, то это равносильно тому, что в конце стоит стоит return без значения
Если функция должна возвращать какое-либо значение (к примеру, какой-либо getter), то любой return должен что либо возвращать. Если же функция ничего не должна возвращать (setter), то любой return должен быть без значения. Об этом и говорит первый ворнинг. Второй ворнинг говорит о том, что есть логические цепочки при которых return не встретится совсем (если все значения будут равны false), что логически тоже не правильно. Однако именно в конце ставить return не обязательно. Пример
В этом случае ворнига быть не должно, т.к. какое-либо значение будет возвращено в любом случае. Вы уверены, что здесь IP должен быть именно равен пустой строке или "unknown"? |
||||||||
|
|||||||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Его-то чего спрашивать? Как будто он этот код писал =)
По поводу знаний реализации. Можно поконкретнее сформулировать претензию? Я редко пишу на темы, в которых не разбираюсь. Судя по всему, речь идет о некой гипотетической ситуации, в которой этот анекдотичный код окажется предпочтительнее REMOTE_ADDR. С удовольствием послушаю. Вообще-то, вопрос определения IP адреса уже несколько набил оскомину. Я прекрасно помню, что на этом форуме есть фееричный топик, в котором лучшие умы несколько лет сочиняли идеальный алгоритм этой нетривиальной операции. И чуть не лопнули от возмущения, когда им сообщили, что все их старания - бессмысленная туфта. Давайте уже как-нибудь проведем ликбез, напишем фак, и закроем этот вопрос. Это сообщение отредактировал(а) Feldmarschall - 8.7.2008, 22:19 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
sTa1kEr, можно, я подключусь?
даже если абстрагироваться от того, зачем человеку нужны данные, полученные от клиента. которым по определению верить нельзя ни для авторизации, ни для блокировки(впрочем, возможно, блок по ip в некоторых случаях может быть необходимым решением - например, в случае DoS - но тогда уж лучше на уровне iptables блокировать). даже если абстрагироваться от того, что если отбросить авторизацию, то ip человеку может пригодиться для статистики, но тогда бы человек выбирал не одно из значений заголовков, а все мало-мальски похожее на ip или даже хранил бы весь набор пришедших header'ов. даже если. в X-Forwarded-For должны быть ip всех узлов-прокси, через которые прошли данные(кстати, не факт, что прокси-таки дописывают собственные адреса). соотвественно, человек своей функцией получает строку с запятыми, а не одно значение. и потом: в идеальном случае(клиент не подделывает данные, прокси добавляют адреса как надо) часто адресом клиента будет... внутренний адрес в сети(класса А или С). и только вторым - адрес шлюза провайдера, который, в принципе, имело бы смысл учитывать в статистике, если бы могли быть уверены, что адрес шлюза не третий и не четвертый. потому если уж хранить - то все, что похоже на ip. а если уж позарез надо одно-единственное значение, то имеет смысл обращаться к REMOTE_ADDR, молясь встретить там корректный ip последнего пройденного http-прокси или адрес клиента при наличии прямого IP. |
|||
|
||||
| sTa1kEr |
|
||||||||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Попробую. Навязывать свое "единственно правильное" решение там, где нету даже малейшего представления что за скрипт, для чего и где он используется. Вы бы уж лучше ссылку кинули на топик с обсуждением. Если человек не глупый, то сам поймет где собака зарыта.
Именно этот кусок отдельно? - Вряд-ли, даже если бы в нем не было ошибок. Заголовок X-Forwarded-For? - Легко. Когда отправитель заголовка известен, либо его надежность подтверждена в достаточной степени для текущей задачи.
Вы не под тем углом смотрите, вопрос не в определении IP адреса.
Согласен, надо уже поставить все точки над и.
Как можно утверждать, что данным нельзя верить по определению, не зная о каком отправителе идет речь? Может я их себе через loopback шлю, тогда им по определению можно верить. Опять же зачем все в одну кучу грести? Все зависит от задачи, от кого и какой результат вы хотите получить. Прошу прощенья, но дальше уже совсем ерундистика пошла, не имеющая отношение к делу. Но все же на пару моментов отвечу.
В единственном возможном случае, если сам прокси сервер находится в этой же подсети, что и пользователь. Крайне сомневаюсь, что существуют интернет шлюзы, которые бы использовали NAT маршрутизацию. |
||||||||||
|
|||||||||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
для того, чтоб определить "127.0.0.1" надо писать специальную функцию? так что, почему тогда нельзя работать с REMOTE_ADDR? ок. вполне допускаю, что "зажрался", стал "считать себя самым умным" и т.д. но, будь добр, все же укажи на фактически и/или логические ошибки. тебе ведь нетрудно віделить цитатой определенній участок и заявить: "ошибка здесь". не трудно ведь?
я имел в виду конкретніе диапазоны - те, которые используются для адресации в локальных сетях(10.0.0.0/8 и 192.168.0.0/16). не знаю, как у вас, а у нас практически все провайдеры(кроме варианта с ADSL) используюся вариант с использованием шлюза: от операторов кабельного ТВ до операторов мобильной связи. Что хотел мне сказать ты, учитывая, что прокси первого уровня просто обязан находиться в одной сети с пользователем(в случае, если не применяется шлюз, но по большому счету - это почти то же прокси, только не HTTP) я не понял. все же, надеюсь, ты укажешь мне, где я заблуждаюсь. |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
А. Так это просто придирка в стиле пхп-форумов.
Жаль. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
кстати, я не говорил только про намеренное искажение и подлог. вот например, данные из формы прийдут:ты сразу возьмешь и без проверки вставишь текстовое значение в поле в БД числового типа? даже без проверки и приведения типа? ну, это ж loopback. данным можно доверять |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |