Autor Zpráva
ÄriasCZ
Profil *
Dobrý den, psal jsem zde na fórum už víckrát ale každopádně můj požadavek tady asi vystihl nejlíp člen Wetrik jedná se o to že zakládáme upload server ale je tam problém s reklamou aby se lidem zobrazila můsí to být upraveno a potom samotný upload který bych chtěl udělat pomocí předem vytvořeného kódu z uploadify.com a ted jak bych si to asi představoval

AriasCZC:
Když si zapamatuji odkaz download.php?stahni=NejakySoubor tak se dostanu rovnou k downloadu toho souboru a vyhnu se tak reklamě - pokud se nepletu. Předpokládám, že to nechceš.
Já bych to s dovolením řešil jinak. Když se mrkneš na ty upload servery, tak soubor je dostupný na nějaké url - kde je reklama - potom se vygeneruje jedinečná url pro stáhnutí souboru.
Zapojil bych do toho i databázi, kde bys mohl snadněji spravovat údaje o souborech - poslední stáhnutí, datum uploadu, počet stáhnutí atd.
File systém by mohl být jako nějaká "tajná složka" kam se budou soubory nahrávat. Těch složek bych možná použil i více a v každé měl třeba 1000 souborů.

Každému uživateli by skript vygeneroval jedinečný kód k souboru, tento kód by se uložil s nějakým id do DB, kde by bylo ještě datum vložení (ID, KOD, DATUM). To id bych uložil návštěvníkovi do cookie a při každé návštěvě kontroloval, zda to id tam nemá - pokud ano -> načtu data z DB a zkontroluju datum - starší 20min je neplatné a reklamu si musí vytrpět znovu.
Pokud cookie má a datum menší než 20 min, přesměruji ho na další stránku, kde v url by byl ten kód
http://neco.cz/kod/soubor . Na tu samou stránku by vedl odkaz po vytrpění reklamy.
Na ošetření použiješ mod_rewrite, na této stránce bych porovnal id v cookie a id na řádku s kódem z url - pokud je to ok - stáhnu soubor pokud ne - přesměruji zpět. Až nabídnu soubor na stáhnutí vymažu záznam z DB, smažu cookie a uložím si statistické údaje.

A při každé návštěvě můžeš třeba záznamy z DB s kódama starší 20min rovnou mazat.


Tak se ptam jestli by někdo byl takovej kód schopnej vytvořit, máme prostředky na to aby jsme to zrealizovali autorovy dáme procenta z výdělku reklam. Pokusil by se o to někdo prosím ?

Moderátor DoubleThink: Titulek „Kód ketej neni náročnej :D“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
jenikkozak
Profil
mmm, tohle by mělo patřit do Prací a zakázek. Teoreticky, nesplňuje tamní pravidla.
Alphard
Profil
ÄriasCZ:
Předchozí témata jsem nečetl, tak snad nebudu něco opakovat.

Na jakém softwaru ten server pojede? Generování nějaký kódu je triviální. Jako nejtěžší vidím samotné ověření a následné stažení souboru. Vy to máte v jedné větě:
"Na ošetření použiješ mod_rewrite, na této stránce bych porovnal id v cookie a id na řádku s kódem z url - pokud je to ok - stáhnu soubor pokud ne - přesměruji zpět."
Ale jak stáhnete soubor? Jestli použijete klasické readfile(), bál bych se u vytížené aplikace o výkon. Stejný problém např. na Lighttpd se již řešil. U vytíženého download serveru potřebujete dobře vyladěnou aplikaci.
ÄriasCZ
Profil *
Právě o to mi de dobře vyladěnou aplikaci. Já v php moc nevinikám ale chtěl bych se zeptat co je a k čemu slouží ten Lighttpd a co ja potřeba k rozjetí této aplikace ?
shaggy
Profil
ÄriasCZ:
k čemu slouží ten Lighttpd a co ja potřeba k rozjetí této aplikace
Slúži na to isté, na čo napr. apache (predpokladám, že ten máš k dispozícii).
Ale podľa toho, čo píšeš, sa do týchto vecí moc nevyznáš. Preto mi je divné, že chceš poradiť, ako to naprogramovať a nedáš to Prác a zákaziek.
Alphard
Profil
ÄriasCZ:
Jak již píše shaggy, je to web server.

Přečtete si článek Sending files better: Apache mod_xsendfile and PHP, to samé, ale s modulem pro Apache. Právě jsem to zkoušel (na Win 7 se mi podařilo zprovoznit až betu), funguje to skvěle (velkou zátěž jsem nesimuloval).

Adresářová struktura:
/.htaccess
/files_storage/.htaccess
/files_strage/soubor1
/files_strage/soubor2 …
/index.php
/download.php

Soubory jsou uložené v adresáři files_storage, kde je mj. .htaccess s pravidlem
Order allow,deny   
Deny from all
Tím je zaručeno, že i kdyby někdo zjistil cestu k souboru, nemůže ho přímo stáhnout.

Odkaz na soubor se vytváří v souboru index.php:
<ul>
  <li><a href="download.php?file=99_luftballoons.mp3&code=down7">99 luftballoons</a></li>
  <li><a href="download.php?file=american_pie.mp3&code=down7">American Pie</a></li>
  <li><a href="download.php?file=kdyz_cowboy_spi.mp3&code=down3">Kdyz cowbay spi</a></li>
  <li><a href="download.php?file=nerikej.mp3&code=down11">Nerikej</a></li>
</ul>
V praxi by se to generovalo, ale pro testy to zcela stačí, scriptu download se předá název souboru a kód, víc nepotřebuje.

A poslední soubor download.php:
<?php

// seznam souboru, ktere je povoleno stahovat
$files = array(
  '99_luftballoons.mp3',
  'american_pie.mp3',
  'kdyz_cowboy_spi.mp3',
  'nerikej.mp3',
);

// seznam validnich kodu
$allowCodes = array (
  'down7',
  'down8',
  'down11',
);

// zpracovani request
$requestFile = !empty($_GET['file']) ? $_GET['file'] : '';
$code = !empty($_GET['code']) ? $_GET['code'] : '';

// kontroly
if (!in_array($requestFile, $files))
{
  echo "Soubor neexistuje";
  exit;
}

if (!in_array($code, $allowCodes))
{
  echo "Neplatný kód";
  exit;
}

  // stazeni souboru
  $localname = 'files_storage/'.$requestFile;

  header("Content-Description: File Transfer");
  header("Content-Type: application/octet-stream");
  header('Content-Length: ' . strlen($localname));
  header("Content-Disposition: attachment; filename=\"$requestFile\"");

  header("X-Sendfile: $localname");

  exit;

Na úroveň download.php je ještě nutné umístit .htaccess s pravidlem:
<Files download.php>
XSendFile on 
</Files>


Vše funguje dokonale. Tři soubory se správným kódem lze stáhnout, ten s chybným ne. Při snaze dostat se do adresáře /files_storage/ samozřejmě chyba 403 Forbidden.
ÄriasCZ
Profil *
Založil jsem téma v Prací a zakázek a je super že sou lidi co mě poradí ale jak sem řekl nejsem v php moc dobrej proto bych potřeboval komlet i stím upload progress metrem toto řešení nahoře by bylo ok jemože já to sám dohromady nedám poradili by jste mě někdo nebo skusili by jste ten kód dát dohromady??
fuckin
Profil
Prvně si ujasni kde nato vezmeš peníze. Zhruba 20k měsíčně stojí normalní linka k netu + fileservery. Je samozřejmě nutností mít oddělený fileserver a webserver.

a Lighttp neslouží jako webserver, ale hlavně jako zázemí fileserveru!
AriasCZ
Profil
Prostředky na realizaci máme jenom sesteavit takovej kód aby to šlo :D
mckay
Profil
AriasCZ:
Při prostředcích na pokrytí nákladů běžícího download serveru by neměl být problém místo provize z reklamy nabízet peníze na ruku ;-).
AriasCZ
Profil
jo ale je rozdíl když známý vlastní hostingovou společnost než když bych měl sehnat peníze na realizaci konec konců řikám že to mám zařízený ted de o to co tam bude ne ?

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: