Aceasta este o previzualizare a unei teme de pe site-ul Hitskin.com
Instaleaza o tema • Inapoi la fisa temei
[Tutorial PHP]Monitorizarea fisierelor la download
:: Zona Generala :: pHpBB3
Pagina 1 din 1 • Distribuiţi
[Tutorial PHP]Monitorizarea fisierelor la download
Nume Tutorial:Monitorizarea fisierelor la download
Descriere:Monitorizarea fisierelor la download
Download:Nu necesita
Autor:Anonim
Propria parere:Util.
Tutorialul:
Nume Tutorial:Monitorizarea fisierelor la download
Descriere:Monitorizarea fisierelor la download
Download:Nu necesita
Autor:Anonim
Sursa (Link-ul oficial):
AFISEAZA TEXTUL
Propria parere:Util.
Tutorialul:
De curând am avut nevoie de un script care să îmi monitorizeze numărul de download-uri făcute pentru un anumit fişier. Am început să îl scriu şi rezultatul îl prezint mai jos. Pentru început, să zicem că numele fişierului este test.zip şi că îl punem pe server în directorul download. În pagina în care facem legătura la el în mod normal scriem un link de forma:
<a href="download/test.zip">Descarca fisierul test.zip</a>
Pentru a putea fi monitorizat acest fişier, trebuie să apelam un script intermediar care să facă contorizarea şi apoi să ne returneze fişierul respectiv. Să zicem că scriptul de monitorizare se numeşte load.php Acest script va primi prin get ca parametru numele fişierului pe care dorim să îl descărcăm astfel:
<a href="load.php?cere=test.zip">Descarca fisierul test.zip</a>
Mai departe, scriptul se va ocupa cu salvarea datelor în baza de date şi returnarea fişierului cerut.
Cum face asta?
Pentru asta trebuie să existe un tabel în baza de date în care se va salva datele vizitatorului şi numele fişierului.
De ce nu se salvează doar numărul de descărcări al fişierului?
Pentru că există scripturi pe net (boţi sau spideri) care indexează fiecare pagină şi pot apela de mai multe ori pe minut acelaşi link, cum este şi linkul de download, iar dacă noi salvăm în baza de date doar numărul de accesări acest lucru nu va fi real, deoarece spiderii nu descarcă fişierul, doar accesează linkul pentru indexare. (Am păţit la un spider să îmi acceseze aceeaşi pagină şi de 20 de ori pe zi, dacă nu aveam în baza de date salvate datele nu aş fi ştiut şi aş fi crezut că a fost un record la descărcatul acelui fişier în ziua respectivă)
Tabelul în baza de date ar trebui să conţină coloanele următoare:
id - nume_fisier - data_ora - ip_vizitator - browser
Id-ul va fi int autoincrement,
numele fişierului este varchar(100) - nu cred că numele fişierului va fi mai mare de 100 de caractere nu?
data_ora - standard eu o pun datetime dar voi puteţi să o puneţi în ce format doriţi să se salveze data şi ora şi minutul (în cazul când acelaşi vizitator - ip - descarcă de mai multe ori pe zi acelaşi fişier să ştim asta şi să contorizam doar numărul de descărcări unice)
ip_vizitator - varchar(15)
browser - varchar(255) - semnăturile de browser pot fi destul de lungi...
Iată mai jos un exemplu:
Până acum avem un fişier index.php care conţine linkul de download, apoi avem fişierul load.php cu scriptul de mai sus, şi mai avem directorul 'download' care conţine fişierul test.zip
Lipseşte scriptul care afişează numărul de descărcări efectuate. Scripul acesta poate fi inclus în index.php astfel:
Pe lângă linkul de download se va afişa şi numărul de descărcări unice efectuate (după ip). Bineînţeles că având salvările din baza de date putem face un script care să ne arate rapoarte pe zile, pe ore sau pe numele fişierului (dacă sunt mai multe fişiere).
Descriere:Monitorizarea fisierelor la download
Download:Nu necesita
Autor:Anonim
Propria parere:Util.
Tutorialul:
Nume Tutorial:Monitorizarea fisierelor la download
Descriere:Monitorizarea fisierelor la download
Download:Nu necesita
Autor:Anonim
Sursa (Link-ul oficial):
AFISEAZA TEXTUL
Propria parere:Util.
Tutorialul:
De curând am avut nevoie de un script care să îmi monitorizeze numărul de download-uri făcute pentru un anumit fişier. Am început să îl scriu şi rezultatul îl prezint mai jos. Pentru început, să zicem că numele fişierului este test.zip şi că îl punem pe server în directorul download. În pagina în care facem legătura la el în mod normal scriem un link de forma:
<a href="download/test.zip">Descarca fisierul test.zip</a>
Pentru a putea fi monitorizat acest fişier, trebuie să apelam un script intermediar care să facă contorizarea şi apoi să ne returneze fişierul respectiv. Să zicem că scriptul de monitorizare se numeşte load.php Acest script va primi prin get ca parametru numele fişierului pe care dorim să îl descărcăm astfel:
<a href="load.php?cere=test.zip">Descarca fisierul test.zip</a>
Mai departe, scriptul se va ocupa cu salvarea datelor în baza de date şi returnarea fişierului cerut.
Cum face asta?
Pentru asta trebuie să existe un tabel în baza de date în care se va salva datele vizitatorului şi numele fişierului.
De ce nu se salvează doar numărul de descărcări al fişierului?
Pentru că există scripturi pe net (boţi sau spideri) care indexează fiecare pagină şi pot apela de mai multe ori pe minut acelaşi link, cum este şi linkul de download, iar dacă noi salvăm în baza de date doar numărul de accesări acest lucru nu va fi real, deoarece spiderii nu descarcă fişierul, doar accesează linkul pentru indexare. (Am păţit la un spider să îmi acceseze aceeaşi pagină şi de 20 de ori pe zi, dacă nu aveam în baza de date salvate datele nu aş fi ştiut şi aş fi crezut că a fost un record la descărcatul acelui fişier în ziua respectivă)
Tabelul în baza de date ar trebui să conţină coloanele următoare:
id - nume_fisier - data_ora - ip_vizitator - browser
Id-ul va fi int autoincrement,
numele fişierului este varchar(100) - nu cred că numele fişierului va fi mai mare de 100 de caractere nu?
data_ora - standard eu o pun datetime dar voi puteţi să o puneţi în ce format doriţi să se salveze data şi ora şi minutul (în cazul când acelaşi vizitator - ip - descarcă de mai multe ori pe zi acelaşi fişier să ştim asta şi să contorizam doar numărul de descărcări unice)
ip_vizitator - varchar(15)
browser - varchar(255) - semnăturile de browser pot fi destul de lungi...
Iată mai jos un exemplu:
- Cod:
CREATE TABLE `download` (
`download_id` int(11) NOT NULL auto_increment,
`file_name` varchar(100) NOT NULL,
`date_time` datetime NOT NULL,
`ip` varchar(15) NOT NULL,
`browser` varchar(255) NOT NULL,
PRIMARY KEY (`download_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;
- Cod:
<?php
// fisierul load.php
// se deschide bufferul pentru a se evita problemele cu headerele
ob_start();
// se verifica ce fisier se cere
if (isset($_GET['cere'])) {
$nume_fisier = mysql_real_escape_string($_GET['cere']);
$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT'];
// se salveaza cererea in baza de date
$interogare = "INSERT INTO `download`
(`file_name`, `date_time`, `ip`, `browser`) VALUES <br>
('$nume_fisier', NOW(), '$ip', '$browser')";
$rezultat = mysql_query($interogare)
// se returneaza fisierul
echo '<meta http-equiv="refresh" content="0;URL=download/'.$nume_fisier.'" />';
}
else {
echo 'Nu a fost cerut nici un fisier';
}
// se inchide bufferul
ob_end_flush();
?>
Până acum avem un fişier index.php care conţine linkul de download, apoi avem fişierul load.php cu scriptul de mai sus, şi mai avem directorul 'download' care conţine fişierul test.zip
Lipseşte scriptul care afişează numărul de descărcări efectuate. Scripul acesta poate fi inclus în index.php astfel:
- Cod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<a href="load.php?cere=test.zip">Descarca fisierul test.zip </a>
<?php
$conectare = mysql_connect('localhost', 'root', '');
mysql_select_db('nume_baza_date', $conectare);
$comanda_sql = "SELECT count(*) FROM `download` GROUP BY `ip`";
$interogare_sql = mysql_query($comanda_sql);
$total = mysql_result($interogare_sql, 0);
echo $total.' descarcari';
?>
</body>
</html>
Pe lângă linkul de download se va afişa şi numărul de descărcări unice efectuate (după ip). Bineînţeles că având salvările din baza de date putem face un script care să ne arate rapoarte pe zile, pe ore sau pe numele fişierului (dacă sunt mai multe fişiere).
Joker- Medalia TopicurilorInsigna pentru crearea a 150 de posturi !Medalia prietenieiFelicitari ! Această insignă se obține când ai un prieten !Medalia grupurilorFelicitari ! Dacă ai această insignă înseamnă că faci parte din cel puțin 4 grupuri.Primul topic creatFelicitari ! Ai primit aceasă insignă pentru primul tau topic făcut la noi pe forum !Medalie de mulțumireFelicitari ! Această insignă se obține când oferi o mulțumire !Medalie de apreciereFelicitari ! Această insignă se obține când ai 10 de mesaje apreciate !Medalie participare subiecteInsigna pentru participarea la 125 de subiecte !Medalie de puncteDisponibilă la 15000 de puncte!Medalia vechimii [ani]Ai 365 de zile de când ești alături de noi !
Pet :
Mesaje : 180
Puncte : 42372
Multumiri primite: : 33
Data de înscriere : 25/10/2022
mindfreak.- Medalia TopicurilorInsigna pentru crearea a 150 de posturi !Medalia grupurilorFelicitari ! Dacă ai această insignă înseamnă că faci parte din cel puțin 4 grupuri.Primul topic creatFelicitari ! Ai primit aceasă insignă pentru primul tau topic făcut la noi pe forum !Medalie de mulțumireFelicitari ! Această insignă se obține când oferi o mulțumire !Medalie de apreciereFelicitari ! Această insignă se obține când ai 1 mesaj apreciat !Medalie de puncteDisponibilă la 15000 de puncte!Utilizatori urmăriți !Felicitari ! Urmărești 5 membrii !Medalia vechimii [ani]Ai 365 de zile de când ești alături de noi !Medalia prietenieiFelicitari ! Această insignă se obține când ai 15 de prieteni !Medalie participare subiecteInsigna pentru participarea la 175 de subiecte !
Pet :
Mesaje : 347
Puncte : 29480
Multumiri primite: : 111
Data de înscriere : 24/10/2022
Varsta : 26
Subiecte similare
ť [Tutorial] Cum sa pui un GUI pe non-steam
ť Tutorial Spray!
ť Tutorial BB Codes
ť [Tutorial] Cum fac un script CS
ť [Tutorial] Cum sa ai un server de succes !
ť Tutorial Spray!
ť Tutorial BB Codes
ť [Tutorial] Cum fac un script CS
ť [Tutorial] Cum sa ai un server de succes !
:: Zona Generala :: pHpBB3
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum