[Dev] брояч на посетен линк

NoExpire

New Member
Joined
Nov 10, 2008
Messages
46
Reaction score
45
има много такива това което ще покажа е авторско и е малко по сложно от обикновеното ечо защото съм го направил с MySQL за сигурност, също така на принципа на този код може да го ползвате като брояч на колко пъти е свален някой файл

това таблицата за MySQL
Code:
CREATE TABLE `links` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `url` varchar(255) NOT NULL,
  `counter` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
INSERT INTO `links` (`id`, `name`, `url`, `counter`) VALUES
(1, 'darksteam', 'http://darksteam.net', '0'),
(2, 'impulse', 'http://impulse.bg', '0'),
(3, 'Svalki', 'http://aha.bg', '0');

файлът за връзка с база данни

config.php

PHP:
<?php
error_reporting(E_ALL);//показва всички грешки
$host="localhost";//хост на базата данни
$dbusername="root";//потребителско име за базата данни
$dbpassword="****";//парола за базата данни
$db="test";//име на базата данни
$db_conn = mysql_connect("$host","$dbusername","$dbpassword") or die();
mysql_select_db("$db",$db_conn) or die();
mysql_query("SET CHARACTER SET cp1251");//за да се правят записи на кирилица
?>

файлът който показва линковете аз ще го кръстя
links.php

PHP:
<?php
include "config.php";//връзка с базата данни
$query=mysql_query("SELECT `id`,`name`,`counter` FROM `links`");
while($result=mysql_fetch_array($query)){//взимане на всички линкове записани в базата данни
echo "<a href=\"link.php?id=".$result['id']."\" target=\"_blank\">".$result['name']."</a>
Counter:".$result['counter']."<br>";//показване на всички линкове записани в базата данни с линк към link.php
}
?>

и броячът

broiach.php

PHP:
<?php
include "config.php";//връзка с базата данни
if(isset($_GET['id'])){//взимане на id-то на избрания линк
$id=$_GET['id'];
}else{
$id="";
}
if(preg_match("/^[0-9]+$/", $id)){//проверка дали id-то е цяло число
$query=mysql_query("SELECT url FROM `links` WHERE `id`='$id'");
$result=mysql_fetch_array($query);//извеждане на резултата
header("Location: ".$result['url']);//препращане към съответния линк
$count=mysql_query("UPDATE `links` SET `counter`=`counter`+1 WHERE `id`='$id'");//добавяне на 1 посещение към съответния линк
}else{
die ("Error");//ако id-то не е число
}
?>

това е ;) надявам се да съм помогнал ;)
 
Last edited:

Roshan

New Member
Joined
Nov 28, 2008
Messages
7
Reaction score
1
Как ще го update като преди това те препраща? Замислял ли си се?
НП :p
 

NoExpire

New Member
Joined
Nov 10, 2008
Messages
46
Reaction score
45
$result=mysql_fetch_array($query);//извеждане на резултата
header("Location: ".$result['url']);//препращане към съответния линк

първо показва резултата после те препраща ... :) следиш ли ко съм писал