Помогни ни да направим Uroci.net по - богат! Добави урок

Топ класация на сайтове с Mysql

PHP » PHP
picha925   трудност:    видян: 8859

Започваме с 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>


демо: тук



Коментари (7)

picha925 на 02.12 2008 в 19:57ч.
о и забравих сложете този таг в началото на всички страници и всичко ще е на български език
robotat на 03.01 2009 в 12:04ч.
виж ми на мен резултата - www.top-site.hit.bg
picha925 на 05.01 2009 в 18:47ч.
hit.bg не подържа php
danch000 на 13.02 2010 в 12:36ч.
Could not connect to MySQL: Access denied for user 'test'@'94.155.46.7' (using password: YES) това какво означва??
danch000 на 13.02 2010 в 12:39ч.
Could not connect to MySQL: Access denied for user 'test'@'94.155.46.7' (using password: YES) Като добявя саит ми излиза ето това
malamov на 09.02 2013 в 16:57ч.
Ето и ДЕМО
http://upload.is-best.net/rank/add-site.php
до 1 2 дена мога и да сложа някой темплейт
nikolaiwee на 30.01 2014 в 02:37ч.
неможах да разбера "Сега правите една папка на име Mysql_connect.php там сложете следния код: "как да направя папка и да сложа кода вътре ?

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com