forum.globcom.net Форуми forum.globcom.net
ФОРУМ
 
 AlbumAlbum Въпроси/ОтговориВъпроси/Отговори   ТърсенеТърсене   ПотребителиПотребители   Потребителски групиПотребителски групи  AlbumAlbum   Регистрирайте сеРегистрирайте се 
 ПрофилПрофил   Влезте, за да видите съобщенията сиВлезте, за да видите съобщенията си   ВходВход 

Ползвате ли битови операции (&, |, ^, ~) в програмите си

 
Създайте нова тема   Напишете отговор    forum.globcom.net Форуми -> Програмиране
Предишната тема :: Следващата тема  

Ползвате ли битови операции (&, |, ^, ~) в програмите си?
Да почти винаги!
15%
 15%  [ 2 ]
Рядко и то за други цели
15%
 15%  [ 2 ]
Не мисля, че е нужно в случая
0%
 0%  [ 0 ]
Нищо не схванах
15%
 15%  [ 2 ]
Предпочитам да пия бира
53%
 53%  [ 7 ]
Общо гласове : 13

Автор Съобщение
escaper
Дали да стана антиквар ?
Дали да стана антиквар ?


Регистриран на: 03 Юни 2004
Мнения: 41
Общо думи: 0
Местожителство: В контейнера

МнениеПуснато на: Нед Ное 07, 2004 9:42 pm    Заглавие: Ползвате ли битови операции (&, |, ^, ~) в програмите си Отговорете с цитат

Питам защото имахме едно спорче с един приятел, дали
е по добре при съхраняването на правата за достъп
на една програма да се ползват променливи флагове или
една променлива за флагов регистър.

Дали да бъде:

unsigned char can_log = 0;
unsigned char can_read = 0;
unsigned char can_write = 0;

или

unsigned char flags = 0; (0b00000000) всеки бит да редставлява флаг

Аз предпочитам второто!
_________________
/*
* Psychedelic Group
* Ние сме на всеки switch и хъб от тук
* до края на света...
*/
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
[ IP : Logged ]
EMERALD
Не е лесно !
Не е лесно !


Регистриран на: 25 Сеп 2003
Мнения: 1312
Общо думи: 8,181
Местожителство: Габрово - София

МнениеПуснато на: Нед Ное 07, 2004 10:04 pm    Заглавие: Отговорете с цитат

Вторият определено и на мен ми допада, макар досега да съм го използвала Smile
_________________

Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение AIM Адрес
[ IP : Logged ]
escaper
Дали да стана антиквар ?
Дали да стана антиквар ?


Регистриран на: 03 Юни 2004
Мнения: 41
Общо думи: 0
Местожителство: В контейнера

МнениеПуснато на: Нед Ное 07, 2004 10:06 pm    Заглавие: Отговорете с цитат

Личи си че си завършила МГ
_________________
/*
* Psychedelic Group
* Ние сме на всеки switch и хъб от тук
* до края на света...
*/
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
[ IP : Logged ]
anatoli
Не е лесно !
Не е лесно !


Регистриран на: 19 Сеп 2003
Мнения: 943
Общо думи: 16,305
Местожителство: Here .. or there .. somewhere

МнениеПуснато на: Нед Ное 07, 2004 10:53 pm    Заглавие: Отговорете с цитат

А замисляте ли се, ако това се пази в mysql колко пада скороста при търсене на права.
Скоро попаднах на такъв проблем, оказа се, че mysql не може да прави побитови операции в SELECT-а си. И при такова нещо, трябва да се select-не цялата users таблица примерно, и да се прави проверка на всеки един от тях, докато ако бяха в различни променливи скороста щеше да бъде по-голяма защото показването на потребители с право X щеше да стане много бързо само при добавянето на едно WHERE X=1 в select-a (особенно ако X е ключ в таблицата).
_________________
Който не плаща в кръчма, плаща в аптека !
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
[ IP : Logged ]
EMERALD
Не е лесно !
Не е лесно !


Регистриран на: 25 Сеп 2003
Мнения: 1312
Общо думи: 8,181
Местожителство: Габрово - София

МнениеПуснато на: Нед Ное 07, 2004 11:00 pm    Заглавие: Отговорете с цитат

Аз не Confused Хувава забележка, ще я имам предвид. Мерси, коте, навярно ми спестяваш поне едно главоболие Smile
_________________

Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение AIM Адрес
[ IP : Logged ]
escaper
Дали да стана антиквар ?
Дали да стана антиквар ?


Регистриран на: 03 Юни 2004
Мнения: 41
Общо думи: 0
Местожителство: В контейнера

МнениеПуснато на: Нед Ное 07, 2004 11:25 pm    Заглавие: Отговорете с цитат

Предполагам че имаш в предвид за PHP и mySQL но нямах в предвид да се ползват в SQL заявката, а в кода на програмата, но все пак
Например следната таблица:

=============================
| id(PRI KEY) | u_name | u_table | u_perms|

