PHP-скрипты ошибки Учебник

Локальные сети
Архитектура компьютерной сети
Сетевые операционные системы
Технология WI-FI
Угрозы и риски безопасности
беспроводных сетей
Математика
Контрольная по математике
Интегральное исчисление
Элементы теории множеств
Математический анализ
Применение производных
в исследовании функций
Аппарат дифференциальных
уравнений в экономике
Элементы линейного программирования
Динамическое программирование
Дифференциальное исчисление функций
Графические пакеты
Компьютерный монтаж
Учебник Autodesk
Mechanical Desktop
Автоматизация проектирования
Проектирование печатных плат
Вспомогательные программы
Моделирование схем
Редактирование принципиальных схем
Создание проекта в OrCAD
Учебник OrCAD
Редактирование текста
Графический редактор
Corel DRAW
Проектирование многослойных
печатных плат P-CAD
Физика решение задач
Методика решений задач по кинематике
Механика жидкостей и газов
Законы постоянного тока Колебания и волны. Переменный ток
Динамика и законы сохранения в механике
Магнитное поле, электромагнитное взаимодействие
Электростатика
Основы специальной теории относительности
Оптическая физика
Квантовая статистика
Магнитные свойства атомов
Зонная теория твердых тел
Курс лекций по атомной физике
Методика решения задач по Электростатике
История искусства;
Собор Нотр-Дам
Иллюстрированные рукописные книги
Техника темперной и масляной живописи
Иллюстрированный самоучитель
по Macromedia Flash
Учебник по схемотехнике,
Учебник PHP
Работа со строками
Создание расширений
Работа с переменными
Определение количества
аргументов
Доступ к аргументам
Установка на системах Windows
Область видимости переменной
Куки HTTP
Освобождение ресурсов
PHP-скрипты
Установка на системы UNIX
Возвращаемые функциями
значения
Замена переменных в строках
Безопасный режим
Использование функций
FAQ
Система автоматического
построения
 

Использование PHP

В этом разделе собраны наиболее часто встречающиеся при написании PHP-скриптов ошибки.

 
10. Как работать с PHP во FrontPage или другом HTML-редакторе, который настаивает на удалении моего кода?
11. Где можно найти полный список предустановленных переменных, и почему они не задокументированы в документации PHP? Китайская живопись В китайской живописи получили самостоятельное значение жанры, ставшие на многие века традиционными. Жанр жэнъу («люди») включал в себя всё, что касалось изображения человека: портрет, исторические и мифологические сюжеты, сцены дворцового быта. Прославленными живописцами этого жанра в Танский период были Янь Либэнь (VII в.) и Чжоу Фан (УШ—IX вв.).
12. Я пытаюсь получить доступ к одной из стандартных переменных CGI (таких как $DOCUMENT_ROOT или $HTTP_REFERER) в пользовательской функции, и не могу их найти. Что не так? Эмоциональное воздействие архитектуры

1. Я хотел бы написать общий PHP-скрипт, обрабатывающий данные из любой формы. Как мне узнать, какие переменные метода POST доступны?

Убедитесь, что track_vars включена в вашем файле php.ini. Начиная с PHP 4.0.3, эта возможность всегда on/включена. Когда track_vars on, она создаёт некоторые ассоциативные массивы, самый важный из них: $_POST (он используется для вызова из $HTTP_POST_VARS в PHP-версиях до 4.1.0). Так, чтобы написать общий скрипт для обработки переменных метода POST, вам необходимо что-нибудь такое: Основу любой ОС составляет управляющая программа,
foreach ($_POST as $var => $value) { echo "$var = $value<br>\n"; 
}

