nixp.ru v3.0

24 января 2017,
вторник,
12:11:32 MSK

DevOps с компанией «Флант»
anonymous написал 3 марта 2006 года в 19:46 (356 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Такая проблема. Апач не игнорирует переданные параметры переменных. Например:

http://localhost/open.php?id=2

При такой подаче запроса, функция open.php не открывает страницу id которой 2.

Ошибки тоже никакой не выдает. Просто загружает пустой лист. У кого нибудь была такая проблема? Помогите плиз.

Genie

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

но лично я бы поглядел сперва на значение register_globals, которое задаётся в php.ini, том, которое относится к apache/apache2.

в любом случае, желательно переходить на использование $_GET['id'] вместо $id в php-скриптах. проблем со значением register_globals поуменьшится.

Feuerbach

А при чем здесь апач?

Я так понимаю, это задача твоего open.php.

anonymous

Да в том то и дело, что дело не в скрипте. open.php примерно следующего содержания:

<?

if($id==1) { $file=fopen(«test/file.txt», «r»);

fpassthru($data); }

?>

Только файл «file.txt» на экран не выводится.

Feuerbach

Ну вот Genie ведь посоветовал заменить $id на $_GET['id'].

А вообще, странный у вас язык… Вот я тут что-то не понимаю, или дескриптор $file после открытия нигде не используется? Или php сам догадывается, что такое $data и как оно связано с $file?

rgo

помимо прочего:

if($id==1)

тык open.php?id=2, а не 1

Longobard

Всех кто пишет для register_globals=on надо убивать еще при рождении, заталкивать обратно в трещину и заливать бетоном…

xant
LONGOBARD
Всех кто пишет для register_globals=on надо убивать еще при рождении, заталкивать обратно в трещину и заливать бетоном…

Ugu. Nu a teh, kto pishet dla register_globals=off nado lovit i kastrirovat na meste. V resultate takogo «programmirovania» poluchaem nechto vrode phpbb.

8084
Ugu. Nu a teh, kto pishet dla register_globals=off nado lovit i kastrirovat na meste. V resultate takogo «programmirovania» poluchaem nechto vrode phpbb.

А тех кто пишет транслитом, надо…..догадайтесь сами..

xant
8084
А тех кто пишет транслитом, надо…..догадайтесь сами..

:) A chto delat? www.translit.ru delaet tolko huje.

А что делат? щщщ.транслит.ру делает толко хуэ

8084

А локаль настроить?

Longobard

Мораль: суцид спасет мир :)

xant, а почему тебе не нравится register_globals=off? Вот обьясни? phpbb кривой потому что он так написан, а не потому что register_globals=off. Жду аргументов :)

8084

>Мораль: суцид спасет мир :)

Еще одна мораль : Начни с себя :)

xant
8084
А локаль настроить?

Откуда иа ее родимуи в беосе восму? Шутка, у мена сеишас кноппих 4.0.2. на двд.

xant, а почему тебе не нравится register_globals=off? Вот обьясни? phpbb кривой потому что он так написан, а не потому что register_globals=off. Жду аргументов :)

Ia ne protiv togo,chtobi skripti rabotali s register_globals=off. No esli nekotorie «programmisti» ne mogut napisat besopasnii kod s register_globals=on, to im lucsche voobshe vosderzatsa ot programmirovania. A ne nravitsa mne register_globals=off, potomu chto nekotorie iz svoih malenkih scriptov ia pishu s register_globals=on.

PHPBB prosto zloba dna. V pervii raz vzlomali sait, kotorii ia moderirui. I sdelali eto cherez phpbb. Phpbb bil eshe ustanovlen «besopasno». I v phpbb kazetsa bila usvimost svazannaia s register_globals=on.

Longobard

xant я предлагаю убивать за register_globals=on тех, кто пишет код, который не будет работать с off. И вот почему:

Вот правишь ты такой код. Видишь переменную $foo, которая используется в скрипте. И фиг знает, откуда она пришла. Она может прийти из сессии, из плюшек, из гета, из поста, да много где можно ее найти. И вот сидишь, ломаешь голову. А если код написан для register_globals=off, то ты четко видишь нечто вроде $_SESSION['foo'], вопросов нету.

xant
LONGOBARD
xant я предлагаю убивать за register_globals=on тех, кто пишет код, который не будет работать с off. И вот почему:

S register_globals=on oba varianta koda budut rabotat.

Вот правишь ты такой код. Видишь переменную $foo, которая используется в скрипте. И фиг знает, откуда она пришла. Она может прийти из сессии, из плюшек, из гета, из поста, да много где можно ее найти. И вот сидишь, ломаешь голову. А если код написан для register_globals=off, то ты четко видишь нечто вроде $_SESSION['foo'], вопросов нету.

Ia soglasen, chto takoi kod inogda(v bolshinstve sluchaev) udobnee. No zachem vistavlat register_globals v off?