Където u_perms са правата на достъп на потребителя, и u_perms се мени от 0 до 255 т.е. от 00000000 двоично до 11111111 двоично.

След това например вземаме правата чрез заявка от рода на:

Код:
function get_perms_dummy($user)
{
 $db_query = sprintf("SELECT u_perms FROM name_of_table WHERE  u_name=\"%s\"", $user);
 $result = mysql_query($query, $db_link);
if(!$result) {
   printf(mysql_error($db_link);
   return -1;
}
 $db_data = mysql_fetch_array($result);
 return $db_data['u_perms'];
}

define('can_post', 1);
define('can_fuck', 2);
define('can_drink', 4);
define('can_smoke', 8);
define('can_be_fan', 16);
define('B1', 32);
define('B2', 64);
.......... и т.н. степени на 2-ката общо осем

function isset_flag($flagreg, $flag)
{
         return ($flagreg == ( $flagreg | $flag )) ? 0 : 1;
}

И нейде в PHP кода на happy_fuck.php например:
<?php
            $u_perms = get_perms_dummy($_POST['user']);
            if(!isset_flag($u_perms. can_fuck)){
                     print("Ще я караме на ръчна!");
                              или
                     Header("Location: somewhere.php");
            } else {
                     do_allowed_fuck_with_penka_kvartalnata($penis, $lenght);
            }

 ?>

,а при положение, че не е с битови операции

==============================================
| id(PRI KEY) | u_name | u_table | can_fuck | can_smoke | can_1 | .....|

Още 7 излишни колони. И разбира се по-бавна заявка. Всяка колона
за една нула или еденица! И още куп неща които ме марзи да обясня.
_________________
/*
* Psychedelic Group
* Ние сме на всеки switch и хъб от тук
* до края на света...
*/
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
[ IP : Logged ]
anatoli
Не е лесно !
Не е лесно !


Регистриран на: 19 Сеп 2003
Мнения: 943
Общо думи: 16,305
Местожителство: Here .. or there .. somewhere

МнениеПуснато на: Пон Ное 08, 2004 10:34 am    Заглавие: Отговорете с цитат

не споря, и не точно PHP, просто споменавам реална ситуация, и колко се забавят нещата. Ако не се пазят нещата в БД като sql-а, то сичко е супер.
_________________
Който не плаща в кръчма, плаща в аптека !
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
[ IP : Logged ]
ivelin80
Вчера си купих компютър
Вчера си купих компютър


Регистриран на: 15 Яну 2005
Мнения: 4
Общо думи: 0

МнениеПуснато на: Съб Яну 15, 2005 4:53 pm    Заглавие: Отговорете с цитат

не знам защо трябва да си усложняваш живота излишно като може да си въведеш едно стрингово поле в базата (втория начин). Това, че са го писали по книгите не значи че е най-френдли метода :)
а не ми стана ясно само кво общо имаха побитовите операции с цялата работа (освен заглавието) ... :)
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
[ IP : Logged ]
ivelin80
Вчера си купих компютър
Вчера си купих компютър


Регистриран на: 15 Яну 2005
Мнения: 4
Общо думи: 0

МнениеПуснато на: Съб Яну 15, 2005 5:00 pm    Заглавие: Отговорете с цитат

i malko primer ... :

[code]

// 1 = true
// 0 = false
// i imash pole "colPermissions char(3) DEFAULT '000' " v bazata

// uveriavash se che nqma da ima prazni promenlivi:
($post["canread"] != "")?$canRead=$post["canread"]:$canRead=0;
($post["canWrite"] != "")?$canWrite=$post["canWrite"]:$canWrite=0;
($post["canExec"] != "")?$canExec=$post["canExec"]:$canExec=0;

$sql = "SELECT column1 FROM dbOwner.tableName WHERE colPermissions='".$canRead.$canWrite.$canExec."' "

// i execute na zaiavkata


[/code]
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
[ IP : Logged ]
ivelin80
Вчера си купих компютър
Вчера си купих компютър


Регистриран на: 15 Яну 2005
Мнения: 4
Общо думи: 0

МнениеПуснато на: Съб Яну 15, 2005 5:01 pm    Заглавие: Отговорете с цитат

samo sori che sum sbarkal "$_POST" s "$post" :)
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
[ IP : Logged ]
A3
нормален


Регистриран на: 11 Окт 2003
Мнения: 394
Общо думи: 111
Местожителство: Габрово 5300, ул. Янтра 6

МнениеПуснато на: Пон Мар 07, 2005 10:40 am    Заглавие: Отговорете с цитат

escaper, колко системно си писал?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
[ IP : Logged ]
Покажи мнения от преди:   
Създайте нова тема   Напишете отговор    forum.globcom.net Форуми -> Програмиране Часовете са според зоната GMT + 2 Часа
Страница 1 от 1

 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети


Powered by phpBB © 2001, 2005 phpBB Group
Translation by: Boby Dimitrov