Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Несколько вопросов по PHP (http://forum.oszone.net/showthread.php?t=129519)

ManHack 22-01-2009 17:25 1016011

Несколько вопросов по PHP
 
У меня возникли следующие вопросы, когдя я пытался разобраться...
1) Как индексировать содержимое папки? Есть большой фолдер (большой - это значит около 10к файлов схожего типа, дальше - больше).
Какую структуру языка PHP лучше всего использовать для хранения информации об каждом файле с учётом максимально простого, быстрого и эффективного обращения к ним из другого PHP-файла (или flash-приложения).
Массив не подходит, ибо одному элементу массива соответствует одно значение (а нужно хранить как минимум значения типа Ident, Vendor ID, Group и Link)
Я читал про такой тип данных в PHP как ресурс, но, как я понял, он хранит только ссылки, и вообще это не тип данных, а процедуры обращения к тем же GZ2-файлам или MySQL DB...
А как в PHP выглядит тип данных, идентичный типу record (запись) в Pascal/Delphi.
Очень хорошо, если бы вы подсказали не только как он выглядит и декларируется в программе, но и как обращаться к элементам, записывать значения в элементы записи и и.п.
2) Вот есть у файлов в Св-вах вкладочка "Сводка". Там Vendor ID и ещё всякая ерунда обычно хранится.
А как к этой штучке обращаться в PHP?
Вот допустим из этой папки с файлами (10000+ файлов) PHP-файл должен найти файл, у которого в св-вах во вкладке "сводка" в поле "создатель" написано "FileVendor01", как будет выглядеть ответственная за поиск часть этого PHP-файла?
3) Что из себя представляют ASPX (ASP, Active Server Pages) файлы?
Что есть ASP и зачем его используют?
Имело бы смысл реализовывать то, что описано в вопросах выше, с помошью ASP? (хотя заглянув в Википедию я сам ответил на этот вопрос, ответ отрицательный)
Где можно почитать литературу по ASP?
ASP и ASP.NET - разные вещи?

Coutty 22-01-2009 17:45 1016037

Как индексировать - прочитать сведения об одном файле -> внести информацию в базу данных (mysql) -> следующий файл -> внести информацию...

Для сбора всей информации о файле используется функция stat(filename). Вывод в массив (с помощью print_r($arr) можно посмотреть содержимое массива).

Соответственно, поиск будет выполнять mysql. Делаем запрос вроде mysql_query("SELECT * FROM имя_таблицы WHERE filename='имя_файла.txt' "); или по другим полям. Будет гораздо быстрее и эффективнее, чем держать в памяти всю структуру в виде массива. Массив, кстати, подходит, просто многоуровневый надо сделать.

А вообще, не надо доводить файловую систему до такого состояния. 10 тысяч файлов в 1 папке - это глупость. Создавайте каждый месяц / неделю / день новую папку и кладите файлы в неё. Это значительно снизит нагрузку на серверную ОС.

ASP - язык программирования для веб от Microsoft. Используется с веб-сервером IIS. ASPX - откомпиленный ASP. ASP.net - дальнейшее развитие ASP. Язык представляет собой что-то вроде VisualBasic'а. Но PHP мне нравится больше :)

Часть заданных вопросов я не понял, поэтому, возможно, ответил не на те, которые надо =^_^'=

ManHack 22-01-2009 19:33 1016123

Оу. Спасибо.
Примерно понятно, попробую, что у меня из этого получится.
Папочку в таком случае постараюсь раскидать по подпапкам, если от этого производительность возрастёт. Пока не слишком понятно по какому параметру раскидывать.

Только заметил, что вы, Coutty, анимэшник ^_^ Я, кстати, тоже тех же взглядов.
Анимэшники должны помогать друг другу, так что если что - я сразу же обращусь xD А какое ваше любимое анимэ? Простите, модератор-kamisama, за флуд не по теме ^_^

Coutty 22-01-2009 19:43 1016133

Цитата:

Цитата ManHack
Пока не слишком понятно по какому параметру раскидывать. »

