<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Дурацкий Девелопер &#187; Заметки</title>
	<atom:link href="http://ddev.ru/category/zametki/feed/" rel="self" type="application/rss+xml" />
	<link>http://ddev.ru</link>
	<description>Как раскрутить сайт? Как сделать сайт или блог? Как оптимизировать работу и вывести в топ? Ответы в этом блоге.</description>
	<lastBuildDate>Mon, 09 Apr 2012 16:20:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Как не быть обманутым?</title>
		<link>http://ddev.ru/620/kak-ne-byt-obmanutym/</link>
		<comments>http://ddev.ru/620/kak-ne-byt-obmanutym/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 16:20:30 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[Заметки]]></category>
		<category><![CDATA[еда]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=620</guid>
		<description><![CDATA[Сегодня не профильный пост. Вот мы получили заказ и первым делом надо потратить аванс =) Итак, вот то как нас могут обмануть в пунктах общественного питания. Официанты и их &#8216;маленькие хитрости&#8217; Мы опросили несколько десятков официантов и собрали 40 вещей, которые ты не хотел бы узнать о ресторанах и барах твоего родного города. Теперь тебе [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня не профильный пост.</p>
<p>Вот мы получили заказ и первым делом надо потратить аванс =)</p>
<p>Итак, вот то как нас могут обмануть в пунктах общественного питания.</p>
<p><span style="color: red;">Официанты и их &#8216;маленькие хитрости&#8217;</span><br />
Мы опросили несколько десятков официантов и собрали 40 вещей, которые ты не хотел бы узнать о ресторанах и барах твоего родного города. Теперь тебе придется питаться бутербродами и домашними сигаретами до конца твоих дней!</p>
<p>1. Фирменный коктейль, который якобы есть у каждого бармена, – это чаще всего перемешивание того, что осталось в бутылках, либо коктейль из остатков самого дешевого алкоголя. Так что, если вы попросите приготовить его еще раз, вкус будет отличаться. Впрочем, этого почти никто не замечает, так как такое практикуется на изрядно выпивших клиентах.</p>
<p>Стелла, официантка стриптиз-бара</p>
<p><span id="more-620"></span></p>
<p>2. Солянку с далеко не первой свежести колбасой у нас варят&#8230; Но никто еще не умер вроде.</p>
<p>Лола, 23 года, официантка в клубе, стаж 4 года</p>
<p>3. В нашем ресторане на шведский стол каждый день выставляются свежие пироги. Когда люди разбирают куски, мы дополняем пироги остатками со вчерашнего и позавчерашнего дня.</p>
<p>Лидия, официантка пивного ресторана</p>
<p>4. Горячее задерживается чаще всего просто потому, что молодой официант забыл про данный пункт в заказе.</p>
<p>Наталья, 22 года, официант ресторана итальянской кухни, стаж 1,5 года</p>
<p>5. Когда заказывают большие банкеты, то до 30% алкоголя и еды может просто не дойти до гостей.</p>
<p>Андрей, официант в недорогом спортбаре, стаж 1,5 года</p>
<p>6. Всегда можно сказать клиенту, что наш повар итальянец (француз и т. п.). Зачем говорить, что на самом деле это узбек без прописки?</p>
<p>Надежда, 19 лет, арт-кафе, стаж 2 года</p>
<p>7. Однажды мой администратор отковыривала плесень с пирожного.</p>
<p>Наталья, 22 года, официант в ресторане итальянской кухни, стаж 1,5 года</p>
<p>8. Постоянно недоливаем алкоголь: вместо 50 граммов наливаем 30. Это абсолютно незаметно, однако прибыль увеличивается в разы.</p>
<p>Алексей, бармен в клубе</p>
<p>9. Минералку нам давно не привозят. Мы наливаем ее прямо из крана. Именно поэтому во многих ресторанах она бесплатная.</p>
<p>Индира, официант в ресторане американской кухни</p>
<p>10. С тех пор как работаю в системе, если иду в кафе, всегда заказываю цельный кусок мяса, алкоголь и напитки в заводской таре, а не на разлив, лед отдельно.</p>
<p>Анна, 24 года, кафе-бар, стаж 3 года</p>
<p>11. Часто вместо качественной водки наливаем очень холодную некачественную. На вкус это невозможно заметить. Кстати, ради такого водку даже часто переливают в бутылки дорогих марок.</p>
<p>Николай, официант кафе на Тверской</p>
<p>12. Если впадлу идти за товаром, который вы просите, скажу, что его нет.</p>
<p>Лола, 23 года, официантка в клубе, стаж 4 года</p>
<p>13. Если попадается особо наглый клиент, мы можем не только плюнуть в кальян, но и пописать туда.</p>
<p>Михаил, управляющий кальянной в центре Москвы</p>
<p>14. Блюдо дня или блюдо, которое вам упорно втюхивает официант, – это то, что в большом количестве было приготовлено накануне и что до завтра не доживет.</p>
<p>Надежда, 19 лет, арт-кафе, стаж 2 года</p>
<p>15. В нашем баре одно время подавали суши, когда на них мода пошла. Так вот, продукты для них могли лежать весь день просто на полу на какой-нибудь бумаге. Сами понимаете, что с рыбой может случиться. А происходило это потому, что просто не хватало холодильников/морозильников.</p>
<p>Андрей, официант в недорогом спортбаре, стаж 1,5 года</p>
<p>16. Часто старое пиво взбалтывают в блендере. После этого на поверхности образуется пенка, которая придает ощущение свежести.</p>
<p>Александр, бармен ресторана американской кухни</p>
<p>17. Что быстро поднято, считается непадавшим или упавшим на газетку.</p>
<p>Анна, 24 года, кафе-бар, стаж 3 года</p>
<p>18. Абсолютно везде и всегда соки, водку, пиво и другие алкогольные напитки разбавляют водой, кладут льда больше, чем надо.</p>
<p>Мария, официантка в ресторане пятизвездочного отеля</p>
<p>19. Часто бывает, что заказывают несколько порций фруктов, овощей или суши. Официанты активно этим пользуются. Вместо трех порций на одной тарелке приносят едва ли две. Безусловно, никто этого не замечает, так как не знает, как выглядит целая порция.</p>
<p>Эльдар, официант японского ресторана</p>
<p>20. Можно доливать свою водку в бутылки из бара: берешь свой 1 литр недорогой водки из магазина, доливаешь ее по 250 граммов в разные откупоренные бутылки и потихоньку продаешь. К концу вечера ты продал магазинную бутылку, цена которой 200 рублей, тысячи за две.</p>
<p>Андрей, официант в недорогом спортбаре, стаж 1,5 года</p>
<p>21. Иногда наши официанты грешат тем, что ухватывают что-нибудь с тарелок, пока несут гостям. Чаще всего под руку попадаются фрукты, картошка фри. Особо голодные умудряются съесть чуть ли не половину порции.</p>
<p>Михаил, официант известного московского ресторана</p>
<p>22. Когда заказывают банкет, качество продукции заметно ухудшается, да и готовить могут на скорую руку: без перчаток, режут все одним ножом, мясо могут банально недожарить, недоварить. Но еще хуже дела обстоят при организации выездных банкетов (на теплоходе или на природе). Там обслуга вообще позволяет себе курить при сервировке, готовке блюд. Не стесняются и выпить, и поесть за счет клиента, причем салаты вполне могут поесть и руками.</p>
<p>Анна, официантка в компании по организации банкетов, стаж 2 года</p>
<p>Что бесит официантов</p>
<p>23. Нет кофе «экспрессо», «экспресс», коктейля «Самбука». Бесит, когда в пивном баре спрашивают, есть ли пиво. И когда спрашивают: «А что у вас вкусное?»</p>
<p>Анна, 24 года, кафе-бар, стаж 3 года</p>
<p>24. Больше всего бесит: «Долейте кипяточку в чайничек с чаем, пожалуйста».</p>
<p>Надежда, 19 лет, арт-кафе, стаж 2 года</p>
<p>25. Очень раздражает, когда, например, клиент сначала просит пепси, потом вспоминает, что хочет лимон. Когда приносишь лимон, до него доходит, что ему хочется пить из трубочки. А в конце концов ему, оказывается, нужен стакан другой формы.</p>
<p>Екатерина, официантка в дорогом ресторане, стаж более 3 лет</p>
<p>26. Нелюбимые клиенты – это быдло и девочки с бокалом шампанского на вечер и четкими целями на ночь.</p>
<p>Анна, 24 года, кафе-бар, стаж 3 года</p>
<p>27. Самое обидное – это когда огромная компания поела на огромные деньги, мы сто пятьдесят раз поменяли им музыку, свет, включали и выключали кондиционер и т. д., а чаевых получили 50 рублей.</p>
<p>Юлия, официантка модного японского ресторана</p>
<p>Советы</p>
<p>28. Постоянный клиент, который никогда не оставляет чаевых, любимым быть не может, пусть он и замечательный человек, все равно!</p>
<p>Надежда, 19 лет, арт-кафе, стаж 2 года</p>
<p>29. Я бы не стала заказывать, например, в мексиканском ресторане блюда китайской кухни, а в пельменной не позарилась бы на суши. Повар просто не может уметь готовить абсолютно все. Соответственно, больше шансов нарваться на некачественный продукт или на привезенный непонятно откуда полуфабрикат.</p>
<p>Екатерина, официантка в дорогом ресторане, стаж более 3 лет</p>
<p>30. В коктейль «Б-52» часто вместо куантро наливают простую водку. Это можно определить. Верный признак такого – если бармен долго не может зажечь шот, якобы потому, что «выветрились пары».</p>
<p>Александр, бармен ресторана американской кухни</p>
<p>31. Ходите в новые рестораны, там заботятся о клиентах больше.</p>
<p>Алексей, 22 года, ресторан, стаж 6 лет</p>
<p>32. Не придавайте большого значения указанию калорийности того или иного блюда в меню. Реальную информацию часто скрывают. Некоторые блюда просто не будут продаваться, если клиенты узнают, насколько они калорийны.</p>
<p>Екатерина, официантка в дорогом ресторане, стаж более 3 лет</p>
<p>33. В нашем, да и во многих других ресторанах есть специальная зона для нелюбимых клиентов. Туда обычно попадают те, кто оставляет плохие чаевые или кто хамски относится к официантам. Работники называют такую зону «для лохов». Таким клиентам гораздо дольше готовят еду, при случае в нее плюют и создают другие неприятности. Поэтому, если оставили мало чаевых, не стоит в ближайшее время приходить в это же место.</p>
<p>Ахмед, работник ресторана африканской кухни</p>
<p>34. Не ждите, что картинка в меню будет соответствовать тому, что вам принесут. Мы это объясняем тем, что сменился повар или девочка, которая сервировала блюдо.</p>
<p>Валентина, официантка в ресторане европейской кухни, стаж 2 года</p>
<p>35. Помните, что многое зависит от официанта. В том числе и правильность приготовления блюда, и качество используемых продуктов. И знайте, официанты между собой общаются и передают, кто хороший гость, а кто бяка.</p>
<p>Алексей, 22 года, ресторан, стаж 6 лет</p>
<p>36. Опасайтесь бизнес-ланчей: за 150 рублей очень тяжело сделать качественный обед из качественных продуктов.</p>
<p>Андрей, официант в недорогом спортбаре, стаж 1,5 года</p>
<p>37. Самый главный подвох в меню: цены могут быть представлены за 100 граммов продукта, а в блюде, например, 250 граммов. Так что в счете вы увидите сумму в 2,5 раза большую, чем указана в меню.</p>
<p>Екатерина, официантка в дорогом ресторане, стаж более 3 лет</p>
<p>38. Нужно отсекать прилагательные и ненужные слова и понимать, что «нежная сельдь с ароматными прованскими травами и молодым картофелем, выращенным на юге России» – это селедка с картошкой с рынка. Большего не ждите.</p>
<p>Надежда, 19 лет, арт-кафе, стаж 2 года</p>
<p>39. Если грубят и любят ссориться с официантом – можно нарваться и на то, что еду специально по полу поваляют.</p>
<p>Валентина, официантка в ресторане европейской кухни, стаж 2 года</p>
<p>40. Не верьте рекомендациям официантов. Например, если мы продадим определенное количество одной марки вина, с поставщиками которой у ресторана договор, мы получим бонусы. Естественно, что вам будут рекомендовать именно это вино.</p>
<p>Екатерина, официантка в дорогом ресторане, стаж более 3 лет</p>
<p><span style="color: #888888;">Источник <a target="_blank" href="http://ddev.ru/goto/http://warnet.ws/"  target="_blank"><span style="color: #888888;">http://warnet.ws/</span></a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/620/kak-ne-byt-obmanutym/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X Snow Leopard – переход на зимнее время</title>
		<link>http://ddev.ru/599/mac-os-x-snow-leopard-%e2%80%93-perexod-na-zimnee-vremya/</link>
		<comments>http://ddev.ru/599/mac-os-x-snow-leopard-%e2%80%93-perexod-na-zimnee-vremya/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 09:55:56 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[Заметки]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[snow leopard]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[зимнее время]]></category>
		<category><![CDATA[перевод часов]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=599</guid>
		<description><![CDATA[Заметил отвратительную штуку. В Mac Os X который у меня стоит, время перевелось на час назад. Ну так конечно в эпл не читали указ Президента об отмене перевода времени =). Вобщем править это следующим образом. Набираем подряд в терминале: 1 2 3 4 5 6 7 8 9 10 11 12 13 mkdir temp-tz cd [...]]]></description>
			<content:encoded><![CDATA[<p>Заметил отвратительную штуку. В <a href="http://ddev.ru/tag/mac/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  mac">Mac</a> Os X который у меня стоит, время перевелось на час назад. Ну так конечно в эпл не читали указ Президента об отмене перевода времени =). Вобщем править это следующим образом.<br />
Набираем подряд в терминале:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mkdir</span> temp<span style="color: #339933;">-</span>tz
cd temp<span style="color: #339933;">-</span>tz
curl <span style="color: #339933;">-</span>O http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.iana.org/time-zones/repository/releases/tzdata2011m.tar.gz</span>
tar zxvf tzdata2011m<span style="color: #339933;">.</span>tar<span style="color: #339933;">.</span>gz
sudo zic europe
curl <span style="color: #339933;">-</span>O http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.opensource.apple.com/tarballs/ICU/ICU-400.42.tar.gz</span>
tar zxvf ICU<span style="color: #339933;">-</span><span style="color:#800080;">400.42</span><span style="color: #339933;">.</span>tar<span style="color: #339933;">.</span>gz
cp tzdata2011m<span style="color: #339933;">.</span>tar<span style="color: #339933;">.</span>gz ICU<span style="color: #339933;">-</span><span style="color:#800080;">400.42</span><span style="color: #339933;">/</span>icuSources<span style="color: #339933;">/</span>tools<span style="color: #339933;">/</span>tzcode<span style="color: #339933;">/</span>
cd ICU<span style="color: #339933;">-</span><span style="color:#800080;">400.42</span><span style="color: #339933;">/</span>icuSources
<span style="color: #339933;">./</span>runConfigureICU MacOSX <span style="color: #339933;">--</span>with<span style="color: #339933;">-</span>data<span style="color: #339933;">-</span>packaging<span style="color: #339933;">=</span>archive
gnumake
sudo install <span style="color: #339933;">-</span>o root <span style="color: #339933;">-</span>g wheel <span style="color: #339933;">-</span>m <span style="color: #208080;">0644</span> <span style="color: #339933;">-</span>Sp data<span style="color: #339933;">/</span>out<span style="color: #339933;">/</span>icudt40l<span style="color: #339933;">.</span>dat <span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>share<span style="color: #339933;">/</span>icu<span style="color: #339933;">/</span>icudt40l<span style="color: #339933;">.</span>dat
cd <span style="color: #339933;">../../../</span> <span style="color: #339933;">&amp;&amp;</span> rm <span style="color: #339933;">-</span>rf temp<span style="color: #339933;">-</span>tz</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/599/mac-os-x-snow-leopard-%e2%80%93-perexod-na-zimnee-vremya/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Определение IP на php</title>
		<link>http://ddev.ru/582/opredelenie-ip-na-php/</link>
		<comments>http://ddev.ru/582/opredelenie-ip-na-php/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 12:26:28 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Заметки]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=582</guid>
		<description><![CDATA[Для определения IP клиента на PHP я использую один из этих примеров. 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [...]]]></description>
			<content:encoded><![CDATA[<p>Для определения IP клиента на <a href="http://ddev.ru/tag/php/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Php">PHP</a> я использую один из этих примеров.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span>
<span style="color: #000000; font-weight: bold;">function</span> getIp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$REMOTE_ADDR</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span><span style="color: #339933;">,</span> <span style="color: #000088;">$HTTP_X_FORWARDED</span><span style="color: #339933;">,</span> <span style="color: #000088;">$HTTP_FORWARDED_FOR</span><span style="color: #339933;">,</span> <span style="color: #000088;">$HTTP_FORWARDED</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$HTTP_VIA</span><span style="color: #339933;">,</span> <span style="color: #000088;">$HTTP_X_COMING_FROM</span><span style="color: #339933;">,</span> <span style="color: #000088;">$HTTP_COMING_FROM</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #339933;">,</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Get some server/environment variables values</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$REMOTE_ADDR</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$REMOTE_ADDR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$REMOTE_ADDR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$REMOTE_ADDR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$REMOTE_ADDR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$REMOTE_ADDR</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_X_FORWARDED</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_FORWARDED_FOR</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED_FOR</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_FORWARDED_FOR'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_FORWARDED</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_FORWARDED</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_FORWARDED'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_VIA</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_VIA</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_VIA</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_VIA</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_VIA</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_VIA</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_VIA'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_X_COMING_FROM</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_X_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_X_COMING_FROM'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_COMING_FROM</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_COMING_FROM</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_SERVER_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_ENV_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$HTTP_COMING_FROM</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_COMING_FROM'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Gets the default ip sent by the user</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$REMOTE_ADDR</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$direct_ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$REMOTE_ADDR</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Gets the proxy ip sent by the user</span>
	<span style="color: #000088;">$proxy_ip</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$proxy_ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_X_FORWARDED_FOR</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_X_FORWARDED</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$proxy_ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_X_FORWARDED</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_FORWARDED_FOR</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$proxy_ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_FORWARDED_FOR</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_FORWARDED</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$proxy_ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_FORWARDED</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_VIA</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$proxy_ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_VIA</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_X_COMING_FROM</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$proxy_ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_X_COMING_FROM</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_COMING_FROM</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$proxy_ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$HTTP_COMING_FROM</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if... else if...</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Returns the true IP if it has been found, else FALSE</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$proxy_ip</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// True IP without proxy</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$direct_ip</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$is_ip</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ereg</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'^([0-9]{1,3}\.){3,3}[0-9]{1,3}'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$proxy_ip</span><span style="color: #339933;">,</span> <span style="color: #000088;">$regs</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$is_ip</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$regs</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// True IP behind a proxy</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$regs</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Can't define IP: there is a proxy but we don't have</span>
			<span style="color: #666666; font-style: italic;">// information about the true IP</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end if... else...</span>
&nbsp;
<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end of the 'getIp()' function</span>
&nbsp;
<span style="color: #b1b100;">echo</span> getIp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>или вот так</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span>
<span style="color: #000000; font-weight: bold;">function</span> validip<span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">ip2long</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">!=-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$reserved_ips</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span>
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'0.0.0.0'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'2.255.255.255'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'10.0.0.0'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'10.255.255.255'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'127.0.0.0'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'127.255.255.255'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'169.254.0.0'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'169.254.255.255'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'172.16.0.0'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'172.31.255.255'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'192.0.2.0'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'192.0.2.255'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'192.168.0.0'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'192.168.255.255'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'255.255.255.0'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'255.255.255.255'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$reserved_ips</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$r</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$min</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ip2long</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$max</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ip2long</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">ip2long</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;=</span> <span style="color: #000088;">$min</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">ip2long</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> <span style="color: #000088;">$max</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getip<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>validip<span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_CLIENT_IP&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_CLIENT_IP&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,@</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_X_FORWARDED_FOR&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>validip<span style="color: #009900;">&#40;</span><span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">return</span> <span style="color: #000088;">$ip</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>validip<span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_X_FORWARDED&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_X_FORWARDED&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>validip<span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_FORWARDED_FOR&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_FORWARDED_FOR&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>validip<span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_FORWARDED&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_FORWARDED&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>validip<span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_X_FORWARDED&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_X_FORWARDED&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;REMOTE_ADDR&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #b1b100;">echo</span> getip<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/582/opredelenie-ip-na-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Трюки htaccess</title>
		<link>http://ddev.ru/567/tryuki-htaccess/</link>
		<comments>http://ddev.ru/567/tryuki-htaccess/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 15:47:43 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Заметки]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[трюки]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=567</guid>
		<description><![CDATA[.htaccess, это файл который управляет поведение сервера Apache. Тут я решил собрать трюки для htaccess. Убираем www из имени сайта. 1 2 3 4 RewriteEngine On RewriteCond %&#123;HTTP_HOST&#125; !^your-site.com$ &#91;NC&#93; RewriteRule ^&#40;.*&#41;$ http://your-site.com/$1 [L,R=301] Source: http://css-tricks.com/snippets/htaccess/www-no-www/ Запрещаем обращаться к нашим картинкам с другого сайта. 1 2 3 4 5 6 RewriteEngine On #Replace ?mysite\.com/ with [...]]]></description>
			<content:encoded><![CDATA[<p>.<a href="http://ddev.ru/tag/htaccess/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  htaccess">htaccess</a>, это файл который управляет поведение сервера Apache.</p>
<p>Тут я решил собрать <a href="http://ddev.ru/tag/tryuki/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  трюки">трюки</a> для  htaccess.</p>
<p><span id="more-567"></span><br />
Убираем www из имени сайта.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">RewriteEngine On
RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>HTTP_HOST<span style="color: #009900;">&#125;</span> <span style="color: #339933;">!</span>^your<span style="color: #339933;">-</span>site<span style="color: #339933;">.</span>com$ <span style="color: #009900;">&#91;</span>NC<span style="color: #009900;">&#93;</span>
RewriteRule ^<span style="color: #009900;">&#40;</span><span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span>$ http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//your-site.com/$1 [L,R=301]</span>
Source<span style="color: #339933;">:</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//css-tricks.com/snippets/htaccess/www-no-www/</span></pre></td></tr></table></div>

<p>Запрещаем обращаться к нашим картинкам с другого сайта.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">RewriteEngine On
<span style="color: #666666; font-style: italic;">#Replace ?mysite\.com/ with your blog url
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>HTTP_REFERER<span style="color: #009900;">&#125;</span> <span style="color: #339933;">!</span>^http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//(.+\.)?mysite\.com/ [NC]</span>
RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>HTTP_REFERER<span style="color: #009900;">&#125;</span> <span style="color: #339933;">!</span>^$
<span style="color: #666666; font-style: italic;">#Replace /images/nohotlink.jpg with your &quot;don't hotlink&quot; image url
</span>RewriteRule <span style="color: #339933;">.*</span>\<span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span>jpe?g<span style="color: #339933;">|</span>gif<span style="color: #339933;">|</span>bmp<span style="color: #339933;">|</span>png<span style="color: #009900;">&#41;</span>$ <span style="color: #339933;">/</span>images<span style="color: #339933;">/</span>nohotlink<span style="color: #339933;">.</span>jpg <span style="color: #009900;">&#91;</span>L<span style="color: #009900;">&#93;</span></pre></td></tr></table></div>

<p>Переадресайия WordPress фидов на feedburner</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>IfModule mod_alias<span style="color: #339933;">.</span>c<span style="color: #339933;">&gt;</span>
 RedirectMatch <span style="color: #cc66cc;">301</span> <span style="color: #339933;">/</span>feed<span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span>atom<span style="color: #339933;">|</span>rdf<span style="color: #339933;">|</span>rss<span style="color: #339933;">|</span>rss2<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>?$ http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//feedburner.com/yourfeed/</span>
 RedirectMatch <span style="color: #cc66cc;">301</span> <span style="color: #339933;">/</span>comments<span style="color: #339933;">/</span>feed<span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span>atom<span style="color: #339933;">|</span>rdf<span style="color: #339933;">|</span>rss<span style="color: #339933;">|</span>rss2<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>?$ http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//feedburner.com/yourfeed/</span>
<span style="color: #339933;">&lt;/</span>IfModule<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Создаем собственные страницы ошибок.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">ErrorDocument <span style="color: #cc66cc;">400</span> <span style="color: #339933;">/</span>errors<span style="color: #339933;">/</span>badrequest<span style="color: #339933;">.</span>html
ErrorDocument <span style="color: #cc66cc;">401</span> <span style="color: #339933;">/</span>errors<span style="color: #339933;">/</span>authreqd<span style="color: #339933;">.</span>html
ErrorDocument <span style="color: #cc66cc;">403</span> <span style="color: #339933;">/</span>errors<span style="color: #339933;">/</span>forbid<span style="color: #339933;">.</span>html
ErrorDocument <span style="color: #cc66cc;">404</span> <span style="color: #339933;">/</span>errors<span style="color: #339933;">/</span>notfound<span style="color: #339933;">.</span>html
ErrorDocument <span style="color: #cc66cc;">500</span> <span style="color: #339933;">/</span>errors<span style="color: #339933;">/</span>serverr<span style="color: #339933;">.</span>html</pre></td></tr></table></div>

<p>Скачивание вместо открытия.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>Files <span style="color: #339933;">*.</span>xls<span style="color: #339933;">&gt;</span>
  ForceType application<span style="color: #339933;">/</span>octet<span style="color: #339933;">-</span>stream
  <span style="color: #990000;">Header</span> set Content<span style="color: #339933;">-</span>Disposition attachment
<span style="color: #339933;">&lt;/</span>Files<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>Files <span style="color: #339933;">*.</span>eps<span style="color: #339933;">&gt;</span>
  ForceType application<span style="color: #339933;">/</span>octet<span style="color: #339933;">-</span>stream
  <span style="color: #990000;">Header</span> set Content<span style="color: #339933;">-</span>Disposition attachment
<span style="color: #339933;">&lt;/</span>Files<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Логирование ошибок <a href="http://ddev.ru/tag/php/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Php">PHP</a></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># display no errs to user
</span>php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
<span style="color: #666666; font-style: italic;"># log to file
</span>php_flag log_errors on
php_value <span style="color: #990000;">error_log</span> <span style="color: #339933;">/</span>location<span style="color: #339933;">/</span>to<span style="color: #339933;">/</span>php_error<span style="color: #339933;">.</span><span style="color: #990000;">log</span></pre></td></tr></table></div>

<p>Убираем расширения файлов из url.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">RewriteEngine on
RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>REQUEST_FILENAME<span style="color: #009900;">&#125;</span> <span style="color: #339933;">!-</span>d
RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>REQUEST_FILENAME<span style="color: #009900;">&#125;</span>\<span style="color: #339933;">.</span>html <span style="color: #339933;">-</span>f
RewriteRule ^<span style="color: #009900;">&#40;</span><span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span>$ $<span style="color:#800080;">1</span><span style="color: #339933;">.</span>html
<span style="color: #666666; font-style: italic;"># Replace html with your file extension, eg: php, htm, asp</span></pre></td></tr></table></div>

<p>Запрет на листинг директорий</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">Options <span style="color: #339933;">-</span>Indexes</pre></td></tr></table></div>

<p>Кеширование и компрессия статики на сайте.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">AddOutputFilterByType DEFLATE text<span style="color: #339933;">/</span>html text<span style="color: #339933;">/</span>plain text<span style="color: #339933;">/</span>xml application<span style="color: #339933;">/</span>xml application<span style="color: #339933;">/</span>xhtml<span style="color: #339933;">+</span>xml text<span style="color: #339933;">/</span>javascript text<span style="color: #339933;">/</span>css application<span style="color: #339933;">/</span>x<span style="color: #339933;">-</span>javascript
BrowserMatch ^Mozilla<span style="color: #339933;">/</span><span style="color: #cc66cc;">4</span> gzip<span style="color: #339933;">-</span>only<span style="color: #339933;">-</span>text<span style="color: #339933;">/</span>html
BrowserMatch ^Mozilla<span style="color: #339933;">/</span><span style="color:#800080;">4.0</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">678</span><span style="color: #009900;">&#93;</span> no<span style="color: #339933;">-</span>gzip
BrowserMatch bMSIE <span style="color: #339933;">!</span>no<span style="color: #339933;">-</span>gzip <span style="color: #339933;">!</span>gzip<span style="color: #339933;">-</span>only<span style="color: #339933;">-</span>text<span style="color: #339933;">/</span>html
Automatically add utf<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span> charset to files</pre></td></tr></table></div>

<p>Принудительное выставление кодировок файлам.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>FilesMatch <span style="color: #0000ff;">&quot;\.(htm|html|css|js)$&quot;</span><span style="color: #339933;">&gt;</span>
AddDefaultCharset UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>
<span style="color: #339933;">&lt;/</span>FilesMatch<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Источник: <a target="_blank" href="http://ddev.ru/goto/http://www.catswhocode.com/blog/10-useful-htaccess-snippets-to-have-in-your-toolbox"  title="www.catswhocode.com" target="_blank">www.catswhocode.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/567/tryuki-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Я на Я.Ру</title>
		<link>http://ddev.ru/484/ya-na-ya-ru/</link>
		<comments>http://ddev.ru/484/ya-na-ya-ru/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 17:43:34 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[Заметки]]></category>
		<category><![CDATA[яндекс]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=484</guid>
		<description><![CDATA[Друзья, теперь вы можете читать и комментировать мои записи и на Я.ру — Евгений! P.S. Так хотел Яша, меня заставили =))) 5329787.17578710.1309801347.78b078b6b2c501d872ad4d62b2bbd15d]]></description>
			<content:encoded><![CDATA[<p>Друзья, теперь вы можете читать и комментировать мои записи и на Я.ру — <strong><span class="b-yauser"><a target="_blank" href="http://ddev.ru/goto/http://swarez.ya.ru/" ><span style="color: #f00;">Е</span>вгений</a></span></strong>!<br />
<img src="http://bs.yandex.ru/resource/spacer.gif?sign=5329787.17578710.1309801347.78b078b6b2c501d872ad4d62b2bbd15d" alt="" width="1" height="1" /></p>
<p>P.S. Так хотел Яша, меня заставили =)))</p>
<p><span style="color: #c0c0c0;">5329787.17578710.1309801347.78b078b6b2c501d872ad4d62b2bbd15d</span></p>
]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/484/ya-na-ya-ru/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Глобальные и волшебные константы PHP</title>
		<link>http://ddev.ru/421/globalnye-i-volshebnye-konstanty-php/</link>
		<comments>http://ddev.ru/421/globalnye-i-volshebnye-konstanty-php/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 23:01:46 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Заметки]]></category>
		<category><![CDATA[constant]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[var]]></category>
		<category><![CDATA[vars]]></category>
		<category><![CDATA[глобальные переменные]]></category>
		<category><![CDATA[константы]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=421</guid>
		<description><![CDATA[Достаточно часто пишу код, применяя такоие вот волшебные константы, в основном применяю их для отладки. __LINE__ Текущий номер строки в файле. __FILE__ Полный путь и имя текущего файла. Если используется внутри подключаемого файла, то возвращается имя данного файла. Начиная с версии PHP 4.0.2, __FILE__ всегда содержит абсолютный путь с разрешенными символическими ссылками, тогда как в [...]]]></description>
			<content:encoded><![CDATA[<p> Достаточно часто пишу код, применяя такоие вот волшебные <a href="http://ddev.ru/tag/konstanty/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  константы">константы</a>, в основном применяю их для отладки.</p>
<ul>
<li><span style="color: #ff9900;">__LINE__</span> Текущий номер строки в файле.</li>
<li><span style="color: #ff9900;">__FILE__</span> Полный путь и имя текущего файла. Если используется внутри подключаемого файла, то возвращается имя данного файла. Начиная с версии <a href="http://ddev.ru/tag/php/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Php">PHP</a> 4.0.2, __FILE__ всегда содержит абсолютный путь с разрешенными символическими ссылками, тогда как в старых версиях в некоторых обстоятельствах возвращался относительный путь.</li>
<li><span style="color: #ff9900;">__DIR__</span> Директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слэш, за исключением корневой директории (добавлена в PHP 5.3.0.)</li>
<li><span style="color: #ff9900;">__FUNCTION__</span> Имя функции. (Добавлена в PHP 4.3.0.) Начиная с PHP 5 эта константа возвращает имя функции точно так, как оно было объявлено (с учетом регистра). В PHP 4 это значение всегда было в нижнем регистре.</li>
<li><span style="color: #ff9900;">__CLASS__</span> Имя класса. (Добавлена в PHP 4.3.0.) Начиная с PHP 5 эта константа возвращает имя класса точно так, как оно было объявлено (с учетом регистра). В PHP 4 это значение всегда было в нижнем регистре.</li>
<li><span style="color: #ff9900;">__METHOD__</span> Имя метода класса. (Добавлена в PHP 5.0.0) Имя метода возвращается так, как оно было объявлено (с учетом регистра).</li>
<li><span style="color: #ff9900;">__NAMESPACE__</span> Имя текущего пространства имен (с учетом регистра). Эта константа определяется во время компиляции (Добавлена в версии PHP 5.3.0).</li>
</ul>
<p>Под катом некоторые глобальные константы и небольшие сниппеты.</p>
<p><span id="more-421"></span></p>
<p>Путь к файлу  с http:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;http://&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_HOST'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SERVER_PORT'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">80</span> ? <span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;:&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SERVER_PORT'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">rtrim</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'\\'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_SELF'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Абсолютныйпуть к файлу для PHP младше 5.3.0</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'__DIR__'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
    <span style="color: #000088;">$iPos</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
    <span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;__DIR__&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$iPos</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span> 
<span style="color: #b1b100;">print</span> __DIR__<span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Еще один вариант получения абсолютного пути:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'__DIR__'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
    <span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;__DIR__&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span> 
<span style="color: #b1b100;">print</span> __DIR__<span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Хотя следующая конструкция не демонстрирует значение переменной а является эксплуатацией функции, я думаю она будет достаточно полезна:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$path_parts</span> <span style="color: #339933;">=</span> <span style="color: #990000;">pathinfo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/www/htdocs/inc/lib.inc.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$path_parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dirname'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$path_parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basename'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$path_parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'extension'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$path_parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'filename'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// с PHP 5.2.0</span></pre></td></tr></table></div>

<p>В результате выполнения этого кода мы получим следующее:</p>
<p><code>/www/htdocs/inc<br />
lib.inc.php<br />
php<br />
lib.inc<br />
</code></p>
<p>Еще одна полезная конструкция, проверяющая исполняется ли <a href="http://ddev.ru/tag/skript/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  скрипт">скрипт</a> самостоятельно или является подключенным к другому скрипту посредством include() или других функций включения:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">realpath</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #990000;">realpath</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SCRIPT_FILENAME'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/421/globalnye-i-volshebnye-konstanty-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP Authentication с PHP как FastCGI/SuExec</title>
		<link>http://ddev.ru/400/http-authentication-s-php-kak-fastcgisuexec/</link>
		<comments>http://ddev.ru/400/http-authentication-s-php-kak-fastcgisuexec/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 19:31:22 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Заметки]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[HTTP Authentication]]></category>
		<category><![CDATA[HTTP_AUTHORIZATION]]></category>
		<category><![CDATA[PHP_AUTH_PW]]></category>
		<category><![CDATA[PHP_AUTH_USER]]></category>
		<category><![CDATA[авторизация]]></category>
		<category><![CDATA[аутентификация]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=400</guid>
		<description><![CDATA[Однако, есть обходной путь доступны, которые могут сделать HTTP-авторизации для PHP работать даже в режиме CGI. У меня случилась интересная ситуация, мой скрипт постоянно выдавал форму ввода лоина и пароля при HTTP авторизации. Я никак не мог понять в чем дело. Оказалось все просто. Плохая новость в том, что этот тип авторизации не работает, если [...]]]></description>
			<content:encoded><![CDATA[<p>Однако, есть обходной путь доступны, которые могут сделать HTTP-авторизации для <a href="http://ddev.ru/tag/php/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Php">PHP</a> работать даже в режиме CGI.</p>
<p>У меня случилась интересная ситуация, мой <a href="http://ddev.ru/tag/skript/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  скрипт">скрипт</a> постоянно выдавал форму ввода лоина и пароля при HTTP авторизации. Я никак не мог понять в чем дело. Оказалось все просто. Плохая новость в том, что этот тип авторизации не работает, если ваш PHP установлен ​​и работает как FastCGI. Он отлично работает, когда PHP установлен как модуль.</p>
<p>Хотя&#8230; Решение довольно не тривиальное.</p>
<p><span id="more-400"></span></p>
<p>Первое, что надо сделать это созлдать .<a href="http://ddev.ru/tag/htaccess/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  htaccess">htaccess</a> в папке к которой хотим запретить доступ:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>IfModule mod_rewrite<span style="color: #339933;">.</span>c<span style="color: #339933;">&gt;</span>
RewriteEngine on
RewriteRule <span style="color: #339933;">.*</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span>E<span style="color: #339933;">=</span>HTTP_AUTHORIZATION<span style="color: #339933;">:%</span><span style="color: #009900;">&#123;</span>HTTP<span style="color: #339933;">:</span>Authorization<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span>
<span style="color: #339933;">&lt;/</span>IfModule<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Он переназначает пару логин/пароль в переменную <a href="http://ddev.ru/tag/http_authorization/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  HTTP_AUTHORIZATION">HTTP_AUTHORIZATION</a></p>
<p>В php скрипте должно быть следующее:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_AUTH_USER'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_AUTH_PW'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">':'</span> <span style="color: #339933;">,</span> <span style="color: #990000;">base64_decode</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_AUTHORIZATION'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>So here it is how a sample PHP script using <a href="http://ddev.ru/tag/http-authentication/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  HTTP Authentication">HTTP Authentication</a> would look like:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">// split the user/pass parts</span>
<span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_AUTH_USER'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_AUTH_PW'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">':'</span><span style="color: #339933;">,</span> <span style="color: #990000;">base64_decode</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_AUTHORIZATION'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// open a user/pass prompt</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_AUTH_USER'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'WWW-Authenticate: Basic realm=&quot;My Realm&quot;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP/1.0 401 Unauthorized'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Text to send if user hits Cancel button'</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;p&gt;Hello, &lt;/p&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_AUTH_USER'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;p&gt;You entered as your password: &lt;/p&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_AUTH_PW'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Вот и вся хитрость. Пользуйтесь на здоровье.</p>
]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/400/http-authentication-s-php-kak-fastcgisuexec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка кодировки в .htaccess</title>
		<link>http://ddev.ru/385/nastrojka-kodirovki-v-htaccess/</link>
		<comments>http://ddev.ru/385/nastrojka-kodirovki-v-htaccess/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 17:27:42 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[Заметки]]></category>
		<category><![CDATA[AddDefaultCharset]]></category>
		<category><![CDATA[codepage]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[utf-8]]></category>
		<category><![CDATA[windows-1251]]></category>
		<category><![CDATA[кодировки]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=385</guid>
		<description><![CDATA[Как я устраняю почти все проблемы с кодировкой на своих сайтах, использующих Apache server? Все можно сделать просто в пару строк в файле .htaccess Можно сделать с использованием FilesMatch или Files in htaccess Я предпочитаю так: 1 AddDefaultCharset UTF-8 Можно сделать так: 1 2 3 &#60;FilesMatch &#34;\.(htm&#124;html&#124;css&#124;js)$&#34;&#62; ForceType 'text/html; charset=UTF-8' &#60;/FilesMatch&#62; А можно так: 1 [...]]]></description>
			<content:encoded><![CDATA[<p>Как я устраняю почти все проблемы с кодировкой на своих сайтах, использующих Apache server?</p>
<p>Все можно сделать просто в пару строк в файле .<a href="http://ddev.ru/tag/htaccess/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  htaccess">htaccess</a></p>
<p>Можно сделать с использованием FilesMatch или Files in htaccess</p>
<p>Я предпочитаю так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">AddDefaultCharset UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span></pre></td></tr></table></div>

<p>Можно сделать так:</p>
<p><span id="more-385"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>FilesMatch <span style="color: #0000ff;">&quot;\.(htm|html|css|js)$&quot;</span><span style="color: #339933;">&gt;</span>
ForceType <span style="color: #0000ff;">'text/html; charset=UTF-8'</span>
<span style="color: #339933;">&lt;/</span>FilesMatch<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>А можно так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>FilesMatch <span style="color: #0000ff;">&quot;\.(htm|html|css|js)$&quot;</span><span style="color: #339933;">&gt;</span>
AddDefaultCharset UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>
<span style="color: #339933;">&lt;/</span>FilesMatch<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Можно явно указать для каких файлов выставить <a href="http://ddev.ru/tag/utf-8/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  utf-8">utf-8</a> кодировку:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">AddCharset UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span> <span style="color: #339933;">.</span>html</pre></td></tr></table></div>

<p>И тип этих файлов:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">AddType <span style="color: #0000ff;">'text/html; charset=UTF-8'</span> html</pre></td></tr></table></div>

<p>Лично я использую <a href="http://ddev.ru/tag/adddefaultcharset/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  AddDefaultCharset">AddDefaultCharset</a> директиву в корне web-сервера в файле .htaccess:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">AddDefaultCharset UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span></pre></td></tr></table></div>

<p> Хотя можно добавить в header выдаваемой пользователю страницы следующее:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">Content<span style="color: #339933;">-</span>Type<span style="color: #339933;">:</span> text<span style="color: #339933;">/</span>html<span style="color: #339933;">;</span> charset<span style="color: #339933;">=</span>UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span></pre></td></tr></table></div>

<p>Кстати: Метатег приведенный ниже, делает тоже самое что и директива в файле .htaccess, так что если вы добавили данную директиву на изменение кодлировки (ее принудительное назначение) в файле .htaccess то можете не добавлять данный метатег в свои файлы.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>meta http<span style="color: #339933;">-</span>equiv<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Content-Type&quot;</span> content<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/html; charset=utf-8&quot;</span> <span style="color: #339933;">/&gt;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/385/nastrojka-kodirovki-v-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E_ERROR timeout exception перехват в php</title>
		<link>http://ddev.ru/358/e_error-timeout-exception-perexvat-v-php/</link>
		<comments>http://ddev.ru/358/e_error-timeout-exception-perexvat-v-php/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 18:14:16 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Заметки]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[exceptions]]></category>
		<category><![CDATA[e_error]]></category>
		<category><![CDATA[timeout]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=358</guid>
		<description><![CDATA[Отличный пример нашел у http://insomanic.me.uk/post/229851073/php-trick-catching-fatal-errors-e-error-with-a. Спешу поделится. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 set_time_limit&#40;3&#41;; set_error_handler&#40;'myErrorHandler'&#41;; register_shutdown_function&#40;'fatalErrorShutdownHandler'&#41;; function myErrorHandler&#40;$code, $message, $file, $line&#41; &#123; echo &#34;ok&#34;; lambda&#40;&#41;; &#125; function fatalErrorShutdownHandler&#40;&#41; &#123; $last_error = error_get_last&#40;&#41;; if &#40;$last_error&#91;'type'&#93; === E_ERROR&#41; &#123; // fatal error [...]]]></description>
			<content:encoded><![CDATA[<p>Отличный пример нашел у <a target="_blank" href="http://ddev.ru/goto/http://insomanic.me.uk/post/229851073/php-trick-catching-fatal-errors-e-error-with-a" >http://insomanic.me.uk/post/229851073/php-trick-catching-fatal-errors-e-error-with-a</a>.</p>
<p>Спешу поделится.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">set_time_limit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">set_error_handler</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'myErrorHandler'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">register_shutdown_function</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'fatalErrorShutdownHandler'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> myErrorHandler<span style="color: #009900;">&#40;</span><span style="color: #000088;">$code</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #000088;">$line</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;ok&quot;</span><span style="color: #339933;">;</span>
lambda<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> fatalErrorShutdownHandler<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$last_error</span> <span style="color: #339933;">=</span> <span style="color: #990000;">error_get_last</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$last_error</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">E_ERROR</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// fatal error</span>
myErrorHandler<span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">E_ERROR</span><span style="color: #339933;">,</span> <span style="color: #000088;">$last_error</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'message'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$last_error</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'file'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$last_error</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'line'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> lambda<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #990000;">error_reporting</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$x</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">10000000</span><span style="color: #339933;">;</span><span style="color: #000088;">$x</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
<span style="color: #990000;">error_reporting</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
lambda<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/358/e_error-timeout-exception-perexvat-v-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Скачать видео Вконтакте</title>
		<link>http://ddev.ru/353/skachat-video-vkontakte/</link>
		<comments>http://ddev.ru/353/skachat-video-vkontakte/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 23:59:42 +0000</pubDate>
		<dc:creator>Eugene Che</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Заметки]]></category>
		<category><![CDATA[видео]]></category>
		<category><![CDATA[вконтакте]]></category>
		<category><![CDATA[скрипт]]></category>

		<guid isPermaLink="false">http://ddev.ru/?p=353</guid>
		<description><![CDATA[Написал небольшой скриптик, как скачать видео вконтакте. Смотрите, критикуйте ССЫЛКА]]></description>
			<content:encoded><![CDATA[<p>Написал небольшой скриптик, <strong>как скачать <a href="http://ddev.ru/tag/video/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  видео">видео</a> <a href="http://ddev.ru/tag/vkontakte/"  class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  вконтакте">вконтакте</a></strong>.</p>
<p>Смотрите, критикуйте <a target="_blank" href="http://ddev.ru/goto/http://iteye.ru/in/vkv/" title="Скачать видео вконтакте"  target="_blank">ССЫЛКА</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ddev.ru/353/skachat-video-vkontakte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

