Главная
 Сайт Андрея Зайчикова
Суббота, 4 Августа 2007г. 
Карта сайта Поиск по сайту Написать письмо  
 .:Навигатор 
Новости
Библиотека
Статьи
Олимпиады
FAQ (ЧаВо)
Гостевая книга 
Ссылки
 .:Информация 


FAQ(ЧаВо) по PHP.

Где взять РУССКУЮ ДОКУМЕНТАЦИЮ по PHP
Перевод для 3.07 лежит здесь http://www.webclub.ru/materials/php3/index.html

Как я могу вызвать скрипт .php3 внутри другого скрипта и поместить туда переменные? Что-то вроде <? include (other.php3?variable=test); ?>
Если Вы вкладываете файл, существующие переменные остаются.. Вы просто должны установить значение переменной перед вложением . <? $variable="test"; include ("other.php3"); // or require ("other.php3"); ?>

Переменная для имени файла. Что я делаю неправильно? $fname = $time".html";
Вы должны указать: $fname = $time.".html"; или $fname = "$time.html";

Какие команды мне надо использовать для доступа из PHP к базе MySQL. Я новичок в SQL.
Насколько я понимаю, Вы уже научились подключаться к MySQL? Есть несколько основных принципов работы с базой SQL:
  1. Подключение к серверу MySQL $openConn2db = mysql_connect( "$hostname:$port", "$username", "$password" );
  2. Выбор базы данных $dbSelected = mysql_select_db( $dbname, $openConn2db );
  3. создать запрос(query) к базе данных $queryResultID = mysql_query( $DBquery, $openConn2db );
  4. определение количества полей(number of fields) в результате запроса( mysql_num_fields ) $numFields = mysql_num_fields( $queryResultID );
  5. определение количество строк возвращаемых запросом(number of rows) ( mysql_num_rows ) $numRows = mysql_num_rows( $queryResultID );
  6. создание массива со строками результата( mysql_fetch_row ) $correspondingRowArray = mysql_fetch_row( $queryResultID ); [ Выясните размер, если вы желаете использовать цикл для выборки результатов запроса] $correspondingRowArraySize = sizeof( $correspondingRowArray );
  7. выборка данных из первого элемента массива $content = current( $correspondingRowArray ); echo "This is the first array element: $contentn";
  8. выборка данных из следующего элемента массива [ done in 'for' loop ] $content = next( $correspondingRowArray ); echo "This is the next array element: $contentn";
  9. закрытие соединения с сервером MySQL( mysql_close ) $closedConn2db = mysql_close( $connLinkID );
Это всего лишь элементарный пример работы с MySQL.

Мне требуется считать строку из файла. Функции fgetc() fgets() fgetss() не дали нужного мне результата. Что мне делать?
Используйте: $file = file($filename). Она читает $filename в массив($file).

Я уже нашел как экспортировать переменные Javascript в PHP (я использую hidden input field в HTML форме), но я не знаю как импортировать переменную PHP3 в функцию Javascript...
Конечно

Как делать upload файла.
Большинство проблем заключается в использовании:
вместо: Всегда требуется указывать параметр ENCTYPE, если вы предполагаете upload файлов.

Подскажите как я могу перенаправит пользователя на другой URL в php скрипте?
Необходимо воспользоваться функцией Header("Location: $URL"); и не выводить никаких данных перед этой строкой.