Если файлы имеются - то по любому параметру - по времени создания или рандомом (а на них есть ссылки со страниц? Тогда лучше не трогать).
А потом при добавлении скрипт пусть следит - если в БД уже есть, скажем, 100 записей на эту папку (запрос типа "SELECT COUNT(*) FROM имя_таблицы WHERE имя_каталога = последнее_имя"), то создавать новую. "Последнее_имя" тоже надо где-то хранить, я думаю, либо делать кореллированный подзапрос, что не очень хорошо, как мне кажется.

Производительность возрастёт - попробуйте через виндовый проводник открыть папку с кучей файлов и с малым количеством. Разница будет видна на глаз.

Я всё мутно объясняю, но суть в том, что пути к файлам и свойства надо хранить в БД, а папки слишком большими не делать.

По анимэ у нас спец.тема есть ;)

ManHack 22-01-2009 20:04 1016156

Цитата:

(а на них есть ссылки со страниц? Тогда лучше не трогать)
Самих страниц пока что нет ^ ^
Файлы будут обрабатываться флеш-приложением, хотя над этим надо ещё хорошо подумать.

А для каждой папки придётся сделать отдельную таблицу?
Или можно в таблице как-то хранить не только ключи с их значениями, а ключ -> значение -> подзначение значения ? (3-уровня вложенности)
Просто на виртуальном хостинге, который я хочу использовать по-началу, стоит ограничение 20 таблиц для пользователей free-аккуанта. Я пока не уверен, хватит ли мне этих 20.
Или можно делать всё в одной таблице, а папки будут фигурировать только в полях 'link'?
Кстати, сколько записей может выдержать таблица? А какое количество оптимально?
Я имею ввиду в плане производительности в первую очередь.

Под терминов 'кореллированный подзапрос' что понимается?

Coutty 22-01-2009 20:34 1016191

Цитата:

Цитата ManHack
А для каждой папки придётся сделать отдельную таблицу? »

Нет, всё в одну можно.
Примерно такие поля в таблице (пусть будет main для примера):
[ id | folder | filename | size | vendor | group | link ]
Достаточно? Можно и ещё добавить.
3 уровня вложенности - "не понимать")

Если выбирать по id, то такой код:
PHP код:

// $_GET['id'] будет содержать запрос на необходимый файл
$res mysql_query("SELECT * FROM main WHERE id='" $_GET['id'] . "'");
$res mysql_fetch_assoc($res);
echo 
$res['folder'] . "/" $res['filename'];  // использование 

При добавлении:
PHP код:

$lastfolder 224// где-то надо хранить имя последней папки
$files_in_last_folder 35// количество файлов в последней папке. Тоже где-то надо хранить
if ($files_in_last_folder >= 100)
  {
  
$lastfolder++;
  
$files_in_last_folder 1;
  }
if (
mysql_query("INSERT INTO main ('folder', 'filename', 'size', 'vendor', 'group', 'link') VALUES (" $lastfolder ", 'dkfueu.jpg', 127500, 'nya', 'mur', 'link12834')))
  {
  echo "
Запись о файле добавлена";
  } 

Ну и не забываем сам файл в папку записать.

Цитата:

Цитата ManHack
Кстати, сколько записей может выдержать таблица? А какое количество оптимально? »

Выдержать может до 2 ГБ информации на таблицу или даже больше. Я не помню точно. Вопрос в том - даст ли хостер столько? Кроме того, нужно учитывать и нагрузку. 1 запрос в секунду - это совсем не то же самое, что 100 в секунду (здесь уже выделенный сервер нужен и СУБД помощнее. Например, PostgreSQL. Yahoo, говорят, на ней работает).

Цитата:

Цитата ManHack
Под терминов 'кореллированный подзапрос' что понимается? »

Не обращайте внимания, я сегодня экзамен по базам данных сдавал, поэтому голова забита терминологией :) Это подзапрос на ту же таблицу, куда и основной запрос. Можно и без них :)

Delirium 23-01-2009 01:13 1016429

Цитата:

Цитата Coutty
ASP - язык программирования для веб от Microsoft. Используется с веб-сервером IIS. ASPX - откомпиленный ASP. ASP.net - дальнейшее развитие ASP. Язык представляет собой что-то вроде VisualBasic'а. Но PHP мне нравится больше »