Longobard
xant
Ia soglasen, chto takoi kod inogda(v bolshinstve sluchaev) udobnee. No zachem vistavlat register_globals v off?

Чтобы не давать возможность программисту писать код под on.

xant

2longobard

Tak mi dostigli konsensusa. Ti predlagaesh ubivat teh, kto pishet php kod dla register_globals=on, a ia predlagau kastrirovat teh, kto vistavlaet v svoistvah php direktivu register_globals v off. Prekrasnoe reshenie:)

xant
LONGOBARD
Чтобы не давать возможность программисту писать код под on.

Izvinaite, longobard, no eto programmistu reshat. Esli programmist znaet, chto delaet, to lucsche nego nikto ne znaet, chto on delaet.

Longobard
xant
Izvinaite, longobard, no eto programmistu reshat. Esli programmist znaet, chto delaet, to lucsche nego nikto ne znaet, chto on delaet.

А зачем программисту принудительно выставлять register_globals=on, если он собирается писать нормальный код, который будет правильно работать и в off?

xant
LONGOBARD
А зачем программисту принудительно выставлять register_globals=on, если он собирается писать нормальный код, который будет правильно работать и в off?

A chto esli programmist reshil pisat normalnii kod trebuishui register_globals=on?

Longobard
xant
A chto esli programmist reshil pisat normalnii kod trebuishui register_globals=on?

Приведи пример нормального кода, который требует register_globals=on и не работает с register_globals=off

xant
LONGOBARD
Приведи пример нормального кода, который требует register_globals=on и не работает с register_globals=off

Da skolko ugodno.

<?
if($user == "longobard")
{
print("Longobard, vot primer normalnogo koda.
");
print(htmlspecialchars(file_get_contents('.' . $PHP_SELF)));
}
?>

A iz bolee serieznih, to naprimer ia nedavno stolknulsa omail-admin. Dovolno prilichnii scriptik, no trebuet register_globals=on i ne rabotaet s register_globals=off.

Longobard

Во, яркий пример «как писать НЕ надо».

Вот представь, я некий программер, которому надо разобраться в твоем коде. Я вижу переменную $user. А откуда она взялась? Интуитивно предполагаю, что из сессии, обычно такие вещи в сессии хранят. Но точно не уверен. Нужно ковыряться, тратить время. Сквозь зубы произносится «афтар м#дак, не мог что ли нормально написать, бл$». Вот действительно, ты не мог написать $_SESSION['user']?

Я два месяца переписывал код, написанный под register_globals=on. Заебался по самое нихачу.

xant
LONGOBARD
Во, яркий пример «как писать НЕ надо».

Вот представь, я некий программер, которому надо разобраться в твоем коде. Я вижу переменную $user. А откуда она взялась? Интуитивно предполагаю, что из сессии, обычно такие вещи в сессии хранят. Но точно не уверен. Нужно ковыряться, тратить время. Сквозь зубы произносится «афтар м#дак, не мог что ли нормально написать, бл$». Вот действительно, ты не мог написать $_SESSION['user']?

Primer kakoi-to ia durazkii privel. Vot chto imelos v vidu s register_globals=off

<?
if($_REQUEST['user'] == "longobard")
{
print("Longobard, vot primer normalnogo koda.
");
print(htmlspecialchars(file_get_contents('.' . $PHP_SELF)));
}
?>

Esli bi ia v svoem variante hotel sessii, to sdelal bi tak.

<?
session_start();
if(session_is_registered('user')&&$user == "longobard")
{
print("Longobard, vot primer normalnogo koda.
");
print(htmlspecialchars(file_get_contents('.' . $PHP_SELF)));
}
?>
8084

Все, к php больше не притронусь, а то — либо кастрируют, либо убьют, уж не знаю что и хуже:D

Longobard

xant ну вот видишь, ты сам ответил на свой вопрос.Чтобы мне понять, откуда взялась переменная $user — нужно либо копать остальные сырцы, либо быть телепатом. А когда ты написал $_REQUEST['user'] все встало на свои места. Сразу нельзя было написать? То, что ты написал сначала — это не корректный код.

P.S.: тогда уж не $PHP_SELF а $_SERVER['PHP_SELF']

Longobard
8084
Все, к php больше не притронусь, а то — либо кастрируют, либо убьют, уж не знаю что и хуже:D

Вот и правильно, а то развелось всяких кодероф блин, напишут гостевуху и понтов полные штаны. Найти грамотного пхпшника очень трудно :( Сейчас взял халтурку переписать нормально инет-магазин, написанный очередным кодеришкой (куча багов, хтмл выводится echo-м из пхп кода, инжектов попой жуй, короче полный набор), и времени совсем нету, пытался найти программера на замену — желающих куча, но половина отсеивается на вопросе «что такое шаблон и для чего он нужен», вторая половина — на вопросе «что такое mysql injections и как с ними бороться» :( Третьи вроде все знают, но написать толком не могут. В общем так вот :(

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.