PDA

View Full Version : حرفه ای: کدرهگیری منحصربفرد



h.alizadeh
چهارشنبه 23 تیر 1389, 10:59 صبح
سلام،

من در جدولم میخوام یک فیلدی داشته باشم که مثه یک کدرهگیری باشه.
و منحصربفرد باشه و با افزوده شدن هر رکورد بصورت خودکار خود جدول مقداردهی اش کنه...

مثل AutoIncrement هست ولی اینجا یک کدرهگیری منحصربفرد تولید کنه ...

ایا امکانش هست؟

اگر نه از طریق کدنویسی یا PHPبخوام انجام بدم چه روشی رو توصیه میکنید؟
ضمن اینکه امنیت این کد برام مهمه.


تشکر

LORD AELX
چهارشنبه 23 تیر 1389, 11:03 صبح
سلام،

من در جدولم میخوام یک فیلدی داشته باشم که مثه یک کدرهگیری باشه.
و منحصربفرد باشه و با افزوده شدن هر رکورد بصورت خودکار خود جدول مقداردهی اش کنه...

مثل AutoIncrement هست ولی اینجا یک کدرهگیری منحصربفرد تولید کنه ...

ایا امکانش هست؟

اگر نه از طریق کدنویسی یا PHPبخوام انجام بدم چه روشی رو توصیه میکنید؟
ضمن اینکه امنیت این کد برام مهمه.


تشکر

امکانش که هست. البته این بحث خود PHP نیست بلکه الگوریتمی است که شما باید در نظر بگیرید. مثلا شما میتونید یک عدد تصادفی (Random) تولید کنید و اون رو در دیتابیس ذخیره کنید، و بعدش چک کنید ببینید این مقدار در دیتابیس موجود هست یا نه، در صورتیکه موجود نبود، اونو به یک کاربر جدید اختصاص بدهید.

موفق باشید :چشمک:

Reza1607
چهارشنبه 23 تیر 1389, 11:21 صبح
شما هر موقع که می خواین یک رکورد رو ذخیره کنید اول آخرین آی دی که دست بر قضا AutoIncrement هم هست رو بگیرید و اون رو با استفاده از md5 یا SH1تبدیل به یک کد منحصر به فرد بکنید و اون رو ذخیره کنید

$ M 3 H R D A D $
چهارشنبه 23 تیر 1389, 14:58 عصر
md5 یا SH1
چی هستن یکی یاد بده

bestirani2
چهارشنبه 23 تیر 1389, 15:03 عصر
لینک های زیر رو ببین برای md5 یا SH1
http://php.net/manual/en/function.md5.php
http://php.net/manual/en/function.sha1.php

امیـرحسین
چهارشنبه 23 تیر 1389, 21:03 عصر
تابع UUID (http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid) در MySQL چنین کدی رو ایجاد می کنه ولی نه اتوماتیک. مثلا کوئری رو اینجوری ست می کنید:
INSERT INTO table (guid, name, email) VALUES (UUID(), 'Amir Hossein', 'email@amir.hossein');
از طریق PHP هم کلی کار میشه کرد. ساده ترین راهش استفاده از تابع uniqueid (http://php.net/manual/en/function.uniqid.php) هست که prefix هم میگیره.
$user_guid = uniqueid('user_');
$gallery_guid = uniqueid('gallery_');
و یا خودتون بسازید. با توابع زمان و md5 و غیره.

SAMAN_PHP
جمعه 25 تیر 1389, 01:11 صبح
از تابع خود php استفاده کن

$pursuit= Rand (100000,999999);
echo $pursuit;
میتونی عدد بالا رو کم و زیاد کنی

LORD AELX
جمعه 25 تیر 1389, 01:46 صبح
از تابع خود php استفاده کن

$pursuit= Rand (100000,999999);
echo $pursuit;میتونی عدد بالا رو کم و زیاد کنی

یه نکته غیر مرتبط با بحث : سعی کنید از تابع ()mt_rand بجای ()rand استفاده کنید. دلیلیش رو هم تشریف ببرید php.net ، اونجا بخونید. :چشمک:

Sajjad.Aghapour
جمعه 25 تیر 1389, 02:14 صبح
از تابع خود php استفاده کن

$pursuit= Rand (100000,999999);
echo $pursuit;
میتونی عدد بالا رو کم و زیاد کنی

کار جالبی نیست.

شما این دو رو دارید یکی میدونید:
1. یک عدد منحصر به فرد
2. یک عدد Random