Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Веб-сервер с нуля.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): [1] 2 3 4 »   

> Описание: Создание веб-сервера на связке LAMP
m
Отправлено: 20 Февраля, 2008 - 10:38:51
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Тяжела и неказиста жизнь простого не-программиста.

Здравствуйте. Не секрет, что в сети много ресурсов, посвященных РНР-программированию, но Ваш мне показался наиболее дружелюбным по отношению к начинающим и неопытным. Поэтому я здесь Улыбка

Жизнь скрутила, что называется. Передо мной встала сложная (для меня) задача, которую необходимо выполнить в весьма сжатые сроки. Суть проблемы:

Необходимо создать простенький веб-сервер со следующими функциями:
- Загрузка файлов на сервер (с занесением информации о файлах в БД);
- Загрузка файлов с сервера;
- Регистрация и авторизация пользователей;
- Поиск файлов на сервере.

Исходное положение: имеется связка LAMP (Linux Mandrake 9.0, Apache 1.3.26, MySQL 3.23.52, PHP 4.2.3.1). Проблема усугубляется тем, что с каждым элементом связки я столкнулся впервые. Ну, вроде все установлено и работает.

Вообще, сперва решил не изобретать велосипед, и найти готовый скрипт. Нашел и испробовал несколько штук, но ни один из них не подошел в полной мере. Более/менее меня устраивал pogouploader, но он не выполнял 2ю и 4ю функции. Думал как-то подстроить его под себя, но захлебнулся в тонне кода.
В итоге пришел к выводу, что писать придется самому. С помощью статьи с Вашего сайта, написал скрипт загрузки файлов на сервер (спасибо автору - статья написана просто и доступно). Теперь надо бы научить скрипт записывать информацию о файлах в БД. Вот тут я уже застрял.

Просьба: помогите, пожалуйста, справиться с текущей проблемой. И вообще, если есть у кого время и желание - возьмите меня на поруки Улыбка Ибо некому надо мной шефствовать.
 
 Top
RomAndry Администратор
Отправлено: 20 Февраля, 2008 - 10:55:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




С удовольствием поможем.
Но никто не научит тебя думать,
этому можно научится только в процессе работы проб и ошибок -
вот ошибки, которые возникают или не понимания и пиши в форум,
в соответствующий раздел.
Т.е. что делал и что не получилось.
Так быстрее получишь ответ и совет, чем ждать пока напишут за тебя.
Цитата:
Теперь надо бы научить скрипт записывать информацию о файлах в БД. Вот тут я уже застрял.

При загрузке файлов на сервер у тебя есть массив $_FILES который и содержит информацию, которую можно занестив базу, т.е. там где в коде идет загрузка необходимо вставить INSERT с нужными тебе данными.

Что не получится, спрашивай, приводи код и ошибки.

Удачи.
 
My status
 Top
m
Отправлено: 20 Февраля, 2008 - 12:56:10
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




RomAndry, спасибо за оперативное реагирование.

RomAndry пишет:
При загрузке файлов на сервер у тебя есть массив $_FILES который и содержит информацию, которую можно занестив базу, т.е. там где в коде идет загрузка необходимо вставить INSERT с нужными тебе данными.


Попробовал так:

В MySQL в database1 создал таблицу file_database
CODE (text):
скопировать код в буфер обмена
  1. mysql -udb1admin -pdb1pas database1 -e "create table file_database(id int not null auto_increment, name char(30) not null, type char(30) not null, primary key(id));"


Затем, в скрипт загрузки файла добавил
PHP:
скопировать код в буфер обмена
  1. $host = 'localhost';
  2. $user = 'db1admin';
  3. $password = 'db1pas';
  4. $database = 'database1';
  5.  
  6. $link = mysql_connect($host, $user, $password);
  7. mysql_select_db ($database);
  8. $query = "insert into file_database values ($_FILES['uploadfile']['name'], $_FILES['uploadfile']['type'], $_FILES['uploadfile']['size'])";
  9. mysql_query ($query, $link);
  10. mysql_close ($link);

Попробовал в деле - получил ошибку "Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /var/www/html/web-server/upload. php on line 27".
Как я понимаю проблема в типе данных, а точнее в их несогласованности.
Что посоветуете?
 
 Top
Dastar
Отправлено: 20 Февраля, 2008 - 13:07:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008  
Откуда: Израиль


Помог: -6 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "insert into file_database values ('".$_FILES['uploadfile']['name']."', '".$_FILES['uploadfile']['type']."', '".$_FILES['uploadfile']['size']."')";
  3.  

попробуй так


-----
Не знаешь - молчи.
 
 Top
m
Отправлено: 20 Февраля, 2008 - 13:23:11
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Dastar, спасибо, помогло.

