Downloads counter?

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
WSPNH
Δημοσιεύσεις: 97
Εγγραφή: 10 Μαρ 2006 12:52
Επικοινωνία:

Downloads counter?

Δημοσίευση από WSPNH » 10 Μαρ 2006 13:00

Geia saw kserei kaneis pws ginete na metraw poses fores exei ginei download ena arxeio apo to site mou h pio swsta apo to server?
A kai na emfanizetai sto site mou p.x. dipla apo to link toy download..
Thanks.. :D

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Downloads counter?

Δημοσίευση από panosru » 10 Μαρ 2006 15:38

ayto den einai kapoio script ayto einia texnikh, apla sto link pou einai to download kane ena record sthn database dld

esto exeis se ton pinaka downloads
kai se mia eggrafh exeis
id = 1
name = foobar
download_times = 7

ekei pou exeis to download link kathe fora pou tha pataei kapoios to link mporeis na kaleis kai ena query opou tha kanei ena update sthn bash kai tha leei px apo ton pinaka download_times + 1 apo ton pinaka downloads

ayth einai h idea an mporeis na thn efarmoseis kalos allios na perimeneis paradeigma :P

WSPNH
Δημοσιεύσεις: 97
Εγγραφή: 10 Μαρ 2006 12:52
Επικοινωνία:

Downloads counter?

Δημοσίευση από WSPNH » 11 Μαρ 2006 00:53

Kalytera na perimenw paradeigma. giati den skampazw ntip

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Downloads counter?

Δημοσίευση από panosru » 11 Μαρ 2006 02:27

ok molis bro xrono tha sou ftiakso kati ektos kai an me prolabei kai ftiaksei kapoios kati allo :D

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Downloads counter?

Δημοσίευση από Basilakis » 18 Μαρ 2006 11:33

Κώδικας: Επιλογή όλων

CREATE TABLE `downloads` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`url` varchar(255) NOT NULL default '',
`count` smallint(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM DEFAULT CHARSET=greek COLLATE=greek_general_ci PACK_KEYS=0 AUTO_INCREMENT=1 ;
H database soy gia na pernas ta downloads.

Kai o kwdikas twra
downloads.php

Κώδικας: Επιλογή όλων

<?php
include&#40;"dbconnect.php"&#41;;

mysql_connect&#40;$host,$username,$password&#41; or die&#40;"Error connecting to Database!
" . mysql_error&#40;&#41;&#41;;

mysql_select_db&#40;$database&#41; or die&#40;"Cannot select database!
" . mysql_error&#40;&#41;&#41;;

$getdownloads = mysql_query&#40;"SELECT * FROM downloads ORDER BY id DESC"&#41;; 
while&#40;$row = mysql_fetch_assoc&#40;$getdownloads&#41;&#41;
&#123;
print&#40;" $row&#91;title&#93; - Downloaded $row&#91;count&#93; Times"&#41;;
&#125;

?>
downloadfile.php

Κώδικας: Επιλογή όλων

<?php
include&#40;"dbconnect.php"&#41;;

if &#40;$id&#41; &#123;

$go = MYSQL_QUERY&#40;"SELECT * FROM downloads WHERE id = $id"&#41;;


if&#40;!$go&#41; &#123; die&#40;"Error!"&#41;; &#125;
$home = MYSQL_FETCH_ARRAY&#40;$go&#41;;


MYSQL_QUERY&#40;"UPDATE downloads SET count = count + 1 WHERE ID = $home&#91;id&#93;"&#41;;
MYSQL_FREE_RESULT&#40;$go&#41;;


header&#40;"Location&#58; $home&#91;url&#93;"&#41;;
&#125;
?>
kai kati san admin panel

Κώδικας: Επιλογή όλων

<?php
include&#40;"dbconnect.php"&#41;;
if&#40;!empty&#40;$title&#41;&#41; &#123;
$title = addslashes&#40;$title&#41;;
$url = addslashes&#40;$url&#41;;

$sql = "INSERT INTO downloads &#40;id, title, url&#41; VALUES &#40;'NULL', '$title','$url'&#41;";
$query = mysql_query&#40;$sql&#41; or die&#40;"ERROR<br>" . mysql_error&#40;&#41;&#41;;
echo "Database Updated.";
&#125; else &#123;
?> 
<form name="news" method="post" action="<?php echo $PHP_SELF; ?>">
<p>Συμπληρώστε τα παρακάτω πεδία&#58;</p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>
<td width="117"><font size="1">Τίτλος*&#58; </font> </td>
<td width="577"> 
<font size="1"> 
<input type="text" name="title" size="50">
</font>
</td>
</tr>
<tr>


<tr>
<td width="117"><font size="1">URL*&#58;</font></td>
<td width="577"> 
<font size="1"> 
<input type="text" name="url" size="50">
</font>
</td>
</tr>


</table>
<p>

<input type="submit" name="Submit" value="Submit"></font>
</p>
</form> <?php
&#125;
?>
Απλό και εύκολο!

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Downloads counter?

Δημοσίευση από Rapid-eraser » 18 Μαρ 2006 21:02

Ti 8a givei stnv periptosi pou kapoios kavei direct hit sto arxeio ???
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

WSPNH
Δημοσιεύσεις: 97
Εγγραφή: 10 Μαρ 2006 12:52
Επικοινωνία:

Downloads counter?

Δημοσίευση από WSPNH » 18 Μαρ 2006 21:24

Ευχαριστώ πολύ θα τα εφαρμόσω και θα δούμε.

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Downloads counter?

Δημοσίευση από Basilakis » 19 Μαρ 2006 14:08

Vasika pws tha kserei kapoios poio einai to arxeio? Kai pou einai hosted xwris na pathsei sto link?
Erwthmata pou mou hrthan sto myalo molis to eipes.. Meta lew rapid einaui gia na to leei kati tha kserei.. Alla vasizomenos sta parapanw erwthmata, den nomizw gia poio logo kapoios xrhsths na to kaneui afto ;)

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Downloads counter?