Нет, ну я возмущен :read: :biggrin: . Это с каких это пор asp.net - это нечто вроде VB? Я пишу полноценные на ASP.NET + C#. ^) а почитать доступным языком можно на intuit.ru - найдите требуемый курс и бесплатно читайте.

Coutty 23-01-2009 06:44 1016506

Простите, я думал, что это со времён обычных ASP пошло... :sorry:

Sham 23-01-2009 07:36 1016519

ASP как и ASP.NET это набор серверных объектов, функций, директив, которые реализуются с помощью поддерживаемого языка. В ASP - это скриптовые JS и VB. В ASP.NET - это компилируемые языки (основные C# и VB.NET). Существует и версия PHP для ASP.NET http://php-compiler.net/ - вроде бы независимые разработчики....

ManHack 28-01-2009 17:26 1022515

А как выполнять поиск по MySQL DB?
Ну допустим PHP-файл даёт юзеру формочку для поиска, в которую юзер что-то пишет, а скрипт ищет в БД.
Причём ищет сразу по нескольким таблицам БД (т.е. мы не знаем про что имеено юзер спрашивает, поэтому перебираем все возможные сочетания заданных юзером в форму слов во всех таблицах).
Как сделать такой поиск, обязательно разумным.
И как сделать, чтобы обращение к PHP-файлу поиска происходило из другого PHP-файла ("главная страница"), который передаёт пользовательский запрос файлу поиска и забирает результаты, чтобы их вывести (т.е. скрипт поиска освобождён от необходимости оформлять свои результаты на экране).

Delirium 29-01-2009 01:48 1023062

Цитата:

Цитата ManHack
Причём ищет сразу по нескольким таблицам БД (т.е. мы не знаем про что имеено юзер спрашивает, поэтому перебираем все возможные сочетания заданных юзером в форму слов во всех таблицах). »

Создать запросы на поиск во всех нужных таблицах и промежуточные результаты кидать в одну временную таблицу. Потом выводить результат из временной таблицы.

Sham 29-01-2009 05:52 1023099

Цитата:

Цитата Delirium
Создать запросы на поиск во всех нужных таблицах и промежуточные результаты кидать в одну временную таблицу. Потом выводить результат из временной таблицы. »

нереальное грузилово... нужно создать отдельную таблицу для поиска, и наполнять ее поисковым контентом (без лишних слов, тегов и пр. лабуды)... и по этой таблице делать рабочий поиск...

Delirium 29-01-2009 05:55 1023100

Sham, согласен, этот вариант более грамотен и приемлем.

Igor_I 29-01-2009 19:04 1023724

ManHack, извините, но у меня такой вопрос - HTML знаете? Как формы оправляются?
Цитата:

Цитата ManHack
И как сделать, чтобы обращение к PHP-файлу поиска происходило из другого PHP-файла ("главная страница"), который передаёт пользовательский запрос файлу поиска и забирает результаты, чтобы их вывести (т.е. скрипт поиска освобождён от необходимости оформлять свои результаты на экране). »

Я просто-напросто не понял эту фразу.

Sham 29-01-2009 19:45 1023768

это зачатки объектного мышления :) автор изначально предполагает модульную структуру, но не знает пока инструментария... видимо речь идет об инклудах...

Igor_I 29-01-2009 19:52 1023778

Насколько я понял в PHP нет определённой функции для получения данных из файла. То есть надо использовать какие-то сторонние классы. Типа этого - http://pecl.php.net/

ManHack 03-02-2009 13:58 1028234

Вот как формы оправляются я знаю очень примерно.
Хотелось бы найти какое-нибудь более или менее нормальное руководство.

ManHack 03-02-2009 14:41 1028270

С PECL не совсем понятно:
http://pecl.php.net/packages.php?catpid=25&catname=PHP
Тут не видно какого-либо класса для получения данных из файла :(

Igor_I 03-02-2009 20:08 1028620

PECL = The PHP Extension Community Library.
Они все на PHP. Посмотри fileinfo.
Есть ещё PEAR - PHP Extension and Application Repository - http://pear.php.net/packages.php
Цитата:

Цитата ManHack
Вот как формы оправляются я знаю очень примерно.
Хотелось бы найти какое-нибудь более или менее нормальное руководство. »

Что именно непонятно спрашивай, это настолько простая вещь :)