Тут же параллельно вопрос. Решил еще скрипт вывода данных из таблицы написать. Тем более, что здесь есть статья по этому поводу. Вроде все понятно, но одна строчка привела в замешательство:

CODE (text):
скопировать код в буфер обмена
  1. printf("id:%d, name:%s, tel:%s",


Что обозначают эти %d и %s?
 
 Top
RomAndry Администратор
Отправлено: 20 Февраля, 2008 - 13:31:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




sprintf
 
My status
 Top
m
Отправлено: 20 Февраля, 2008 - 14:32:22
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Хм. Не выходит что-то с выводом данных из таблицы.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $host = "localhost";
  3. $user = "db1admin";
  4. $password = "db1pas";
  5. $database = "database1";
  6.  
  7. $link = mysql_connect($host, $user, $password);
  8. mysql_select_db($database, $link);
  9. $query = "select * from file_database";
  10. $result = mysql_query($query, $link);
  11. while($rows = mysql_fetch_array($result, mysql_assoc))
  12. {
  13. printf("id:%d, name:%s, type:%s, size:%d", $rows['id'], $rows['name'], $rows['type'], $rows['size']);
  14. }
  15. mysql_close($link);
  16. ?>

Запускаю - ошибок не дает. Вообще ничего не дает. Девственно чистую страницу дает.
Причем, когда в линуксе, в консоли ввожу
CODE (text):
скопировать код в буфер обмена
  1. mysql -udb1admin -pdb1pas database1 -e "select * from file_database"

тоже ничего не дает. В чем ошибаюсь?
 
 Top
Eihwaz
Отправлено: 20 Февраля, 2008 - 14:37:34
Post Id


Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




По-идее, должно быть так:
PHP:
скопировать код в буфер обмена
  1.  
  2. while($rows = mysql_fetch_array($result))
  3. {
  4. echo sprintf("id: %d, name: %s, type: %s, size: %d",
  5. $rows['id'], $rows['name'], $rows['type'], $rows['size']);
  6. }
  7.  

(Отредактировано автором: 20 Февраля, 2008 - 14:38:42)

 
 Top
RomAndry Администратор
Отправлено: 20 Февраля, 2008 - 14:37:47
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




1. Поставь себе PMA (PhpMyAdmin) будет удобно работать с базами
2. скорей всего у тебя нет данных, нечего выбирать
сделай после
 
My status
 Top
m
Отправлено: 20 Февраля, 2008 - 14:45:39
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Eihwaz, не помогло.

RomAndry, на чистом листе вылез 0. Выходит, скрипт загрузки не вносит описание файла в БД?
 
 Top
RomAndry Администратор
Отправлено: 20 Февраля, 2008 - 14:51:31
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




если вылез ноль значит нет записей в базе.
попробуй для начала просто
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "INSERT INTO `file_database` VALUES ('file.jpg', 'JPEG', '1024')";
  3.  
 
My status
 Top
m
Отправлено: 20 Февраля, 2008 - 14:59:58
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




RomAndry, в консоли вставил вручную, проверил - есть.
 
 Top
Eihwaz
Отправлено: 20 Февраля, 2008 - 15:15:47
Post Id


Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




Cтоп, давайте сначала:
PHP:
скопировать код в буфер обмена
  1.  
  2. $host = "localhost";
  3. $user = "db1admin";
  4. $password = "db1pas";
  5. $database = "database1";
  6.  
  7. $db_connect = mysql_connect($host, $user, $password)
  8. or die('Невозможно подключиться к базе данных. ' . mysql_error());
  9.  
  10. mysql_select_db($database)
  11. or die('Не могу выбрать базу данных. ' . mysql_error());
  12.  
  13. $query = "SELECT * FROM file_database";
  14. $result = mysql_query($query);
  15. while($rows = mysql_fetch_array($result))
  16. {
  17. echo sprintf("id: %d, name: %s, type: %s, size: %d",
  18. $rows['id'], $rows['name'], $rows['type'], $rows['size']);
  19. }
  20.  


Да, и поля лучше переименовать. ID,
например, точно зарезервированное ключевое
слово, name, кажется, тоже, да и type вероятно.
Переименуйте в file_id, file_name, file_type, file_size.

(Отредактировано автором: 20 Февраля, 2008 - 15:22:57)

 
 Top
RomAndry Администратор
Отправлено: 20 Февраля, 2008 - 15:16:38
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




не в консоли а в скрипте
вместо
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "insert into file_database values ('".$_FILES['uploadfile']['name']."', '".$_FILES['uploadfile']['type']."', '".$_FILES['uploadfile']['size']."')";
  3.  
 
My status
 Top
m
Отправлено: 20 Февраля, 2008 - 16:05:19
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Eihwaz, RomAndry, спасибо. Завтра попробую - отпишусь.
 
 Top
Страниц (4): [1] 2 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB