Главная страница

____________________________________________________________________

 

Q: Где взять РУССКУЮ ДОКУМЕНТАЦИЮ по PHP.

A:

Перевод для 3.07 лежит здесь http://www.webclub.ru/materials/php3/index.html

Q: Как я могу вызвать скрипт .php3 внутри другого скрипта и поместить туда переменные? Что-то вроде
<? include (other.php3?variable=test); ?>

A:

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

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

A:

Вы должны указать: $fname = $time.".html"; или $fname = "$time.html";

Q: Какие команды мне надо использовать для доступа из PHP к базе MySQL. Я новичок в SQL.

A:

Насколько я понимаю, Вы уже научились подключаться к MySQL? Есть несколько основных принципов работы с базой SQL:
1) Подключение к серверу MySQL( mysql_connect )
$openConn2db = mysql_connect( "$hostname:$port", "$username", "$password" );
2) Выбор базы данных (database) ( mysql_select_db )
$dbSelected = mysql_select_db( $dbname, $openConn2db );
3) создать запрос(query) к базе данных ( mysql_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";
6) закрытие соединения с сервером MySQL( mysql_close )
$closedConn2db = mysql_close( $connLinkID );
Это всего лишь элементарный пример работы с MySQL.

Q: Мне требуется считать строку из файла. Функции fgetc() fgets() fgetss() не дали нужного мне результата. Что мне делать?

A:

Используйте:
$file = file($filename). Она читает $filename в массив($file).

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

A:

Конечно
<script language="JavaScript"> var somejsvar = <?echo $somephpvar?>; </script>

Q: Как делать upload файла
Форма передается, но вот файл не появляется в моей директории "/tmp" .

A:

Большинство проблем заключается в использовании:
<form action="upload.php3" method="post">
вместо:
<form action="upload.php3" method="post" enctype="multipart/form-data">
Всегда требуется указывать параметр ENCTYPE, если вы предполагаете upload файлов.

Q: Подскажите как я могу перенаправит пользователя на другой URL в php скрипте? Я пробовал:
echo "<head>";
echo "<meta http-equiv="redirect" content='URL=www.somewhere.com'>"; Не сработало.

A:

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

Q: Как сделать, чтоб не выдавалась строка "Content Type" когда я запускаю PHP из командной строки?
A:

% 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"PATH"
 Искать файл php3.ini в "PATH"

  -i       информация information
  -h       Эта справка

Q: Я использую следующий выбор в форме:: <select name="pets[]" multiple> <option value=0>Dogs <option value=1>Cats <option value=2>Birds <option value=3>Frogs <option value=4>Rocks <option value=5>Other </select>
форма посылает: blah...&eyecolor=1&pets%5B%5D=2&pets%5B%5D=3...blah
Я возвращаюсь опять и выбираю Birds и Frogs. count(pets[]); возвращает 1, что не совпадает с выбранным мной...

A:

Функция count($pets) возвращает правильный результат.

Q: Я хочу зашифровать пароли пользователей с помощью UNIX.

A:

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


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

A:

Наберите: mysqladmin var
И посмотрите на ограничения пакетов(packet) или буферов(buffer). Вам надо их увеличить и перезагрузить MySQL.

 

Q: Конфигурация:solaris 2.6, apache 1.3.6, php 3.0.8 Проблема: Оператор: <?php echo $PATH_INFO ?> ничего не возвращает.

A:

Вы неправильно используете $PATH_INFO. Для этого существуют переменные:

   $PHP_SELF
   $REQUEST_URI
   $SCRIPT_NAME

Q: Я делаю запрос к MySQL, но запрос нечего не возвращает (пустой ответ). Я проверяю количество возвращенных строк результата (example: if( mysql_num_rows( $result ) > 0 )) Получаю предупреждение: "Warning: 0 is not a MySQL result index" . Что мне делать, как проверить результат?

A:

Вы пробуете использовать указатель ответа=0(result identifier=0). Ноль показывает, что Ваш запрос ошибочен по некоторым причинам. Вы должны проверить ошибки после передачи запроса серверу и перед использованием указателя ответа (result identifier). Правильное решение в следующем коде:"RB" $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());

Q: Я использую MySQL и у меня поле longblob. При попытке поместить символы " '( ) в поле, происходит ошибка.

A:

Смотри функцию addslashes.

Q: Я использую функцию
$erg = fputs($output, $data."n"); и я не могу поместить символ перевода строки как r ...

