Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№120-10-2006 18:01:14

alik
Участник
 
Группа: Members
Зарегистрирован: 20-10-2006
Сообщений: 3

Мегабаг с onload

Наткнулся на баг.
К примеру есть страничка, с таким куском кода:

Выделить код

Код:

<script language="">
function onload_() {
blablabla=1;
}
</script>
<body onload="onload_()">
<?php
session_start();
$_SESSION['time'] = time();
print_r($_SESSION);
?>
</body>

И другая страничка:

Выделить код

Код:

<?php
session_start();
print_r($_SESSION);
?>

В первом случае print_r выведет реальное время, а вот на второй страничке уже с небольшой дельтой.
Это происходит, потому что onload не понятно по каким причинам перезагружат страничку еще раз, в следствие чего переменные сессии генерятся еще раз.
И еще: при повторной загрузке первой страницы теряются переменные $_POST.

Считаю, что это очень большой баг.

ЗЫ: Сорри, не знал куда бросить тему. Искренне надеюсь, что модер кинет ее в нужный раздел.

Отсутствует

 

№220-10-2006 19:51:18

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Мегабаг с onload

не просёк в чём проблема. onload страницу не перегружает. если у тебя другие данные - приведи http логи.


!

Отсутствует

 

№320-10-2006 20:17:10

Quicksilver tears
Забанен
 
Группа: Extensions
Зарегистрирован: 13-06-2005
Сообщений: 4459

Re: Мегабаг с onload

==> Разработка

Отсутствует

 

№420-10-2006 20:28:12

alik
Участник
 
Группа: Members
Зарегистрирован: 20-10-2006
Сообщений: 3

Re: Мегабаг с onload

Выделить код

Код:

alik@dev:~/public_html/test$ cat index.php
<?php
session_start();
?>
<body onload="view_pic()">
<script language="javascript">
        function view_pic() {
                document.pic.src='index2.php';
        }
</script>
<?php
$_SESSION['time'] = time();
print_r($_SESSION);

for($i =0; $i < 100; $i++) {
        for($j = 0; $j < 500; $j++)
                echo "bla";
        echo "<br />";
}

?>
<img name="pic" src="">
</body>
alik@dev:~/public_html/test$ cat index2.php
<?php

session_start();
print_r($_SESSION);

?>
alik@dev:~/public_html/test$

Вместо

Выделить код

Код:

for($i =0; $i < 100; $i++) {
        for($j = 0; $j < 500; $j++)
                echo "bla";
        echo "<br />";
}

можно вставить любой текст, который будет генериться больше 1 секунды.

Apache/1.3.33 Ben-SSL/1.55 (Debian GNU/Linux) пишет

10.100.111.22 - - [20/Oct/2006:20:09:48 +0400] "GET /~alik/test/index.php HTTP/1.1" 200 210 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7"
10.100.111.22 - - [20/Oct/2006:20:09:49 +0400] "GET /~alik/test/index.php HTTP/1.1" 200 210 "https://localhost/~alik/test/index.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7"
10.100.111.22 - - [20/Oct/2006:20:09:49 +0400] "GET /~alik/test/index2.php HTTP/1.1" 200 47 "https://localhost/~alik/test/index.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7"

Отсутствует

 

№520-10-2006 21:56:46

Yan
Участник
 
Группа: Extensions
Откуда: Москва
Зарегистрирован: 27-02-2005
Сообщений: 1019

Re: Мегабаг с onload

alik
Минимально проблемный код мне удалось сократить до 12 символов:

Выделить код

Код:

<img src="">

:)

Из чего становится понятно, откуда ноги у лишнего запроса растут - Firefox просто пытается подгрузить картинку, а т.к. атрибут src пустой, то он берёт адрес текущей страницы (по аналогии с пустым action="" у форм).

Достаточно просто убрать атрибут src, и второго запроса идти не будет.

Отсутствует

 

№621-10-2006 13:21:43

alik
Участник
 
Группа: Members
Зарегистрирован: 20-10-2006
Сообщений: 3

Re: Мегабаг с onload

Yan, круто. Ты был прав.

Отсутствует

 

№721-10-2006 20:04:06

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11771

Re: Мегабаг с onload


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]