Започваме с Index.php в него сложете следния код:
<?php
// Свързване с БД-то
require_once('mysql_connect.php');
// Взимане на сайтовете от БД-то - сега ще показва 50 !
$query = "SELECT id, name, description, votes, hits FROM websites ORDER BY votes DESC LIMIT 50";
$result = mysql_query($query) OR die(mysql_error());
echo '<table border="0" cellpadding="7" cellspacing="7">
<tr>
<td><strong>Ранк</strong></td>
<td><strong>Име/Описание</td>
<td><strong>Гласове</td>
<td><strong>Посещения</td>
</tr>
';
// Брояч на ранка
$rank = 1;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo '<tr>
<td>'.$rank.'</td>
<td><a href="out.php?id='.$row['id'].'" target="_blank">'.$row['name'].'</a><br /><small>'.
$row['description'].'</small></td>
<td>'.$row['votes'].'</td>
<td>'.$row['hits'].'</td>
</tr>
';
$rank++;
}
?>
Следва add-site.php там слагате този код:
<?php
// Ако Формата не е била попълнена
if (!isset($_POST['submitted'])) {
?>
<style type="text/css">
input {
color: #000;
text-decoration: none;
background: #F4F3F3;
border: 1px solid #ADAEAF;
font: normal 9pt verdana, arial;
}
input:hover {
background: #F4F3F3;
border: 1px solid #000;
}
.button {
background-color: black;
color: red;
font-size: 12px;
font-family: arial;
font-weight: bold;
}
</style>
<body>
<h3>Добавяне на сайт</h3>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<p><b>Име на сайта:</b> <input type="text"
name="name" size="25" maxlength="40" value="<?php if
(isset($_POST['name'])) echo $_POST['name']; ?>" /></p>
<p><b>Линк до сайта :</b> <input type="text"
name="url" size="25" maxlength="60" value="<?php if
(isset($_POST['url'])) echo $_POST['url']; ?>" /></p>
<p><b>Описание на сайта :</b><br />
<textarea name="description" rows="5" cols="40"><?php
if(isset($_POST['description'])) echo $_POST['description'];
?></textarea></p>
<p><div align="center"><input type="submit" name="submit" value="добави" /></div></p>
<input type="hidden" name="submitted" value="TRUE" />
</form>
<?php
}
else {
// ако Формата е попълнена продължаваме
// Свързване към БД-то
require_once('mysql_connect.php');
if (empty($_POST['name'])) {
echo '<font color="red">Моля въведете името на сайта.</font><br />';
$n = FALSE;
} else {
$name = $_POST['name'];
$query = "SELECT id, name FROM websites WHERE name = '$name'";
$result = mysql_query($query) OR die($mysql_error());
$num = mysql_num_rows($result);
if ($num > 0) {
$n = FALSE;
echo '<font color="red">Вече има сайт с такова име!</font><br />';
} else {
$n = mysql_real_escape_string($_POST['name']);
}
}
if (empty($_POST['url'])) {
echo '<font color="red">Моля въведете линк към сайта си.</font><br />';
$u = FALSE;
} else {
$u = mysql_real_escape_string($_POST['url']);
}
if (empty($_POST['description'])) {
echo '<font color="red">Моля въведете описание на сайта си.</font><br />';
$d = FALSE;
} else {
$d = mysql_real_escape_string($_POST['description']);
}
if ($n && $u && $d) {
$query = "INSERT INTO websites (name, url, description, password) VALUES ('$n', '$u', '$d', SHA('$p'))";
$result = mysql_query($query) OR die(mysql_error());
if ($result) {
echo '<h3>Благодарим ви!</h3>
<p>Вашият сайт е добавен успешно, копирайте кода и го поставете в сайта си!</p>';
$query = "SELECT id, name FROM websites WHERE name = '$n'";
$result = mysql_query($query) OR die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
?>
<div align="center">
<textarea name="code" cols="20" rows="2"><a href="Линка до
класацията/vote.php?id=<?php echo $row['id']; ?>">Гласувайте
за сайта ми!</a></textarea>
</div>
<?php
} else {
echo 'Възникна грешка с добавянето на сайта ви.';
}
} else {
echo '<font color="red"><a href="add-site.php">върни се обратно</a>';
}
}
?>
Сега правите една папка на име Mysql_connect.php там сложете следния код:
<?php
DEFINE ('DB_USER', 'root'); // потребител
DEFINE ('DB_PASSWORD', ''); // Парола
DEFINE ('DB_HOST', 'localhost'); // Хост
DEFINE ('DB_NAME', 'top'); // база данни
$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error());
@mysql_select_db (DB_NAME) OR die('Could not select the database: ' . mysql_error() );
?>
Сега започваме с out.php там слагаме този код:
<?php
// проверява дали ID-то е взето
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
// Свързване с БД-то
require_once('mysql_connect.php');
$id = mysql_real_escape_string($_GET['id']);
// Добавя +1 към брояча на гласове
$query = "UPDATE websites SET hits = hits + 1 WHERE id = $id";
$result = mysql_query($query) OR die(mysql_error());
unset($query);
unset($result);
$query = "SELECT id, url FROM websites WHERE id = $id";
$result = mysql_query($query) OR die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$num = mysql_num_rows($result);
$url = $row['url'];
if ($num > 0) {
header ("Refresh: 0; url=$url");
} else {
echo '<font color="red">Няма такъв сайт.</font>';
}
} else {
echo '<font color="red">Трябва да избереш сайт да посетиш!</font>';
}
?>
Следва vote.php там слагаме това:
<?php
if (!isset($_POST['submitted'])) {
// проверява дали ID-то е взето
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
// Свързване с БД-то
require_once('mysql_connect.php');
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id, name FROM websites WHERE id = $id";
$result = mysql_query($query) OR die (mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
?>
<strong>Сигурен ли си , че искаш да гласуваш за "<?php echo $row['name']; ?>" ?</strong><br />
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="submit" name="vote" value="да" />
<input type="hidden" name="submitted" value="TRUE" />
<input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
</form>
<?php
} else {
echo '<font color="red">Трябва да избереш сайт за да гласуваш!</font>';
}
} else {
// Свързване с БД-то
require_once('mysql_connect.php');
$id = mysql_real_escape_string($_POST['id']);
// Избира сайт на който да дадем глас
$query = "SELECT id, votes FROM websites WHERE id = $id";
$result = mysql_query($query) OR die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$votes = $row['votes'];
$url = $row['url'];
$id = $row['id'];
$cookie_name = 'vote_'.$id;
if (!isset($_COOKIE['vote_'.$id])) {
// Добавя +1 към брояча на гласове
$votes++;
// Ъпдейтва брояча на гласове за сайта
$query = "UPDATE websites SET votes = $votes WHERE id = $id";
$result = mysql_query($query) OR die(mysql_error());
setcookie ($cookie_name, 1, time()+86400, '/', '', 0);
echo 'Благодаря! Вашият глас беше отчетен! <a href="index.php">Върни се в началото.</a>';
} else {
echo 'Вече сте гласували в последните 24 часа! Вашият вот не е отчетен.';
}
}
?>
И сега само остана SQL заявката:
CREATE TABLE websites (
id INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
name VARCHAR(40) NOT NULL,
url VARCHAR(60) NOT NULL,
description VARCHAR(255) NOT NULL,
votes INT(11) UNSIGNED NOT NULL DEFAULT 0,
hits INT(11) UNSIGNED NOT NULL DEFAULT 0,
password CHAR(40) NOT NULL,
PRIMARY KEY(id)
);
Файлове за редактиране - add-site.php , ред 98-ми : <textarea name="code" cols="20" rows="2"><a href="Линка до класацията/vote.php?id=<?php echo $row['id']; ?>">Гласувайте за сайта ми!</a></textarea>