A:

Вы пробуете записать символ перевода строки, просмотрите файл $output в текстовом редакторе или командой more. Если вы смотрите файл через броузер, он не распознает символ n, используйте "<br>"; Также попробуйте $data."n" без пробелов вокруг "."

Q: Как узнать IP адрес клиента?

A:

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

 

Q: Я работаю на RedHat 5.2 c Apache 1.3.4. Хочу подключиться к серверу MS SQL. У меня не получается.

A:

Функции mssql_* доступны только с Windows NT. В Linux вы должны использовать бтблиотеки Sybase (для SQL Server 6.5) или ODBC

Q: Я не нашел в руководстве как добавлять комментарий в текст программы.

A:

Комментарий обозначается:
// comment
/* comment */
# comment

Q: Я имею страничку с формой. Как я могу вернуться к ней, после передачи формы? Я пробовал использовать функцию "window.navigator", но она не работает по некоторым причинам.

A:

Есть выход из этой ситуации, когда "страница с формой" и "submitting page" являются одной и той же. Тогда используется встроенная переменная $PHP_SELF, например:
<form action="<? echo $PHP_SELF; ?>" method=post> После передачи форма перезагружается, с текущими данными.

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

A:

Вы должны установить режим enable safe_mode в php.ini. Если safe_mode включен то у выполняемого скрипта права как у пользователя выполняющего скрипт.

Q: Я использую PHP_AUTH_USER и PHP_AUTH_PASSWORD для проверки пользователей. Как мне сделать, чтобы пользователи могли выходить(logoff) и входить(logon) под другим именем?

A:

Вам необходимо передать клиенту HEADER-401, он очистит парольный кэш броузера. Смотрите руководство в секции 'features' Вы можете создать таблицу для проверки имя/пароль и использовать cookie.

Q: Я использую setcookie() на страничке и запрашиваю его значение на этой же страничке. Ничего не происходит.

A:

Вы не можете использовать cookie и читать его значение в одном запросе. Вы можете сохранить значение cookie в переменной php. Единственный способ получить значение сделать повторный запрос.

Q: Как создать каталог с поддиректориями?

A:

Скачайте файл http://www.kosek.cz/php/ukazky.zip Он содержит файлы odkazy.sql и odkazy.php. Первый из них создает таблицы в базе (расчитано на MS SQL, легко исправить на MySQL) Файл odkazy.php - скрипт для показа содержимого каталога и поиска по нему. Коментарии по- чешски

Q: Какое расширение должно быть у файла, содержащего php-скрипт?
A:

page.php3, page.phtml или page.php

Q: Как настроить выполнение скрипта php в файлах с расширениями, отличающимися от .php3 или .phtml
A:

По умолчанию файлы с расширениями .htm и .html не обрабатываются PHP и директивы PHP в них не интерпретируются.

По умолчанию PHP работает в файлах с расширениями .phtml (PHP2) и .php3 (PHP3). Однако если Вам хочется , чтобы директивы PHP обрабатывались в файлах .html и .htm - то необходимо создать файл .htaccess (с точкой в начале). Действие этого файла будет распространятся на текущую и на все расположенные ниже директориии. Файл .htaccess должен содержать строку вида:

AddType application/x-httpd-php3 .html .htm (для php3)

Q: Что надо прописать в .htaccess, чтобы заставить работать PHP, который у вас установлен.
A:

Файлы php должны иметь расширения php, phtml, php3 - это обязательно, и вызываться они должны так: domain.ru/script.php

Q: Как узнать настройки PHP?
A:

Для этого создайте любой файл с расширением .php, например, test.php, содержащий следующую строку:
<? phpinfo();?>
Скопируйте этот файл на сервер. Затем в броузере наберите: http://yourdomain.ru/test.php В броузере Вы увидите все текущие настройки PHP интерпретатора.

Q: Почему при обращении к базе данных mysql из php-скрипта она возвращает искаженные данные, то есть перед каждым символом '"' (кавычки) ставит сомвол '' (слэш)?

A:

У нас на сервере установлен параметр magic_quotes_gpc=on Для того, чтобы не отображались обратные слэши необходимо в РНР скрипт добавить следующий текст:

myAddSlashes($st) {
if (get_magic_quotes_gpc()==1) {
return $st;
} else {
return AddSlashes($st);
}
}

 





Новости

День России
08.06.2010


NODEX - профессиональные услуги связи