2. Мне необходимо конвертировать одинарные кавычки (') в backslash'и с одинарными кавычками. Как это можно сделать с помощью регулярного выражения?

Прежде всего просмотрите функцию addslashes(). Она делает в точности то, что вам нужно. Вы также должны просмотреть директиву magic_quotes_gpc в файле php.ini. Теоретическая механика Скорости и ускорения точек вращающегося тела

Теоретическая механика Основные понятия и аксиомы динамики. Понятие о трении Иметь представление о массе тела и ускорении свободного падения, о связи между силовыми и кинематическими параметрами движения, о двух основных задачах динамики.

3. Когда я выполняю следующие действия, вывод печатается в неправильном порядке:
function 
myfunc($argument) { echo $argument + 10; } $variable = 10; echo "myfunc($variable) 
= " . myfunc($variable);
что происходит?

Чтобы иметь возможность использовать в выражении результаты работы вашей функции (такие как конкатенация с другими строками в предыдущем примере), вам необходимо return\возвратить значение, а не echo() его.

4. Эй, что происходит с моими символами newline?
<pre> <?php echo "This should be the first line."; 
?> <?php echo "This should show up after the new line above."; ?> 
</pre>

В PHP блок кода завершается символами "?>" или "?>\n" (где \n означает newline/символ новой строки). Так, в приведённом примере, echo-предложения будут на одной строке, так как PHP опускает символы newline после конца блока. Это означает, что необходимо вставить дополнительный newline после каждого блока кода PHP, что заставить РНР выводить новые строки

Почему PHP этого не делает? Потому что при форматировании нормального HTML это обычно облегчает вам жизнь, поскольку эти newline вам не нужны, а иначе пришлось бы создавать строки огромной длины или как-нибудь иначе делать исходник страницы нечитабельным, чтобы получить нужный эффект.

5. Я получаю сообщение 'Предупреждение!: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.

Функциям header(), setcookie() и функциям сессии необходимо добавлять шапки/headers в поток вывода. Но шапки могут высылаться только до отправки любого другого содержимого. Проверьте, не высылает ли ваш скрипт шапки уже после высылки содержимого.

6. Мне нужен прямой доступ к информации шапки/header запроса. Как это сделать?

Функция getallheaders() сделает это, если вы запускаете PHP как Apache-модуль. Так, следующий участок кода покажет вам все шапки/headers запроса:
$headers = getallheaders(); foreach ($headers as $name => $content) 
{ echo "headers[$name] = $content<br>\n"; }

7. Когда я пытаюсь использовать аутентификацию совместно с IIS, я получаю 'No Input file specified'.

Здесь модель безопасности IIS терпит неудачу. Это проблема, общая для всех CGI-программ, работающих под IIS. Здесь нужно создать обычный HTML-файл (не разбираемый PHP) как страницу для входа в аутентифицируемой директории. Затем используйте тэг META для перенаправления на PHP-страницу или сделайте ссылку на PHP-страницу. Тогда PHP распозн́ает аутентификацию корректно. С модулем ISAPI проблем не возникает. Это не должно влиять на другие NT web-серверы.

8. Мой PHP-скрипт работает на IE под Lynx, но на Netscape часть вывода теряется. Если я выполняю "View Source", я вижу содержимое в IE, но не в Netscape.

Netscape более строг в отношении html-тэгов (таких как table), нежели IE. Может помочь запуск вашего html-вывода через html validator Например, это может происходить из-за отсутствия закрывающего тэга </table>.

Также и IE и Lynx игнорируют любые NUL'и (\0) в потоке HTML, а Netscape - нет. Лучший способ проверить это - скомпилировать версию командной строки PHP (известную также как CGI-версия) и запустить ваш скрипт из командной строки. В *nix - пропустите его через od -c и посмотрите на любые символы \0. Если вы в Windows, необходимо найти редактор или другую программу, которая позволяет просматривать двоичные файлы. Когда Netscape обнаруживает NUL в файле, он обычно ничего больше не выводит на данной строке, а IE и Lynx - выводят.

9. Как мне смешать XML и PHP? Он жалуется на мои тэги <?xml>!

Вам необходимо выключить краткие тэги/short tags, установив short_tags в 0 в файле php.ini, или использовать подходящую директиву Apache. Вы можете использовать и раздел <File>, чтобы делать это селективно.

10. Как работать с PHP во FrontPage или другом HTML-редакторе, который настаивает на удалении моего кода?

Проще всего включить использование ASP-тэгов в вашем коде PHP. Это позволит использовать ограничители кода <% и %> в стиле ASP. Некоторые популярные HTML-реакторы обрабатывают эту ситуацию более интеллигентно (на данный момент). Чтобы включить тэги в стиле ASP, вы должны установить переменную asp_tags в php.ini или использовать подходящую директиву Apache.

11. Где можно найти полный список предустановленных переменных, и почему они не задокументированы в документации PHP?

Лучше всего вставить часть <?php phpinfo(); ?> на страницу и загрузить её. Это  покажет все виды информации о вашей установке PHP, включая список переменных окружения, а также специальные переменные, установленные вашим web-сервером. Этот список действительно не может быть задокументирован в документации PHP, поскольку он будет отличаться для каждого сервера.

12. Я пытаюсь получить доступ к одной из стандартных переменных CGI (таких как $DOCUMENT_ROOT или $HTTP_REFERER) в пользовательской функции, и не могу их найти.
Что не так?

Переменные окружения являются нормальными глобальными переменными, поэтому вы обязаны либо объявлять их как глобальные переменные в вашей функции (используя "global $DOCUMENT_ROOT;", например) или использовать массив глобальных переменных (т.е. "$GLOBALS["DOCUMENT_ROOT"]"

 

HTML-формы (GET и POST)

Когда форма отправляется в PHP-скрипт, любые переменные этой формы автоматически делаются доступными скрипту PHP. Если опция конфигурации track_vars включена/on, то эти переменные будут находиться в ассоциативных массивах $_POST, $_GET и/или $_FILES, в соответствии с источником переменной в вопросе.

Пример 7-1. Простая переменная формы
<form action="foo.php" method="post"> Name: <input type="text" 
name="username"><br> <input type="submit"> </form>

Когда такая форма отправляется на сервер, значение из поля ввода text будет доступно в $_POST['username']. Если директива конфигурации register_globals включена/on, то эта переменная будет также доступна как $username в глобальной области видимости.

Примечание: директива конфигурации magic_quotes_gpc действует на значения Get, Post и Cookie. Если она включена, значение (It's "PHP!") автоматически становится (It\'s \"PHP!\"). Мнемонизирование необходимо для вставки в БД. См. также addslashes(), stripslashes() и magic_quotes_sybase.

PHP также понимает массивы в контексте переменных формы (см. соответствующий faq). Вы можете, например, сгруппировать взаимосвязанные переменные или использовать эту возможность для запроса значений из списка множественного выбора select:

Пример 7-2. Более сложные переменные формы
<form action="array.php" method="post"> Name: <input 
type="text" name="personal[name]"><br> Email: <input type="text" 
name="personal[email]"><br> Beer: <br> <select multiple 
name="beer[]"> <option value="warthog">Warthog <option value="guinness">Guinness 
<option value="stuttgarter">Stuttgarter Schwabenbräu </select> 
<input type="submit"> </form>

В PHP 3 использование переменной массива формы ограничено одномерными массивами. В PHP 4 таких ограничений нет.

Имена переменных при отправке изображения

При отправке формы возможно использование изображения/image вместо стандартной кнопки submit с помощью тэга такого вида:

<input type="image" src="image.gif" name="sub">

Когда пользователь щёлкает в каком-либо месте изображения, соответствующая форма передаётся на сервер с двумя дополнительными переменными: sub_x и sub_y. Они содержат координаты щелчка. Опытные программисты могут заметить, что фактические имена переменных, отправляемые браузером, содержат точку, а не символ подчёркивания, но PHP конвертирует точку в символ подчёркивания автоматически

Математика решение задач