[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Курсы PHP. Урок №2 от IRBIS-team
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
twin
Любопытно... Архивчег можно? Мне в личку.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Dominus
Цитата (twin @ 5.08.2011 - 15:42)
Любопытно... Архивчег можно? Мне в личку.

Уже не требуется, спасибо, сам разобрался. Оказывается у меня конфликтовали одновременно подключаемые модули, а именно их роутеры.

Ещё раз спасибо и извините за беспокойство smile.gif
zeromind
не могу понять вот эту запись $GET[$var] = $param[$i]; почему $GET[$var] приравниваеться? а не val ? я так понимаю по структуре var => val , здесь элементами выступают как я понимаю val ??? почему пишеться в коде var(( обьясните)
так же интересует запись $i = 0; $param[$i]; ++$i; что происходит с $param, это же я так понимаю не массив? или после порезки explode'ом стал массивом? в $param[$i], $i тут означает ? номер элемента массива? если это так по понятно..

сам массив, переменная(ключ) =>элемент (в массивах я походу не шарю, но var => val всегда такая "структура" то?
Array
(
[
page] => main
[rem] => read
[id] => 0
[num] => 0
)


* Иначе (если рерайт не включен, но параметры передаются)
*/
elseif(count($_GET))

вот count($_GET) для чего здесь ? тоже не понятно (
twin
var - сокращенно от variable (переменная)
val - сокращенно от value (значение)

Так наверное будет проще разобраться.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
zeromind
это я прекрасно знаю, английским владею, но всё таки вопрос не в этом же..
ещё раз повторюсь:
1) запись $GET[$var] = $param[$i]; почему $GET[$var] приравниваеться? а не val ? ведь в val cодержиться не page, rum и т.д. а значения - main, read и т.д. соответственно..

2) про param[$i] я уже понял, после explode, функция возвращает массив, $i - указывает номер ключа..

3) count($_GET) для чего здесь ? тоже не понятно (
twin
Цитата (zeromind @ 10.09.2011 - 08:21)
это я прекрасно знаю, английским владею, но всё таки вопрос не в этом же..
ещё раз повторюсь:
1) запись $GET[$var] = $param[$i]; почему $GET[$var] приравниваеться? а не val ? ведь в val cодержиться не page, rum и т.д. а значения - main, read и т.д. соответственно..

2) про param[$i] я уже понял, после explode, функция возвращает массив, $i - указывает номер ключа..

3) count($_GET) для чего здесь ? тоже не понятно (

1/ Просто нужно подставить значение и будет понятнее:
foreach($GET as $var => $val)
foreach($GET as 'page' => 'main')

$GET[$var] = $param[$i];
$GET['page'] = $param[$i];


count($_GET) можно заменить на !empty($_GET), тоесть не пустой.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
zeromind
if(IRB_REWRITE == 'on' && !empty($_GET['route'])) 
{
$route = trim($_GET['route'], '/');
$param = explode('/', $route);
$i = 0;

foreach($GET as $var => $val)
{
if(!empty($param[$i]))
$GET[$var] = $param[$i];

++
$i;


ещё раз - $GET[$var](в ней у нас page) = $param[$i] - в параме у нас URL ввида - /main/read/5/ причем после explode - это массив с [0]main, [1]read, [2]5

так вот после приравнивания массивов $GET = $param[$i]
в GET теперь массив param ?
т.е. GET[$var] = теперь значения main, read и тд..

хотя дебагер показывает массив - var - page, rem и тд.. а val - main, read и тд..

вообщем я чёто то туплю походу, поясните плиз) а то сума так сойду
twin
$var - это ключ.
'page' => 'main'

А $param[$i] - одно из значений массива, полученного из $_GET['route']. Если мы имеем ссылку

httр://site/guest

то элемент $param[0] будет содержать значение 'guest'.
В результате этого телодвижения:
$GET[$var] = $param[$i];
получается массив $GET такого вида:
'page' => 'guest'

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
zeromind
вот меня волнует почему после приравнивания $GET[$var], мы получаем 'page' => 'guest', судя этой логике $GET[$var] - ключ(переменная) $var(в данном случае 'page') она содержит 'guest' как 'page' => 'guest'
Я думал иначе, что если мы приравниваем $GET[$var] то вместо $var (у нас это page) будет изменено название самой переменной $var с 'page' на 'guest', инетересно как тогда будет выглядить функция? )

наверно мне просто надо больше почитать о функциях над массивами)
freed-master
И снова IRB_KEY smile.gif

На сколько и чем именно лучше или хуже вместо механизма с IRB_KEY сделать так:

если все файлы проходят (обрабатываются) через index.php
то все их (файлы) кроме index.php создавать с расширением .inc (например)
и использовать запрет доступа к файлам через .htaccess

<FilesMatch "\.(inc)$">
Order allow,deny
Deny from all
</FilesMatch>

или вообще придумать свое расширение и, опять же, через .htaccess сказать чтоб они выполнялись как .php

такой вариант ведь возможен?

_____________
Всем, кто заинтересован, могу помочь начать зарабатывать на forex.
Пишите в личку или на e-mail: flash-dirt@yandex.ru
imbalance_hero
freed-master
А если кто-то зальет свой файл, и будет инклюдить твои файлы через свой, так вот такой ключ его не пропустит.
freed-master
Цитата
А если кто-то зальет свой файл, и будет инклюдить твои файлы через свой,...

куда зальет? в директорию с моими файлами, т.е. на мой аккаунт? сломает сервер что ли?
или я чего-то не понял?
к тому же расширение моих файлов в принципе можно скрыть через все тот же .htaccess

_____________
Всем, кто заинтересован, могу помочь начать зарабатывать на forex.
Пишите в личку или на e-mail: flash-dirt@yandex.ru
twin
Цитата (freed-master @ 14.10.2011 - 20:07)
И снова IRB_KEY smile.gif

На сколько и чем именно лучше или хуже вместо механизма с IRB_KEY сделать так:

если все файлы проходят (обрабатываются) через index.php
то все их (файлы) кроме index.php создавать с расширением .inc (например)
и использовать запрет доступа к файлам через .htaccess

<FilesMatch "\.(inc)$">
Order allow,deny
Deny from all
</FilesMatch>

или вообще придумать свое расширение и, опять же, через .htaccess сказать чтоб они выполнялись как .php

такой вариант ведь возможен?

Возможен, но это не совсем правильно. дело в том, что .inc это простой текстовый файл. И его, в отличии от .php можно просто прочитать браузером.

Что касается .htaccess - разумеется можно и так, но вот мне как то уютнее, когда скрипт не зависит от внешних условий и настроек. Удалит кто-нибудь по чистой случайности его и все - что жил, то зря.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
imbalance_hero
freed-master
Хакер найдет уязвимость твоего сайта через загрузку своих файлов на сервер. Но не имея доступ к БД он ничего добиться не сможет, но если проверки банального ключа не будет, о котором он не будет знать, то ему не проблема будет сначала загрузить .php с функцией glob, получить строение твоего сайта, а вторым: include config + mysql.php , в итоге полный доступ к БД, а если используешь ключ, то ты как бы создаёшь двойную безопасность.
freed-master
ок, спасибо за разъяснения!

_____________
Всем, кто заинтересован, могу помочь начать зарабатывать на forex.
Пишите в личку или на e-mail: flash-dirt@yandex.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.