Δημοσίευση από Rapid-eraser » 19 Μαρ 2006 15:43

sure to katebazei mia fora kai divei stous filous tou to link :)
Pos tous metras aftous ?

H sostoteri diadikasia eivai gia va dosei to link prota va pervaei avagkastika apo tnv php ... bebea afto dimiourgei trelo load av exoume sixvi xrisi tetiou script.
dev exei sxesi me to mege8os tou arxeiou
alla me to poso sixva 8a doulebei eva tetoio script.

So n diki mou protasi 8a ntav
eva php arxeio pou va kavei output to arxeio pou 8eloume va kavoume down load kai oxi va kavoume redirect pavo sto arxeio
Etsi hot link pavo sto arxeio dev 8a mporei va givei
kai dev 8a xavoume kaveva xristi :)

koivos avti gia header location
kavoume eva pass through sto arxeio kai stelvoume kai tov avtistixo header attachment gia va givei download to arxeio kai va miv to diksei stov browser sav xaraktires
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Downloads counter?

Δημοσίευση από panosru » 19 Μαρ 2006 16:00

MySQL

Κώδικας: Επιλογή όλων

CREATE TABLE `downloads` &#40;
`id` int&#40;11&#41; NOT NULL auto_increment,
`title` varchar&#40;255&#41; NOT NULL default '',
`url` varchar&#40;255&#41; NOT NULL default '',
`count` smallint&#40;11&#41; NOT NULL default '0',
PRIMARY KEY &#40;`id`&#41;
&#41; TYPE=MyISAM DEFAULT CHARSET=greek COLLATE=greek_general_ci PACK_KEYS=0 AUTO_INCREMENT=1 ; 
downloads.php

Κώδικας: Επιλογή όλων

<?php
include&#40;"dbconnect.php"&#41;;

$getdownloads = mysql_query&#40;"SELECT * FROM `downloads` ORDER BY `id` DESC"&#41;;

while&#40;$row = mysql_fetch_array&#40;$getdownloads&#41;&#41;
&#123;
	echo "<a href=\"downloadfile.php?id=&#123;$row&#91;'id'&#93;&#125;\" target=\"_blank\">&#123;$row&#91;'title'&#93;&#125;</a>".
		 " - Downloaded &#123;$row&#91;'count'&#93;&#125; Times<br />";
&#125;
?> 
downloadfile.php

Κώδικας: Επιλογή όλων

<?php
include&#40;"dbconnect.php"&#41;;

if &#40;isset&#40;$_GET&#91;'id'&#93;&#41;&#41; 
&#123;
	$go = mysql_query&#40;"SELECT * FROM `downloads` WHERE `id` = &#123;$_GET&#91;'id'&#93;&#125;"&#41;;
	
	if&#40;!&#40;$go&#41;&#41; 
	&#123;
		die&#40;"Error!"&#41;; 
	&#125;
	
	$home = mysql_fetch_array&#40;$go&#41;;
	
	mysql_query&#40;"UPDATE `downloads` SET `count` = `count` + 1 WHERE ID = &#123;$home&#91;'id'&#93;&#125;"&#41;;
	mysql_free_result&#40;$go&#41;;
&#125;
?> 

<script type="text/javascript" language="javascript">
<!--
if &#40;window.open&#40;'<?=$home&#91;'url'&#93;?>'&#41;&#41;
&#123;
	window.name = 'self';
	self.close&#40;&#41;;
&#125;
//-->
</script>
dbconnect.php

Κώδικας: Επιλογή όλων

<?PHP

header&#40;"Content-type&#58; text/html; charset=iso-8859-7"&#41;;
 
$host = "localhost";
$username = "root";
$password = "admin";
$database = "downloads_counter";

$conn = @mysql_connect&#40;$host,$username,$password&#41; or die&#40;"Error connecting to Database!" . mysql_error&#40;&#41;&#41;;
@mysql_select_db&#40;$database, $conn&#41; or die&#40;"Cannot select database!" . mysql_error&#40;&#41;&#41;;


?>
add.php

Κώδικας: Επιλογή όλων

<?php
include&#40;"dbconnect.php"&#41;;

if&#40;!&#40;empty&#40;$_POST&#91;'title'&#93;&#41; && empty&#40;$_POST&#91;'url'&#93;&#41;&#41;&#41; 
&#123;
	$title = addslashes&#40;$title&#41;;
	$url = addslashes&#40;$url&#41;;
	
	$sql = "INSERT INTO `downloads` &#40;`title`, `url`&#41; VALUES &#40;'&#123;$title&#125;','&#123;$url&#125;'&#41;";
	
	mysql_query&#40;$sql&#41; or die&#40;"ERROR<br>" . mysql_error&#40;&#41;&#41;;
	
	echo "Database Updated.";
&#125; 
else 
&#123;	
?>
	<form name="news" method="post" action="<?=$_SERVER&#91;'PHP_SELF'&#93;?>">
	<p>Συμπληρώστε τα παρακάτω πεδία&#58;</p>
	<table width="100%" border="0" cellpadding="0" cellspacing="0">
		<tr>
			<td width="117">Τίτλος*&#58;</td>
			<td width="577"><input type="text" name="title" size="50"></td>
		</tr>
		<tr>
			<td>&nbsp;</td>
			<td>&nbsp;</td>
		</tr>
		<tr>
			<td width="117">URL*&#58;</td>
			<td width="577"><input type="text" name="url" size="50"></td>
		</tr>
	</table>
	<p><input type="submit" name="Submit" value="Submit"></p>
	</form> 	
<?php
&#125;
?> 
rapid an deis kati perito h lathos pes mou na to diorthosoume ;)

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Downloads counter?

Δημοσίευση από Basilakis » 20 Μαρ 2006 19:58

Ti na pw re sy rapid... EKtymw kai akouw afta pou les... Mporei na hksera na to kanw me ton ena tropo alla afta pou les einai sygoura poio swsta ;)

nastis
Δημοσιεύσεις: 124
Εγγραφή: 16 Φεβ 2005 16:28
Επικοινωνία:

Downloads counter?

Δημοσίευση από nastis » 21 Μαρ 2006 01:39

Θα πρότεινα download.php scriptaki σαν το παρακάτω που να του δίνεις το filename sto url που πρέπει να κατεβάσει και να το πετάει σαν forced download.
Το να τα περνάς στην βάση είναι εύκολη υπόθεση.

Κώδικας: Επιλογή όλων

$dir="/downloads/";
if &#40;isset&#40;$_REQUEST&#91;"file"&#93;&#41;&#41; &#123;
     $file=$dir.$_REQUEST&#91;"file"&#93;;
     header&#40;"Content-type&#58; application/force-download"&#41;;
     header&#40;"Content-Transfer-Encoding&#58; Binary"&#41;;
     header&#40;"Content-length&#58; ".filesize&#40;$file&#41;&#41;;
     header&#40;"Content-disposition&#58; attachment;
     filename=\"".basename&#40;$file&#41;."\""&#41;;
     readfile&#40;"$file"&#41;;
     // Εδώ πέρνα το και στην βάση για τον counter σου.
&#125; else &#123;
     echo "No file selected";
&#125; 
Φιλικά
Β.
www.oktonia.com - Παγκόσμιο Χωριό Γνώσης Λυμένα Θέματα Εξετάσεων - Ασκήσεις

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Downloads counter?

Δημοσίευση από Rapid-eraser » 21 Μαρ 2006 06:55

nastis ++

Kai egw afto protivo :)

Alla me tnv proipo8esi oti dev 8a katebazouv arxeia mesa apo afto tov mixavismo me trela kai kordela ... giati 8a avebazei trela load to mixavima.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Downloads counter?

Δημοσίευση από cherouvim » 21 Μαρ 2006 07:34

Kai fysika vale ta arxeia mesa sto /cgi-bin etsi oste to script na apotelei to mono tropo prosvasis sta arceia afta (h kopse to direct access se afta me to .htaccess)

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης