Stránka: 1 z 1
| [ Príspevkov: 18 ] | |
Autor | Správa |
---|
Registrovaný: 22.11.06 Prihlásený: 24.07.11 Príspevky: 27 Témy: 11 | 11 Bydlisko: Malacky |
caute chlapi,
na stranke mam download na nejake subory a potebujem zaznamenavat pocet stiahnuti. Vobec entusim jak by som to robil pomocou php. Viem ze v prikaze <a> sa da pridat take nieco ze onclick="", len neviem jakto pouzit v php. Asi treba na to javascript, len z toho som uplne blbi. Potrebujem len inkrementovat jednu hodtnotu v databaze, co su dva riadky zdrojaku v php. Len kam to dat, ked sa nenacitava nova stranka, kde mozem zachytit zmeny. Poradte prosim ako to jednoducho spravit....diky
|
|
Registrovaný: 04.04.07 Prihlásený: 17.07.24 Príspevky: 532 Témy: 35 | 35 Bydlisko: Bratislava |
napriklad index.php:
Kód: <script type="text/javascript"> function nacitaj(name) { window.setTimeout("window.location='"+name+"'",0); } </script> <a href="bla bla" onClick='nacitaj(subor.php);'> a do subor.php si das co potrebujes aby ti updatlo databazu a nakoniec das: Kód: Header("Location:index.php");
to ta vrati naspat do index.php.
Takto by som to mozno riesil ja, ale neviem ci je to najjednoduchsie.
_________________ CPU: AMD Phenom II 940 QUAD X4 BE AM2+, chladic: Arctic Cooling Freezer 64 Pro, RAM: 4GB DDR2 800MHz PC6400, MB: M2N-E SLI, VGA: RX 4870 GAINWARD HD4870 1GB, HDD: WD 1TB, Zdroj: CORSAIR 750W TX |
|
Registrovaný: 22.11.06 Prihlásený: 24.07.11 Príspevky: 27 Témy: 11 | 11 Bydlisko: Malacky |
No ale praveze to nechcem spravit tak ze sa nacita nove okno. Chcem aby po kliknuti na link si uzivatel subor ulozil , pricom stranka stale zostava na tom istom, lebo sa mu tam prehrava video
|
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
Ak sa smiem spytat, ktoru stranku robis? Konkurencia youtube?
skus to vyriesit cez pop-up okno, ktore sa otvori, user klikne na stiahnut a potom sa samo zatvori....
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 | 181 Bydlisko: Nitra / Bra... |
čo tak pomocou AJAX? Ten includuje súbor bez refreshu. To by sa teoreticky dalo tak použiť, že by si po kliknutí includoval súbor.php, ktorý by pripočítal jedno stiahnutie  A video bude bežať ďalej...
_________________ Sorry za prelkepy |
|
Registrovaný: 22.11.06 Prihlásený: 24.07.11 Príspevky: 27 Témy: 11 | 11 Bydlisko: Malacky |
Kód: čo tak pomocou AJAX? Ten includuje súbor bez refreshu. To by sa teoreticky dalo tak použiť, že by si po kliknutí includoval súbor.php, ktorý by pripočítal jedno stiahnutie A video bude bežať ďalej...
hmm....a vedel by si mi ukazat jak by mal ten kod vyzerat?......s ajaxom nemam ziadne skusenosti
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 | 181 Bydlisko: Nitra / Bra... |
_________________ Sorry za prelkepy |
|
Registrovaný: 22.11.06 Prihlásený: 24.07.11 Príspevky: 27 Témy: 11 | 11 Bydlisko: Malacky |
Kód: http://javascript.internet.com/ajax/ajax-navigation.html nech sa lúbi, niečo som našiel...
tak jak vidim ani to neni zlozite menit html kod bez refresu stranky. Odskusal som si to a fici to vpohode. Len problem je to ze cez tento skript sa kod hned vlozi do html. Ja potrebujem ten kod vykonat najskor na serveri aby vedel prelozit ten php kod. Lebo ked mu php kod vlozim priamo, nema ten kod kto prelozit do html kodu
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 | 181 Bydlisko: Nitra / Bra... |
hmm... tak som sa zmýlil  veď som len človek - amatér 
_________________ Sorry za prelkepy |
|
Registrovaný: 22.11.06 Prihlásený: 24.07.11 Príspevky: 27 Témy: 11 | 11 Bydlisko: Malacky |
tak nasiel som jeden clanok kde pouzivaju to co potrebujem, je to o vyhladavani v databaze a hend im to vypluje vysledky bez refreshu stranky
Kód: http://interval.cz/clanky/ajax-a-kniznica-clankov-s-fulltextovym-vyhladavanim-zaklad-rozhrania/
a je to kurwa zlozite, neviete niekto nieco jednoduchsie?...predsa len potrebujem vykonat dva riadky php
|
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | 20 |
Preco by sa nedalo,
myslim, ze tu javascript nie je najvhodnejsie riesenie. Proste by som si spravil vseobecny skript download php, do ktoreho by som odosielal v linku aj napr id, meno suboru atd na stiahnutie, nieco ako
download.php?idSuboru=$idSuboru
v download php by som najpr inkrementoval hodnotu stiahnuti v db a potom by som dal stiahnut dany subor (identifikovany ako idSuboru, podla ktoreho napr dostanes meno z DB ak mas info a tychto suboroch ulozene v DB, pripadne len meno suboru cez $_GET metodu alebo inak) cez php header. Myslim, ze toto by mohlo fungovat.
Zalezi vsak na tom, ake subory stahujes, myslim tym typ (mp3, skripty, obrazky, videa atd atd) a chcelo by to vsetko este osetrit, aby sa niekto nesnazil stiahnut cez download.php to co nema, napr nejake passwordy, pristup do db atd.
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 | 181 Bydlisko: Nitra / Bra... |
mondzo: aj ja by so mto tak riešil ale on to chce bez refreshu...
teoreticky by to šlo aj tak, ako písal modzno, a to by sa otvorilo v novom okne a po vykonani scriptu sa okno zavrie (close.window - alebo tak nejak to je) a to hovorím iba teoreticky 
_________________ Sorry za prelkepy |
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | 20 |
ziadne refresh nemusi byt, ked spravi download cez php hlavicky, tak by mu mal browser ponuknut to aplikacne okno s moznostami: OPEN, SAVE a CANCEL ci ako je to.
Ja neviem, to ma napadlo tak na rychlo...
Tu je cast mojho kodu pre pdf dokumenty, staci zmenit content-type pre ine typy suborov. $filename treba upravit podla toho, odkial ho ziskavas, ci z linku, databazy atd.
Ked sa toto vykona, browser by mal ponuknut standardne aplikacne okno na ulozenie, otvorenie alebo zrusenie, treba vyskusat, mne to funguje...
Kód: $filename = "2008_v1";
// file + extension $file = $filename.'.pdf';
// full path to file $fullPath = $_SERVER['DOCUMENT_ROOT']."/download/".$file;
// open file $handle = fopen($fullPath, "rb");
// get filesize $fsize = filesize($fullPath);
// header stuff header("Expires: 0"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Content-type: application/pdf"); header('Content-length: '.$fsize); header('Content-disposition: attachment; filename='.basename($file)); // inline
// read file content while(!feof($handle)) { $buffer = fread($handle, 2048); echo $buffer; }
// Exit script. So that no useless data is output-ed. exit;
|
|
Registrovaný: 22.11.06 Prihlásený: 24.07.11 Príspevky: 27 Témy: 11 | 11 Bydlisko: Malacky |
no tak som to skusil a je to presne to co hladam:)
len mi to nejak blbne. Ked to tam stiahnut tak stiahnuty subor ma len 3 bajty. Mi to pripada akoby bola zle zadana cesta a netaha z tej spravnej cesty
kod mam takyto:
Kód: include("config.php");
$id_mp3 = $_GET['id']; $query = "SELECT * FROM mp3 WHERE id_mp3='$id_mp3'"; $result = mysql_query($query); $row = mysql_fetch_array($result);
$filename = $row['name']; $id_category = $row['id_category'];
$file = $filename.'.mp3';
$fullPath = $_SERVER['DOCUMENT_ROOT']."/music/".id_category."/".$file;
$fsize = filesize($fullPath);
header("Expires: 0"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Content-type: application/force-download"); header('Content-length: '.$fsize); header('Content-disposition: attachment; filename='.basename($fullPath)); readfile($fullPath); $query = "UPDATE mp3 SET download_c = download_c + 1 WHERE id_mp3='$id_mp3'"; mysql_query($query);
exit;
|
|
Registrovaný: 26.07.06 Prihlásený: 20.03.16 Príspevky: 1378 Témy: 90 | 90 Bydlisko: Slovakia-Ko... |
asi nepomoze ale skus toto pomenit
Kód: header("Content-length: " .$fsize); header("Content-disposition: attachment; filename=".basename($fullPath));
_________________ CPU: Intel E7200 momentalne default + freezer 7 pro | MB: Gigabyte GA-P35-DS3 rev. 2.0 F14 | RAM: A-DATA 4x1GB EE Vitesta | VGA: ATI Radeon HD4850 Sapphire Dual Slot | Monitor: BenQ E2200HD+17CTX | HDD: WD 3200AAKS + Maxtor 6Y080M0 80GB SATAII + 120GB ATA Barracuda | PSU: Corsair VX450W | Windows 7 Ultimate Sk | REPRO: Logitech X-210
+
IPhone 3GS JB 3.1.3 (new BR)
múdry sa postara o seba ale ešte múdrejši sa postara aj o druhých |
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | 20 |
nie nie nie, toto query
$query = "UPDATE mp3 SET download_c = download_c + 1 WHERE id_mp3='$id_mp3'";
mysql_query($query);
daj niekde vyssie, este pred hlavicky a malo by to fungovat...
|
|
Registrovaný: 22.11.06 Prihlásený: 24.07.11 Príspevky: 27 Témy: 11 | 11 Bydlisko: Malacky |
no tak uz som to rozbezal
takze chybu som mal v readfile($file); , kde mala byt plna cesta k suboru teda readfile($fullPath);
a este strasne zaciatocnicka chyba na ktorej som sa pekne pobavil bola tu
$fullPath = $_SERVER['DOCUMENT_ROOT']."/music/".id_category."/".$file;
premennu id_category som mal bez $
Citácia: nie nie nie, toto query
$query = "UPDATE mp3 SET download_c = download_c + 1 WHERE id_mp3='$id_mp3'"; mysql_query($query);
daj niekde vyssie, este pred hlavicky a malo by to fungovat...
to navadilo inak...spravilo to dobre to query aj ked to bolo pod hlavickou
|
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | 20 |
hlavne, ze to funguje...
Ale chce to osetrit, ale to uz nechavam na teba.
|
|
Stránka: 1 z 1
| [ Príspevkov: 18 ] | |
|