PDA

View Full Version : گفتگو: مدیریت دسترسی ها



Bahram0110
شنبه 23 شهریور 1387, 22:39 عصر
سلام
می خوام توی یک سایت از یک روش برای مدیریت دسترسی کاربران به بخش های مختلف استفاده کنم. مثل همین انجمن که مدیر، مدیر کل، کاربر و ... با سطح دسترسی های مختلف داره

یه روش تقریبا 2 سال پیش از یه جا خوندم تقریبا ایده از همون دستم اومده.
ویندوز برای مخفی کردن درایو ها (از طریق رجیستری) از یک عدد (برای هر تعداد درایو) استفاده می کنه.
مثلا شما بخواهید درایو C و D رو مخفی کنید (دقیق یادم نیست تخمینی می گم) برای درایو C عدد 8 و برای D عدد 16 رو در نظر می گیره و سپس اینها رو با هم جمع می کنه..

VB و phpbb رو هم که دیدم (فکر کنم) از همچین روشی استفاده می کنند.
حالا من می خوام از همین روش استفاده کنم. مشکلی توی جمع کردن اعداد ندارم!!
مشکلم توی بازگرداندن اون عدد به اعداد اولیه هستش

ممنون می شم راهنماییم کنید

tritilium
یک شنبه 24 شهریور 1387, 00:24 صبح
باید تقسیمات متوالی کنی بر بزرگترین عامل های مربع ( اصطلاح ریاضیشو نمی دونم ) تا باقی مانده صفر بشه
با مثال بهتر می تونم بگم
مثلا اگه عددت ۶ اه
6=4+2
که هست در اصل 2^1+ 2^ 2
یا 7=4+2+1 --->> 0 ^ 2 +1 ^ 2 + 2^ 2
نمی دونم تونستم مطلبو درست بگم یا نه :D

Bahram0110
یک شنبه 24 شهریور 1387, 13:28 عصر
خب فرض کنید من یه کاربر دارم با این دسترسی ها :

2 و 8و 32و 128
که جمعش می شه : 170
حالا اعداد بالا رو چجوری از این عدد 170 در بیارم :متفکر:

musiox
یک شنبه 24 شهریور 1387, 19:29 عصر
170 رو اگه به صورت دودویی در بیاری این میشه 10101010 و اونجاهایی که 1 شده همون عددایی که جمعشون کردی .

Bahram0110
یک شنبه 24 شهریور 1387, 21:30 عصر
170 رو اگه به صورت دودویی در بیاری این میشه 10101010 و اونجاهایی که 1 شده همون عددایی که جمعشون کردی .
سلام
منظورتو درست متوجه نشدم :گیج:
اونجاهایی که چی 1 شده؟
می شه مثال بزنی

tritilium
یک شنبه 24 شهریور 1387, 21:39 عصر
اين كدسي شارپش ( البته من لوگاريتم نگرفتم و چون 170 رو مي خواستم تست كنم 7 رو گذاشتم


int num, i;
num = int.Parse(Console.ReadLine());
i = 7;
while (num > 0 && i >= 0)
{
if (num / ((int)Math.Pow(2,i))>=1)
{
Console.WriteLine(Math.Pow(2, i));
}
num = num % (int)Math.Pow(2, i);
i--;


}

narsic
یک شنبه 24 شهریور 1387, 22:42 عصر
با سلام
میتونید همه اون اطلاعات رو در یک آرایه به ذخیره کنید و بعد برای تائید دسترسی کاربر اطلاعات رو با کلید مشخص دریافت کنید و نتیجه رو بدست بیاورید .



Arraye ={
modiriat=>0
forum=>1
contact=>1
}



موفق باشید

musiox
یک شنبه 24 شهریور 1387, 23:29 عصر
<?php
function getPerms($dec){
$bin=decbin($dec);
$nums=array();
$mul=1;
for($i=strlen($bin)-1;$i>-1;$i--){
if($bin[$i]==1){
$nums[]=$mul;
}
$mul*=2;
}
return $nums;
}

print_r(getPerms(128));
?>