Yoda Kerr
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Alexander Ipp Цитата: Да вроде как раз работает мой вариант... А когда меняю на Код: if (-e $filetoopen && $nametocheck ne "Guest") { | , тогда Цитата: Я резделил всех участников форума на три категории: - мемберы (пользователи, модеры, админы); - Guest; - все остальные. Это то же что и Guest, но с именем, отсутствующим в папке members. Последних IMHO можно вообще не рассматривать, поскольку перейти в форум может только мембер или гость c именем Guest. Это так? По крайней мере я не смог придумать способ войти в конфу под именем, отсутствующим в папке members. Если так, то условие Код:всегда будет выполняться в ikonboard.cgi и других файлах (вожможно кроме loginout.cgi). Ведь на борду я могу войти либо как мембер, либо под именем Guest. => Условие Код: никогда не присваивает переменной #userregistered значение 'no'. И когда в том же profile.cgi идет проверка на запрещение входа гостям в Профиль: Код: if ($userregistered eq "no") { | скрипт пропускает в Профиль абсолютно всех. А IMHO по задумке разработчиков - не должен. Вот я и создал дополнительное условие Код: if ((!$inmembername) or ($inmembername eq "$ibtxt{'0043'}")) { $userregistered = "no"; } | , которое не мешает обработать файл Guest.cgi в ikon.lib: Код: if (-e $filetoopen) { open(FILE,"$filetoopen"); $filedata = <FILE>; close(FILE); chomp($filedata); ($membername, $password, $membertitle, $membercode, $numberofposts, $emailaddress, $showemail, $ipaddress, $homepage, $aolname, $icqnumber ,$location ,$interests, $joineddate, $lastpostdate, $signature, $timedifference, $privateforums, $useravatar, $gender, $misc1, $misc2, $misc3, $personalavatar) = split(/\|/,$filedata); chomp $privateforums; if($privateforums) { @private = split(/&/,$privateforums); foreach $accessallowed (@private) { chomp $accessallowed; ($access, $value) = split(/=/,$accessallowed); $allowedentry{$access} = $value; } } } else { $userregistered = "no"; } } | , но в то же сремя отделяет зарегившихся мемберов от Guest'а, не позволяя тем самым заходить гостям куда не следует. Тогда вот как будет срабатывать скрипт: - если мембер -> $userregistered = "", происходит чтение данных мембера из файла members/*.cgi; - если Guest -> $userregistered = "no", происходит чтение данных мембера из файла members/Guest.cgi; - во всех остальных случаях -> $userregistered = "no", чтение данных из файла members/*.cgi не происходит. |