ManHack 04-02-2009 15:56 1029226

Для начала, как данные, забитые в форму, отдать PHP файлы (записать в указанную переменную в php-файле, для определённости, в $data)
И я всё-равно не понимаю как организовать поиск по БД, если в формочку вводится строка с несколькими параметрам, по которым должен выполняться поиск, причём в совершенно неопределённом порядке.

Coutty 04-02-2009 19:57 1029478

Цитата:

Цитата ManHack
Для начала, как данные, забитые в форму, отдать PHP файлы (записать в указанную переменную в php-файле, для определённости, в $data) »

HTML код:

<form action='script.php' method='get'>
<input type='text' name='data' />
<input type='submit' value='Отправить' />
</form>

Жмёте кнопку "отправить" и скрипт script.php получает переменную $_GET['data'], содержащую то, что написано в текстовом поле.
Цитата:

Цитата ManHack
И я всё-равно не понимаю как организовать поиск по БД, если в формочку вводится строка с несколькими параметрам, по которым должен выполняться поиск, причём в совершенно неопределённом порядке. »

Вопрос немного размытый.
Вот, например, ввели мы эту $_GET['data']. Нужно выполнить поиск по таблице table_name по полю name:
PHP код:

$result mysql_query("SELECT * FROM `table_name` WHERE `name` LIKE '%" $_GET['data'] . "%'"); 


Igor_I 04-02-2009 19:57 1029480

1 Рисуешь формочку
2 В параметре action ставишь нужный php-файл. action="getforma.php"
3 Это пока весь getforma.php
PHP код:

echo '<br />var_dump ($_POST) = '.var_dump ($_POST);
echo 
'<br />var_dump ($_GET) = '.var_dump($_GET); 

4 Как искать по базе -
http://www.mysql.ru/docs/man/String_...functions.html
http://dev.mysql.com/doc/refman/5.0/...functions.html
http://habrahabr.ru/blogs/mysql/25646/

Coutty, :laugh:

ManHack 05-02-2009 16:58 1030459

Цитата:

Вот, например, ввели мы эту $_GET['data']. Нужно выполнить поиск по таблице table_name по полю name:
А если надо искать по нескольким полям таблицы сразу?
Причём пользователь вводит данные в форму разныого характера, а поиск определяет по каким полям надо искать и выдаёт наиболее соответствующие результаты.
Аналогично поиску человеков на facebook/vkontakte фразой вида "Петя Васечкин Тула", выдаёт всех людишек с именем "Петя" (или его производными), фамилией "Васечкин", которые указали город "Тула".

Igor_I 05-02-2009 21:13 1030723

Есть база, в ней много полей, одни из них - name - Петя, family - Васечкин, city - Тула.
Надеюсь с формой разобрался. Тогда у нас есть переменные $pname, $pfamily, $pcity. Не путать с полями в базе.
Делаем запрос -
$query = "SELECT * from `user` WHERE `city`='".$pcity."' AND `family`= '".$pfamily."' AND `name` LIKE '%".$pname."%'";
$result = mysql_query($query);
Далее в ман по php.

ManHack 06-02-2009 16:19 1031391

Получается, у нас три переменных.
Я понял как забирвать из формы одну переменную, а как три забрать?
Что значит слово LIKE '% в запросе?

Coutty 06-02-2009 17:12 1031450

LIKE - это вместо "равно". Используется для поиска похожих сочетаний.
% - подстановочный знак "любое количество символов".
_ - "один символ".
Цитата:

Цитата ManHack
Я понял как забирвать из формы одну переменную, а как три забрать? »

Делать три поля ввода с разными именами.
И забирать: $_GET['name'], $_GET['family'], $_GET['city']. Или же $_POST['name'] я только не уверен, что можно делать имя для поля - name, если передаёте POST'ом.
А чтоб в одно поле всё что угодно писать и получать результаты поиска по всей БД - это особое мастерство ;) Как вы, наверное, помните, в том же "контакте" поиск чего угодно появился не так уж и давно. Полагаю, дело там в дополнительном столбце, который содержит в себе особый индекс. Фраза, получаемая из поля ввода разбивается по пробелам и используется поиск с фразами, где слова меняются местами. Хотя это должна быть слишком высокая нагрузка на СУБД)

