phpbb модове

Генериране на уникален код

Автор: HunteR

Сега ще ви покажа един метод как може да генерирате уникален код.

Така ще започнем от структурата на базата данни.
Тя е една таблица с едно поле, в което ще се записват създадените до момента кодове.

Така ето я:

CREATE TABLE `codes` (
`code` varchar(250) NOT NULL default ''
);

Ето и самия скрипт за генериране на уникален код.

<?php
// CONFIG //

// Връзка с базата данни
$db_conn = mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("database", $db_conn) or die(mysql_error());

define(COUNT_SIMBOLS,8); // тук дефинираме колко символа да бъде кода
define(ALL_SIMBOLS,'0123456789qwertyuioplkjhgfdsazxcvbnm'); // тук слагаме символите, от които да се генерира кода

// CONFIG //

$code = substr(str_shuffle(ALL_SIMBOLS),0,COUNT_SIMBOLS);
$continue = false;
while (!$continue) {
$query = mysql_query("SELECT `code` FROM `codes` WHERE `code` = '$code'"); // проверяваме за кода в базата данни за да сме сигурни, че кода ще бъде напълно уникален :)
if (mysql_num_rows($query) == 0) { // проверяваме дали вече има такъв код, ако няма продължаваме
mysql_query("INSERT INTO `codes` (`code`) VALUES ('$code')"); // добавяме кода в базата данни за да сме сигурни, че няма да бъде повторен
$continue = true;
} else {
$code = substr(str_shuffle(ALL_SIMBOLS),0,COUNT_SIMBOLS); // тук генерираме нов код, ако предишния генериран е съществувал в базата
$continue = false;
}
}

// връшаме променливата "$code" с уникалния код. Вече може да я правите каквото поискате ;)
echo $code;
?>

Урокът е авторски и забранявам преписването му в други сайтове без мое съгласие!

Вашият коментар