laikkk
12.01.2011, 16:40:12
Witam,
Jestem w trakcie pisania mini portalu, i zastanawia mnie jakim sposobem "zbudować" fundament stronki, chodzi mi dokładnie o szybkość skryptu oraz bezpieczeństwo systemu kont użytkowników. Mam dwie propozycje:
* W czasie rejestracji skrypt tworzy nowy folder o nazwie skladajacej sie z dowolnego ciagu znakow, i w tym folderze trzyma np. obrazy użytkownika. To wszystko jest połączone z baza danych.
* Druga opcja to wrzucanie wszystkich grafik do jednego folderu które są połączone z baza danych
Mozę znacie jakiś inny pomysł na szybki i bezpieczny system kont uzytkowniow?
Pozdrawiam
webdice
12.01.2011, 16:49:32
Myślę że najlepszym sposobem będzie ustawianie dla nazwy pliku przykładowo hash sh1. W bazie będziesz miał dodatkową tabele identyfikującą użytkownika z plikiem.
Wszystko zależy od konkretnej sytuacji. Napisz troszkę więcej (orientacyjna ilość plików użytkownika, przybliżona ilość użytkowników).
Cytat(emajl22 @ 12.01.2011, 16:41:56 )

że jak?

Nie masz nic ciekawego do napisania to nie pisz. Po raz kolejny widzę jak nabijasz posty.
laikkk
12.01.2011, 16:52:12
chodzi mi o trzymanie np zdjęć danego użytkownika. Czy każdy ma mieć swój osobny folder czy wszystkie zdjęcia pakować do 1 ogólnego folderu i jak to ma się do szybkości skryptu i bezpieczeństwa?
Nie potrafię jeszcze określić ilość ale przypuścimy ok 30 tys kont i każdy z nich miałby po 2-3 zdjęcia
Crozin
12.01.2011, 17:12:27
Wszystko do jednego wora, nie ma sensu bawić się w tysiące katalogów. Możesz co najwyżej ten katalog podzielić na mniejsze, by jego przeglądanie (np. przez FTP) było jakoś znośne (zamiast 90 000 obrazów będziesz miał po kilkanaście, kilkadziesiąt na katalog).
Innymi słowy:
Kod
Moje super zdjęcie.jpeg
# Nazwę zamieniamy na coś na czym się wygodniej pracuje, np. unikalny, 40 znakowy ciąg.
76c5f0f9ed89ba2f67745ed45f8e45c93ea1e22a.jpeg
# Taki plik wrzucamy do katalogu:
/images/7/6/76c5f0f9ed89ba2f67745ed45f8e45c93ea1e22a.jpeg -- zauważ, że dwa pierwsze katalogi odpowiadają dwóm pierwszym znakom
# W bazie danych wystarczy przechowywać nazwę pliku (76c5f0f9ed89ba2f67745ed45f8e45c93ea1e22a) i jego typ na podstawie którego można określić rozszerzenie (np.: image/jpeg)
CuteOne
12.01.2011, 17:19:44
Zapytaj siebie jak lepiej zarządzać grafiką - w podfolderach z 3 zdjęciami czy w folderze "ogólnym" z 90k zdjęć?
Wg mnie struktura katalogów powinna wyglądać mniej więcej tak:
users
|
| - 1
| - 2
| - 3
| - 4
1-4 to id użytkownika z bazy. Nazwy plików tak jak webdice opisał
Co do bezpieczeństwa poczytaj o możliwościach .htaccess
laikkk
12.01.2011, 18:11:51
ok dzieki bardzo za odpowiedz. Uzyje sposobu Crozin
Pozdrawiam
thek
12.01.2011, 21:41:11
Moim zdaniem najlepiej mieć to zależne od zawartości. Co innego dane mające być dostępne dla usera i widoczne, a co innego prywatne. najbezpieczniejsze byłoby utworzenie katalogu chronionego przez htaccess tak, by nikt nie miał dostępu (to banalne). Wewnątrz struktura podkatalogów, które identyfikują usera (poprzez id choćby) i wewnątrz nich już się bawisz. Ja zazwyczaj jeszcze wydzielam podkatalogi "zadaniowe", czyli osobno pliki galerii, osobno pliki załączników, osobno choćby jakieś dodatkowe pliki usera. Jako że są one poblokowane, to dostęp do nich jest tylko i wyłącznie poprzez skrypt php i tylko dla zalogowanych userów (skrypt sprawdzałby to, bo to nie problem zrobić sprawdzenie czy user jest zalogowany w serwisie). Ewentualny dostęp do plików, które miały by być widoczne na zewnątrz to regułka htaccess, która zezwalałby na odczyt z lokacji o określonym wzorcu. Tylko jak zaznaczam - musiałbyś na starcie znać strukturę katalogów, której musiałbyś się trzymać i userowi dać możliwość przenoszenia plików pomiędzy swoimi katalogami.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.