Мы должны были бы увидеть страницу, чтобы быть уверенными, но общая причина ошибки IE «Объект не поддерживает это свойство или метод» состоит в том, что у вас есть элемент на странице, name
или * Атрибут 1002 * содержит то же имя, что и неявная глобальная переменная.
IE6-7 имеет неудачное нестандартное поведение при копировании ссылок на именованные / IDd элементы в свойствах объекта окна:
<div id="foo">bar</div>
alert(window.foo); // the div node
Это означает, что они совместно используют пространство имен с переменными:
<div id="foo">bar</div>
var foo= 3;
alert(window.foo); // now 3
Но в другом, к сожалению, нестандартном поведении, если вы не скажете, что хотите переменную, IE запутается. Он пытается присвоить любые новые значения самому узлу элемента, что приведет к ошибке:
<div id="foo">bar</div>
foo= 3; // implicit global variable in other browsers. Error in IE
Это также происходит, когда вы забыли var
и сделали случайный глобал в функции:
function bof() {
foo= 3; // Error in IE
}
Итак, вам нужно будет пройтись по вашему сценарию в поисках переменных, которые вы назначили, не забывая включить для них оператор var
. Это не просто хорошая практика (и этого требует JS ECMA262-5 «строгий режим» в будущем) - она не дает IE быть глупым и ломать ваши страницы.
Кстати это:
$sql="select * from people where email = '".$email."'";
Это опасная дыра в безопасности SQL-инъекций. При построении SQL-запросов вы должны использовать mysql_real_escape_string()
над любым текстом, который хотите вставить в строковый литерал.