Как сделать, чтоб не выдавалось строка "Content Type" когда я запускаю PHP из командной строки?
% php -h
Использование: php [-q] [-h] [-s] [-v] [-i] [-f ] | { [args...]}
  -q       Quiet-mode.  Подавление заголовка HTTP.
  -s       Подсветка синтаксиса .
  -f Parse .  Implies `-q'
  -v       Номер версии
  -p       Pretokenize a script (creates a .php3p file)
  -e       Execute a pretokenized (.php3p) script
  -c Искать файл php3.ini в 
  -i       информация information
  -h       Эта справка

Я хочу зашифровать пароли пользователей с помощью UNIX.
Вы можете использовать функцию Crypt(). Unix шифрование одностороннее (вы не можете раскодировать, вы можете только сравнить два зашифрованных пароля). Например: if (crypt($What_They_Typed) == $StoredPassword) {echo "Correct Password";} else {echo "Doh!";}

Когда я делаю запрос к таблице MySQL включающую поле BLOB больше 20k ничего не возвращается. Все работает с маленькими полями blob, 4-10k, а при больших происходит PHP таймаут.
Наберите: mysqladmin var
И посмотрите на ограничения пакетов(packet) или буферов(buffer). Вам надо их увеличить и перезагрузить MySQL.

Конфигурация: solaris 2.6, apache 1.3.6, php 3.0.8 Проблема: Оператор: ничего не возвращает.
Вы неправильно используете $PATH_INFO. Для этого существуют переменные: $PHP_SELF, $REQUEST_URI, $SCRIPT_NAME

Я делаю запрос к MySQL, но запрос нечего не возвращает (пустой ответ). Я проверяю количество возвращенных строк результата (example: if( mysql_num_rows( $result ) > 0 )) Получаю предупреждение: "Warning: 0 is not a MySQL result index" . Что мне делать, как проверить результат?
Вы пробуете использовать указатель ответа=0(result identifier=0). Ноль показывает, что Ваш запрос ошибочен по некоторым причинам. Вы должны проверить ошибки после передачи запроса серверу и перед использованием указателя ответа (result identifier). Правильное решение в следующем коде: $result = mysql_query("select * from tables_priv"); if(!$result) { echo mysql_error(); exit; } или: $result = mysql_query("select * from tables_priv") or die("Bad query: ".mysql_error());

Как узнать IP адрес клиента?
Функция: string getenv(string varname); Возвращает переменные окружения, или false при ошибке. $ip = getenv("REMOTE_ADDR"); // получает ip-адрес пользователя Текущая версия PHP автоматически импортирует переменные окружения в переменные PHP, вы можете использовать $REMOTE_ADDR.

Я работаю на RedHat 5.2 c Apache 1.3.4. Хочу подключиться к серверу MS SQL. У меня не получается.
Функции mssql_* доступны только с Windows NT. В Linux вы должны использовать библиотеки Sybase (для SQL Server 6.5) или ODBC.

Я не нашел в руководстве как добавлять комментарий в текст программы.
Комментарий обозначается:
// comment
/* comment */
# comment

Я имею страничку с формой. Как я могу вернуться к ней, после передачи формы? Я пробовал использовать функцию "window.navigator", но она не работает по некоторым причинам.
Есть выход из этой ситуации, когда "страница с формой" и "submitting page" являются одной и той же. Тогда используется встроенная переменная $PHP_SELF, например: После передачи форма перезагружается, с текущими данными.

Я использую PHP3 в составе модуля Apache(UNIX). Я хочу защитить свои настройки сервера (конфигурацию, лог-файлы ...), потому что функции (copy, unlink, ...) могут их испортить. Как я могу сделать это?
Вы должны установить режим enable safe_mode в php.ini. Если safe_mode включен то у выполняемого скрипта права как у пользователя выполняющего скрипт.

Я использую PHP_AUTH_USER и PHP_AUTH_PASSWORD для проверки пользователей. Как мне сделать, чтобы пользователи могли выходить(logoff) и входить(logon) под другим именем?
Вам необходимо передать клиенту HEADER-401, он очистит парольный кэш броузера. Смотрите руководство в секции 'features' Вы можете создать таблицу для проверки имя/пароль и использовать cookie.

Я использую setcookie() на страничке и запрашиваю его значение на этой же страничке. Ничего не происходит.
Вы не можете использовать cookie и читать его значение в одном запросе. Вы можете сохранить значение cookie в переменной php. Единственный способ получить значение сделать повторный запрос.

 
 © Андрей Зайчиков