Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка на сайт картинок да и вообще файлов, Причем не на сервер где лежит сам сайт 
:(
    Опции темы
JohnDonnar
Дата 20.8.2006, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 30.11.2005

Репутация: нет
Всего: нет



Здравствуйте,
многие знают знают наверно, что за достаточно большое место на платном хостинг надо выкладывать значительную сумму. Так вот мне интересно (надеюсь не одному мне) возможно ли реализоватьтакую штуку:
"пользователь заходит на ваш сайт и загружает туда файлы, допустим картинки, покрайней мере он так думает, а на самом деле они будут загружаться на бесплатный сервер, к примеру на http://*.mylivepage.ru, а потом при загрузки страницы вашего сайта эти самые картинки загружались в временную папку на вашем хосте на время просмотра страницы. (создавалось ощушение как будто картинки находяться на вашем хосте) "


PM MAIL   Вверх
Greendrake
Дата 20.8.2006, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 14.7.2005

Репутация: 1
Всего: 6



Весьма проблематично поручить машине задачу загрузки файлов на бесплатный сервер. Как правило, на всех этих серверах стоят защиты, определяющие - живой ли юзер зашёл через браузер или скрипт косит под юзера. В числе таких защит может быть и ввод кода по испорченной картинке.
PM MAIL   Вверх
JohnDonnar
Дата 20.8.2006, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 30.11.2005

Репутация: нет
Всего: нет



Цитата

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

это точно не просто
но на сколько я знаю на mylivepage.ru достаточно пройти авторизацию

Добавлено @ 22:35 
я конечно новичек в этом деле, но все таки охото было воплотить эту идею на своем сайте
PM MAIL   Вверх
JohnDonnar
Дата 19.9.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 30.11.2005

Репутация: нет
Всего: нет



Наконец нашел ответ на этот вопрос!!! Мож кому надо...


Цитата

([email protected]; WWW.OFFBIT.1GB.RU)

УСТРАИВАЕМ БЕСПЛАТНОЕ ФАЙЛОХРАНИЛИЩЕ ДЛЯ ПЛАТНОГО ХОСТИНГА

У НАС ЕСТЬ ПЛАТНЫЙ ХОСТИНГ, МЫ ПЛАТИМ ЗА НЕГО ПРИМЕРНО ПЯТЬ ДОЛЛАРОВ В МЕСЯЦ. КОНЕЧНО, МЕСТА, ВЫДЕЛЕННОГО СЕРВЕРУ, НЕ ТАК МНОГО, КАК ХОТЕЛОСЬ, А ХОЧЕТСЯ РАЗМЕСТИТЬ ТАМ ОЙ КАК МНОГО! ВЫХОД ЕСТЬ — NAROD.RU smile

[что за система?] Конечно, на narod.ru мы разместим весь нужный софт, так как там дают неограниченное пространство, а потом напишем хитроумную систему, которая будет лежать на платном хостинге. С помощью этой системы любой пользователь сможет скачивать выложенные файлы, а ссылки будут вести на платный хостинг, и они будут выглядеть так: http://site.ru/download/download.php?id=19.

Система будет состоять из четырех файлов:

1 Скрипт добавления софта (add.php).

2 Скрипт скачки (download.php).

3 Форма для добавления софта (form_add.php).

4 Скрипт, отображающий софт, добавленный нами (index.php).

[принцип работы] системы очень прост. С помощью скрипта мы добавляем в таблицу имя сервера, имя файла и его описание. Скрипт скачки просто-напросто выдирает из таблицы данные, соответствующие номеру id (он передается из скрипта методом GET), и по ним перенаправляет браузер на софт.

Система использует базу данных MySQL, так что приконнектимся к мускулу и выполним простой запрос (листинг 1).

CREATE TABLE `download` (

`uid` int(11) NOT NULL auto_increment,

`file` text NOT NULL,

`server` text NOT NULL,

`ops` longtext NOT NULL,

`click` int(11) NOT NULL default '0',

PRIMARY KEY (`uid`)

) TYPE=MyISAM;

Этим запросом мы создаем таблицу download.

Поля и их описания в этой таблице:

- uid — уникальный номер файла;

- file — имя файла;

- server — имя сервера;

- ops — описание файла;

- click — количество скачиваний файла.

[начинаем кодить.] В скрипте form_add.php разместится форма добавления нового софта, она будет передавать данные скрипту add.php. В качестве метода отправки данных в ней мы будем использовать GET. Сами данные — это имя сервера, имя файла и его описание, то есть в скрипте мы напишем следующие поля:

<input type=text size=30 name=filen> — сюда будем вводить имя файла;

<input type=text size=30 name=server> — сюда — имя сервера;

<input type=text size=80 name=ops> — сюда — описание самого файла.

Например, мы закачали файл linux.rar на сайт http://mysite.narod.ru. Отсюда следует, что в поле File name должно быть введено linux.rar, а в поле Server name — http://mysite.narod.ru.

Однако можно и не писать в конце имени сервера знак прямого слэша «/». Тогда придется добавлять его в скрипте, который помещает все данные в таблицу (add.php), то есть вместо этой строки ($put = "$server$file";) нужно написать $put = "$server/$file"; (описание скрипта смотри ниже). В файле add.php мы соединяемся с базой данных MySQL, потом проверяем все передаваемые параметры на пустые строки и, если все нормально, добавляем эти переменные в таблицу. Пишем так:

mysql_connect($host,$user,"$password"); — здесь $host — имя сервера MySQL; $user — имя пользователя базы данных; $password — пароль этого пользователя.

Все переменные объявляем в начале скрипта. Далее выбираем базу данных, в которой лежит созданная таблица download:
@mysql_select_db($base) or die("Base Error"); $base — в этой переменной хранится имя базы, ее также объявляем в начале.

Затем мы делаем проверку на пустые строки — я не буду описывать как (можно посмотреть в исходнике на диске). После проверки, если все нормально, добавляем данные в таблицу:

mysql_query("insert into download values('', '$filen', '$server', '$ops','0')");

В этом скрипте нужно обязательно добавить проверку на расширение закачиваемых файлов, то есть скрипт должен фильтровать все файлы с расширениями *.php; *.php3;*.html;*.htm и т.д. Однако если этим скриптом будет пользоваться только админ, то и не нужно писать никакую фильтрацию. Можно пойти совсем простым путем и сделать фильтрование так, чтобы скрипт принимал только расширение *.rar, — так будет намного проще. Ах да! Здесь нужно добавить еще одну фильтрацию на спецсимволы в переменных: $filen, $server $ops.

Теперь рассмотрим стартовую страницу. На ней будут выводиться ссылки и описания всех добавленных файлов. Принцип работы скрипта похож на принцип работы предыдущего скрипта. Мы так же соединяемся с MySQL, только вместо добавления информации в таблицу мы извлекаем ее и выводим на экран.

..здесь соединяемся с MySQL...

print "<body bgcolor=000000 link=orange alink=orange vlink=orange text=ffffff>";

print "<center><div style=background-color:orange;color:000000>Best soft</div></center>";

….

Теперь возьмем всю информацию из таблицы, то есть мы выполним такой запрос:

$re=mysql_query("select * from download order by uid desc");

Возникает законный вопрос: что такое desc? Рассказываю. Это нужно для того, чтобы тот файл, который был добавлен последним, являлся первым в списке вывода.

Далее все просто: мы перебираем весь архив и выводим его на нашу страничку (листинг 2).

while($res=mysql_fetch_array($re)) 

{

print "<div style='border-left: 1px orange solid;border-right: 1px orange solid;border-bottom: 1px orange solid;padding:6px'>

<a href='download.php?id=$res[uid]'><b>$res[file]</b></a>

<div class=tekst>$res[ops]<br>

Скачиваний: ($res[click])<br>

</div></div>";

}

При клике на ссылку скрипту download передается параметр id, и скрипт выдирает из таблицы всю нужную информацию.

В скрипте download.php, как всегда, соединяемся с MySQL и выполняем точно такой же запрос, как и в предыдущем скрипте, но здесь необязательно писать desc. Далее снова перебираем весь полученный массив и сравниваем переменную $id, полученную из стартовой страницы. $res[uid] — это уникальные идентификационные номера каждой программки. Если они совпадают, то мы увеличиваем на 1 число, стоящее в таблице в поле click (поле click отвечает за число скачиваний, если ты не забыл) .Потом просто делаем перенаправление на адрес, сгенерированный из таблицы (листинг 3).

while($res=mysql_fetch_array($re)) 

{

$click = $res[click];// В этой переменной хранится количество скачиваний

if ($id == $res[uid])// Проверяем совпадение id из формы и uid из таблицы

{ 

$file = $res[file];

$server = $res[server];

$put = "$server$file";// Генерим адрес программы

$click = $click + 1;

mysql_query("UPDATE download SET click=$click WHERE uid=$id");

header("location:$put");// А здесь перенаправляем

}

}

[один минус] этой системы, заметный не всем, — то, что при клике на ссылку появляется стандартное окно закачки и внутри него в поле «Источник» будет вписан истинный адрес сервера, откуда пользователь качает файл. Однако если используется утилита типа Flash Get, то ты ничего не увидишь больше, кроме имени закачиваемого файла.

Вот и все. Надеюсь, эта статья заинтересовала всех тех, кто хочет сэкономить на хостинге. Кстати, для хранения софта лучше пользоваться бесплатным хостингом www.h1.ru

Ссылки по теме

ТИП: WWW

www.offbit.1gb.ru/download — ЗДЕСЬ МОЖНО НАЙТИ СИСТЕМУ, ОПИСАННУЮ ВЫШЕ, В РАБОЧЕМ РЕЖИМЕ.

www.woweb.ru — ЦЕЛЫЙ АРХИВ PHP-СКРИПТОВ НА ЛЮБОЙ ВКУС.

www.h1.ru — БЕСПЛАТНЫЙ ХОСТИНГ. ДАЖЕ КРУЧЕ, ЧЕМ narod.ru.

www.1gb.ru — ПО-МОЕМУ, ЛУЧШИЙ ПЛАТНЫЙ ХОСТИНГ.



PM MAIL   Вверх
nerezus
Дата 19.9.2006, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Купить VDS.
Это сбережет твои нервы.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.