Igor_I 06-02-2009 19:59 1031575

А кто сказал, что там 3 переменные? Переменная одна, а вот как сделан поиск - коммерческая тайна. Можно конечно докумекать и сделать аналогично, но это будет именно аналогично, а не точно так же.

ManHack 08-02-2009 10:15 1032576

Цитата:

лагаю, дело там в дополнительном столбце, который содержит в себе особый индекс. Фраза, получаемая из поля ввода разбивается по пробелам и используется поиск с фразами, где слова меняются местами. Хотя это должна быть слишком высокая нагрузка на СУБД)
Я собственно так и думал... Хотя не уверен что на тех же vpleer.ru и vkontakte.ru именно так, но данный способ выглядит убедительно.
Объясните как слова по пробелам разбивать пожалуйста.
И чем отличается метод GET от метода POST?

Igor_I 10-02-2009 14:21 1034480

ManHack, ручками сделай форму, обработчик формы и сравни.

ManHack 15-02-2009 01:46 1038726

Теперь такой вопрос: как в PHP получить системное время? А если только дату? или только час с минутами?
Как получить размер файла? (с целью записать его в MySQL таблицу) и конкретный параметр из stats(filename).
А если это аудиофайл, как, скажем, обратиться к полям исполнитель или альбом?
Как можно организовать ID, записываемый в таблицу, чтобы при добавлении нового файла ему присваивался именно следующий ID?

DedAlex 15-02-2009 10:18 1038867

Цитата:

Цитата ManHack
Теперь такой вопрос: как в PHP получить системное время? А если только дату? или только час с минутами? »

date().
Цитата:

Цитата ManHack
Как получить размер файла? »

filesize()

D_Master 15-02-2009 10:43 1038885

Цитата:

Цитата ManHack
как в PHP получить системное время? А если только дату? или только час с минутами?»

PHP код:

<?
//Получить время (в формате 15:38:31)
$getTime date("H:i:s");
echo 
$getTime;
//Получить только дату (в формате 15-02-2009)
$getDateOnly date("d-m-Y");
echo 
"<br>";
echo 
$getDateOnly;
//Получить только час с минутами
$getHourAndMinutes date("H:i");
echo 
"<br>";
echo 
$getHourAndMinutes;
?>

Цитата:

Цитата ManHack
Как получить размер файла? »

PHP код:

<?
$file
="test.mp3";
//filesize() - возврат размера файла в байтах
$getFileSize filesize($file);
echo 
$getFileSize;
?>


Igor_I 15-02-2009 20:21 1039425

Цитата:

Цитата ManHack
как в PHP получить системное время? »

http://www.php.net/manual/ru/function.time.php
Цитата:

Цитата ManHack
А если только дату? или только час с минутами? »

http://www.php.net/manual/ru/function.date.php
Цитата:

Цитата ManHack
Как получить размер файла? »

http://www.php.net/manual/ru/function.stat.php
Цитата:

Цитата ManHack
А если это аудиофайл, как, скажем, обратиться к полям исполнитель или альбом? »

http://www.php.net/manual/ru/ref.id3.php
Цитата:

Цитата ManHack
Как можно организовать ID, записываемый в таблицу, чтобы при добавлении нового файла ему присваивался именно следующий ID? »

Для этого при создании таблицы в базе ставишь в столбце галочку autoincrement.
А при добавлении записи в базу ничего не прописываешь для этой ячейки
PHP код:

"INSERT INTO `".$conf["db_base"]."`.`image` VALUES (NULL, '".$user_id."', '".$user_hash."',  '".$filestat['ctime']."', '0') " 


ManHack 22-02-2009 18:04 1045720

Команда
PHP код:

require ('scripten.php'); 

даёт возможность использовать переменные из scripten.php ? А она передаёт их значения, полученные в результате работы scripten.php? И что ещё она умеет делать?

Coutty 22-02-2009 18:34 1045735

Функция просто берёт весь код из scripten.php и вставляет в то место, где вызывается, как будто этот код там и был.

ManHack 22-02-2009 18:40 1045738

Как найти получить максимальное достигнутое значение из поля ID таблицы?

