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

HunteR

Super Moderator
Здравейте,

един потребител(@ColdFire) ми подсказа как може да рационализирам леко кода :)
Кода за, който става на въпрос се намира на http://web-tourist.net/login/login/view.php?st=2595

Така ето ги и самите промени.

Като започнем от структурата на таблицата:
Новата е тази:
Код:
CREATE TABLE codes (
code varchar(250) NOT NULL default '',
PRIMARY KEY (code)
);


Ето го и новия скрипт за генериране на уникален код.
Код:
<?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) {
$zapis = mysql_query("INSERT INTO `codes` (`code`) VALUES ('$code')"); // правим опит за записване на кода в базата данни
if ($zapis) { // ако кода е успешно записан продължаваме
$continue = true;
} else { // ако кода не е записан успешно
$code = substr(str_shuffle(ALL_SIMBOLS),0,COUNT_SIMBOLS); // тук генерираме нов код, ако предишния генериран е съществувал в базата
$continue = false;
}
}

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

Back
Горе