Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam!
Sprawa wyglada tak:
Mam na serwerku baze w postgresql'u, apache2 i wszelkie wtyczki php obslugujace mi baze od strony www.
Na stronie, powiedzmy 'uzytkownik wprowadzajacy' wprowadza do bazy przez formularz jakis tam tekst oraz podlacza do niego plik. Do bazy zapisywane sa jedynie te w/w teksty i odnosniki do miejsca gdzie pliki sie znajduja. Pliki sa zapisywane na serwerku w jakims katalogu. 'Uzytkownik przegladajacy' moze sobie przegladac wprowadzone teksy oraz pobierac pliki ze strony. To wszystko sobie dziala. I teraz pytanie:
Jak zrobic aby 'uzytkownik przegladajacy' po zalogowaniu sie na loginie A i hasle X mogl robic to co dotychczas czyli przegladac i sciagac te pliki, a np. inny 'uzytkownik przegladajacy' podajac login B i haslo Y mogl jedynie przegladac/czytac wprowadzony tekst ale nie mogl sciagac plikow (ale zeby widzial jaki plik zostal podlaczony np. zeby widzial nazwe pliku jedynie jako tekst a nie link do pliku). Jedyny pomysl jaki wpadl mi do glowy (jeszcze go niezrealizowalem) to ze moge htaccess'em zablokowac glowny katalog z plikami podlaczanymi i uzytkownik bedzie proszony o podanie prawidlowego loginu i hasla aby pobrac plik. Czy to jest wyjscie? Czy mozna jeszcze jakos inaczej sprawe zalatwic?
Ewentualnie jeszcze podobna sytuacjia (juz bez logowania do strony) aby uzytkownicy z lokalnej sieci w ktorej strona dziala mogli sciagac, jakis przegladacz spoza sieci juz nie mogl sciagac plikow.
Mam nadzieje, ze nie namieszalem za bardzo. Z gory dziekuje za pomysly...
Offline
moglbys mi to przyblizyc bo dopiero zaczynam zabawe z postresem (w sumie z bazami). a mianowicie w ktory miejscu/momencie mam wstawic tez znacznik d?
Offline
Podczas generowania strony do wyświetlenia sprawdzasz jaki user jest zalogowany i w zależności od tego 'jaki' dodajesz link albo sam tekst. Nie bardzo wiem co więcej można tu tłumaczyć :(
Offline
w php:
if (is_allowed($user, download)) { echo '<a href="sciezka">plik</a>'; } else { echo "plik"; }
Oczywiście musisz sobie napisać funkcję is_allowed która — w tym przypadku — będzie sprawdzała czy użytkownik podany jako pierwszy argument ma prawo do wykonywania akcji określonej jako drugi argument. W najgorszym wypadku możesz w niej na sztywno wpisać listę uprawnionych użytkowników i sprawdzać czy zawiera ona nazwę podanego użytkownika (in_array). Rozwiązanie mało elastyczne, ale ostatecznie wybór zależy od Twojej indywidualnej sytuacji — być może okaże się wystarczające, ponieważ środowisko jest dość stałe.
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00011 | SET NAMES latin2 |
0.00121 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.216.47.169' WHERE u.id=1 |
0.00106 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.216.47.169', 1727465899) |
0.00062 | SELECT * FROM punbb_online WHERE logged<1727465599 |
0.00086 | SELECT topic_id FROM punbb_posts WHERE id=141002 |
0.00139 | SELECT id FROM punbb_posts WHERE topic_id=16169 ORDER BY posted |
0.00085 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=16169 AND t.moved_to IS NULL |
0.00017 | SELECT search_for, replace_with FROM punbb_censoring |
0.00116 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=16169 ORDER BY p.id LIMIT 0,25 |
0.00110 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=16169 |
Total query time: 0.00868 s |