D_Master 22-02-2009 18:53 1045747

ManHack,
PHP код:

mkdir(); 

http://ru.php.net/manual/ru/function.mkdir.php

Coutty 22-02-2009 19:12 1045763

mkdir? D_Master, температуришь? :) Или там изначально другой вопрос был?
Цитата:

Цитата ManHack
Как найти получить максимальное достигнутое значение из поля ID таблицы? »

Хороший вопрос. А теперь с учётом русской грамматики, пожалуйста, и поподробнее.

ManHack 22-02-2009 19:37 1045784

Там был другой вопрос, который я задал, а потом нажал большую розовую кнопочку GOOGLE.
И на те, вопрос отпал (

Задача
В таблице N записей (т.е. N строк). Как узнать число N?

Coutty 22-02-2009 19:51 1045794

PHP код:

$num mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM table"));
$num $num[0]; // вот это и будет число строк 


ManHack 22-02-2009 20:26 1045825

а почему $num[0]? ноль что значит?

Coutty 22-02-2009 21:14 1045857

Первый элемент массива, видимо.
mysql_fetch_array() возвращает массив. Но т.к. MySQL возвращает только одно значение, его и выбираем.

D_Master 22-02-2009 22:00 1045898

Coutty, сам испугался, думал всё, с катушек съехал :)

Igor_I 22-02-2009 23:26 1045990

Цитата:

Цитата ManHack
Как найти получить максимальное достигнутое значение из поля ID таблицы? »

Цитата:

Цитата ManHack
В таблице N записей (т.е. N строк). Как узнать число N? »

Это немножко разные вещи. Автоинкремент будет прибавлятся независимо от того все записи есть или половина удалена. Максимальное значение вообще не нужно, нужно либо число записей, либо последний ид.
Если нужно всего лишь подсчитать количество строк, то можно и так.
PHP код:

$num mysql_result  (mysql_query ("SELECT COUNT(*) FROM table"0) ); 

Цитата:

Цитата ManHack
а почему $num[0]? ноль что значит? »

http://www.php.net/manual/ru/functio...etch-array.php

ManHack 04-03-2009 18:03 1054894

Вложений: 2
Вот что в этом участке кода не так? Запрос выглядит хорошо, но ошибка ><
NULLик убирал (менял на константу) - без толку.
(screen.jpg)

А вот здесь в чём ошибка? (scree2.jpg)
Хочу поставить начальное значение поля 10000, а оно не ставится.

PHP код:

