Извращение - Php&iis
Может у кого была такая проблема: ставлю IIS, к нему в качестве isapi-фильтра прикручиваю PHP, никаких ошибок не выдаётся... в настройках приложения добавляю расширение .php, кажется всё нормально, НО при работе скрипта, выдаётся сообщение, что неизвестная переменная, хотя тоже самое при работе сервера апаче работает отлично. Тесты типа phpinfo() проходят на ура.
Телепатов - в студию. Какая переменная?
Телепатов - в студию. Какая переменная?
Я бы ещё попросил само сообщение увидеть про "неизвестную переменную"... А то телепатия подсказывает как обычно про register_globals.
Я бы ещё попросил само сообщение увидеть про "неизвестную переменную"... А то телепатия подсказывает как обычно про register_globals.
Сообщение такого рода:
Notice: Undefined variable: Podrazdelenie in C:\Inetpub\wwwroot\search.php on line 8
Телепатов - в студию. Какая переменная?
Сама переменная берётся таким образом:
<form action="search_podr.php" method="post">
Выберите подразделение для поиска:
<select name="Podrazdelenie">
<option value="0">
<option value="1">Первое подразделение
<option value="2">Второе подразделение
<option value="3">Третье подразделение
<option value="4">Четвёртое подразделение
<option value="5">Пятое подразделение
<option value="6">Шестое подразделение
</select>
<input type=submit value="Поиск">
</p>
</form>
<form action="search_family.php" method="post">
Введите фамилию для поиска:
<input name="Family" type=text size=30>
<input type=submit value="Поиск">
</form>
<form action="insert_personal.shtml" method="post">
<input type=submit value="Добавить сотрудника">
</form>
А попробуй $_POST['Podrazdelenie']...
Спасиюо, действительно не подумал, что можно и таким образом получать переменную, только вот интересно, почему нельзя работать также ужобно на IIS, как и на Apache?
Спасиюо, действительно не подумал, что можно и таким образом получать переменную, только вот интересно, почему нельзя работать также ужобно на IIS, как и на Apache?
Читаем и вникаем.
Я mfender'у спасибо сказал)))
Спасиюо, действительно не подумал, что можно и таким образом получать переменную, только вот интересно, почему нельзя работать также ужобно на IIS, как и на Apache?
Глобальная переменная $Podrazdelenie - как раз и есть самое большое неудобство. Глобальные переменные - вообще зло. Самое правильное - пользоваться вообще множеством пространства имён (статические свойства классов).
Например, представь, что у тебя в action формы написано http://www.domain/script.php?Podrazdelenie=2, и вместе с этим ты отправляешь select name="Podrazdelenie" value=3. Угадай с трёх раз, какое значение будет в глобальной переменной $Podrazdelenie?
И о каких удобствах после этого мы говорим?
Ну, а уж если так хочется, то в php.ini это регулируется параметром register_globals, и название сервера (Apache или IIS) на это никак не влияют.
Глобальная переменная $Podrazdelenie - как раз и есть самое большое неудобство. Глобальные переменные - вообще зло. Самое правильное - пользоваться вообще множеством пространства имён (статические свойства классов).
Например, представь, что у тебя в action формы написано http://www.domain/script.php?Podrazdelenie=2, и вместе с этим ты отправляешь select name="Podrazdelenie" value=3. Угадай с трёх раз, какое значение будет в глобальной переменной $Podrazdelenie?
И о каких удобствах после этого мы говорим?
Ну, а уж если так хочется, то в php.ini это регулируется параметром register_globals, и название сервера (Apache или IIS) на это никак не влияют.
про register_globals я успел немного прочитать, насколько я понимаю её лучше не включать в целях безопасности...
про register_globals я успел немного прочитать, насколько я понимаю её лучше не включать в целях безопасности...
Да почему же... Можно оставлять включенной, просто входящими данными нужно пользоваться (препарировать их) правильно.