date("H:i:s"

А этот код, он вообще дату берёт с сервера или с компа, на котором с php-файлом браузер пользователя работает?

Igor_I 04-03-2009 18:23 1054909

1 Писать надо $query = "INSERT ..... ", то есть в кавычках.
2 Что-то у меня сомнения, насчёт одновременной работы автоинкремента и значения по умолчанию.
3 К сожалению сайт сейчас не работает, вот кэш из гугля -http://209.85.129.132/search?q=cache:12UK7wH2hAAJ:phpfaq.ru/na_tanke+php+%D0%BD%D0%B0+%D1%82%D0%B0%D0%BD%D0%BA%D0%B5&hl=ru&ct=clnk&cd=3&client=opera
Если коротко - дата на сервере.

ManHack 20-03-2009 21:53 1069765

Цитата:

Fatal error: Call to undefined function id3_get_tag() in Z:\home\non-existent-host\folder01\AddMedia.php on line 80
Что бы это значило? Разве функции обработки ID3 не включаются в стандартный PHP? o_O''


Цитата:

Warning: mkdir() [function.mkdir]: File exists in Z:\home\non-existent-host\folder01\AddMedia.php on line 59
Как отключить это уведомление об ошибке? или как проверить, есть ли уже директория, и если нету, то создать?

ManHack 20-03-2009 22:41 1069818

Цитата:

<html>
<form enctype="multipart/form-data" action="<?php print $PHP_SELF ?>" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo ($max_file_size); ?>">
<input type="file" name="fupload">
<br><br>
<input type="submit" value="Upload File">
<br>
</form>

</body></html>
Форма загрузки файла.

action="<?php print $PHP_SELF ?>" - это что такое?
PHP_SELF нигде раньше описан не был... Что бы это значило? Кстати, формочка не работает (как я понял, не может обратиться к этому самому PHP_SELF)

Igor_I 21-03-2009 01:39 1069937

Цитата:

Цитата ManHack
Как отключить это уведомление об ошибке? или как проверить, есть ли уже директория, и если нету, то создать? »

http://ru.php.net/manual/ru/function.is-dir.php ?

http://ru.php.net/manual/ru/id3.installation.php

Цитата:

Цитата ManHack
action="<?php print $PHP_SELF ?>" - это что такое? »

http://ru.php.net/manual/ru/reserved...les.server.php
Это означает данный файл, в принципе можно было оставить и "", форма пришла бы обратно.
Вообще-то надо бы писать $_SERVER['PHP_SELF'].

ManHack 22-03-2009 00:47 1070729

Как PEAR установить?

Код:

$_SERVER['PHP_SELF']
Не получается так, выдаёт ошибку, связанную с T_STRING.
А в чём разница, что мы _SERVER добавили?
Если написать так:
Код:

$_SERVER["PHP_SELF"]
то ошибки с T_STRING нет, но есть конфликт с другими двойными кавычками (т.к. они используются в method=" " и т.д.)

И что мне с PHP_SELF делать? Форма готова, нажимаю на кнопку:
Код:

<form enctype="multipart/form-data" action="<?php print $PHP_SELF ?>" method="POST" >
(плка решил так оставить)
и чего? денвер посылает нафиг, а именно:
Цитата:

Forbidden You don't have permission to access /< on this server. Подсказка Денвера Возможные причины ошибки:
В поле адреса в данный момент:
Цитата:

http://folder01.non-existent-host/%3C?php%20print%20$PHP_SELF%20?%3E
Что вообще в переменную PHP_SELF должно передаваться? и почему там написано print?

Цитата:

multipart/form-data
это я так понимаю вызывается стандартный диалог выбирания файла для добавления... верно? т.е. $PHP_SELF - это строка, хранящая имя файла?

Как сделать так, чтобы этот файл сразу складывался в определённую директорию?

Igor_I 22-03-2009 01:47 1070755

ManHack, в чём пишешь код?

ManHack 22-03-2009 23:33 1071409

Edit+ v3, сервер Denver с php5

Igor_I 23-03-2009 22:32 1072604

Цитата:

Цитата ManHack
Как PEAR установить? »

http://pear.php.net/manual/ru/ - это всё что могу сказать, я им не пользовался.
Цитата:

Цитата ManHack
А в чём разница, что мы _SERVER добавили? »

Есть такая директива - register_globals - при включённом состоянии позволяющая обращатся напрямую к суперглобальным переменным. В данном случае можно обращаться к $PHP_SELF, но это неправильно.
http://ru.php.net/manual/ru/faq.usin...gister-globals

Строчка должна быть такой
PHP код:

<form enctype="multipart/form-data" action="<?php echo  $_SERVER['PHP_SELF']; ?>" method="POST" >

И никакого конфликта не должно быть. Если только до этого ты не закрыл тэг <?php
Но это должно быть видно по подсветке кода.

Цитата:

Forbidden You don't have permission to access
Проверь права на директорию. Хотя у тебя Windows ...

Цитата:

Цитата ManHack
multipart/form-data
это я так понимаю вызывается стандартный диалог выбирания файла для добавления... верно? »

Да. А вот чтобы файл складывался нужно и писать код. Сначала всё проверить - http://ru.php.net/manual/ru/features...ost-method.php

Короче, если что-то не получается - прочти инструкцию. ru.php.net - как библия. :)
В следующий раз формочку желательно всю.

ManHack 24-03-2009 01:23 1072757

Скачал я дистрибутив PEAR, скачал и go-pear.php , положил в папку с дистрибом и вывалил в home/non-existent/host
захожу через браузер, файл go-pear.php работает, но при инсталляции на 20% виснет и денвер показывает ошибку:
Forbidden


You don't have permission to access /viewvc.cgi/pear-core/PEAR.php
on this server.
там нету этого cgi-файла, вообще в дистрибе нету его!


Время: 12:02.

Время: 12:02.
© OSzone.net 2001-