Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zabezpieczenie przed ponownym dodaniem, Jak zabezpieczyc skrypt...
radac78
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.02.2005

Ostrzeżenie: (0%)
-----


Witam
Buduje baze do ktorej przez formularz na stronie kazdy uzytkownik moze dodac swoj "obiekt" (pola z nazwa obiektu, adres, itp.) na 30 dni (pozniej obiekt zostaje zablokowany - tj. nie wyswietla sie w bazie obiektow). Uzytkownik moze dodac kilka swoic obiektow ale chce zabezpieczyc przed ponownym dodaniem tych samych obiektow po tych 30 dniach. Nie wiem na podstawie jakiego pola (co porownywac) to zrobic. Przeciez moze byc duzo obiektow o tym samym adresie lub nazwie wiec te pola odpadaja.... bede wdzieczny za jakiekolwiek wskazowki.
Go to the top of the page
+Quote Post
mhs
post
Post #2





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


najprawdopodobniej bedzie trzeba utworzyc wielopolowy klucz unikalny
zanstanow sie dokladnie jak bedzie wygladac Twoj projekt bazy danych
i przedstaw go tutaj...
Go to the top of the page
+Quote Post
radac78
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.02.2005

Ostrzeżenie: (0%)
-----


Zastanawiale sie tez nad porownywaniem wielu pol ale przeciez wystarczy jak ktos np. w nazwie zmini jedna literke to dla bazy bedzie juz inny obiekt, a defakto to ten sam ...

Projekt bazy, wystarczy mysle 2 tabele (1wsza z danymi klienta - tylko dla mojej wiadomosci, 2ga z danymi obiektu - dostepna na www)

Tabela1
KlientID - klucz podstawowy (autoincrement) i kolejne pola jak imie, nazwisko, mail ...

Tabela2
ObiektID - klucz podstawowy, KlientID (powiazany z Tab1), NazwaObiektu, Adres, mail, tel, TypObiektu ...

Czy taki mini projekt wystarczy ?
Go to the top of the page
+Quote Post
mhs
post
Post #4





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


a co to jest "Tabela1" oraz "Tabela2" - tak bedziesz nazywal tabele w projekcie bazy danych??

za bardzo to nie wiem co ty chcesz przechowywac w swojej bazie danych

zastanow sie dokladnie jakie dane bedziesz zbieral (nie rzucaj kilkoma przykladami tylko zbierz wszystkie dane) i nastepnie zabierz sie do projektu, dodaj do projektu pola z datami (np. data dodania Twojego obiektu)
a unikalne pola same przyjda... aczkolwiek byc moze bedzie trzeba stworzyc jakies sztuczne klucze
Go to the top of the page
+Quote Post
radac78
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.02.2005

Ostrzeżenie: (0%)
-----


Tabela1 - to dane klienta a Tabela2 to dane obiektow - rowniedobrze mozna je nazwac "Klienci" i "Obiekty" ale to chyba nie jest najwazniejsze.
Oczywiscie w Tabeli Obiektow bedzie pole z data dodania (pobieranie daty oczywiscie z serwera w momencie dodawania). Wydaje mi sie jednk ze nie to jest tutaj najwazniejsze (oczywiscie moze sie myle).
Czyli:

Klienci:
Imie, Nazwisko, Mail, Tel, Kod, Miasto, Ul., DataDod.

Obiekty:
Miasto, TypOb., Ul., Kod, Tel., Mail, WWW, Opis.

W obydwu Tabelach wystepuja pola przechowujace np. mail - ale to dlatego, ze tab klientow zawiera informacje tylko dla mnie, natomiast tab. obiektow prezentuje informacje wyswietlane na stronie.

Mysle ze to wystarczy do opisania sedna sprawy. 30 dni oczywiscie sprawdze na podstawie daty dodania wpisu tyle, ze tak jak juz wspominalem ... jak zabezpieczyc przed ponownym dodaniem.
Jeszcze raz dzieki za pomoc
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Na poziomie bazy danych no to nie ma innego wyjscia jak wstawienie klucza, a po stronie php obsluga do sprawdzania czy dany user / obiekt istnieje.


--------------------
Go to the top of the page
+Quote Post
radac78
post
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.02.2005

Ostrzeżenie: (0%)
-----


Tyle to wiadomo, chodzi o to w jaki sposob to zrobic.
Bo przeciez 1 klient ma prawo dodac kilka swoich obiektow (oby wlasnie nie tych samych). Jednak porownujac obiekty tak naprawde kazde pole mozna zmienic na tyle ze bedzie wygladalo jaki inny, nowy obiekt a defakto bedzie to ten sam. np. obiekt o nazwie "Kasia" bedzie inny dla porownania niż o nazwie "Kasia - cos tam" jednak defakto moze to byc ten sam. Pytam dlatego czy jest jakac metoda aby to zabezpieczyc
Go to the top of the page
+Quote Post
mhs
post
Post #8





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


Cytat(radac78 @ 2005-07-14 14:11:08)
Tyle to wiadomo, chodzi o to w jaki sposob to zrobic.
Bo przeciez 1 klient ma prawo dodac kilka swoich obiektow (oby wlasnie nie tych samych). Jednak porownujac obiekty tak naprawde kazde pole mozna zmienic na tyle ze bedzie wygladalo jaki inny, nowy obiekt a defakto bedzie to ten sam. np. obiekt o nazwie "Kasia" bedzie inny dla porownania niż o nazwie "Kasia - cos tam" jednak defakto moze to byc ten sam. Pytam dlatego czy jest jakac metoda aby to zabezpieczyc

A czy potrafisz dla tych obiektow powiedziec co jednoznacznie dane obiekty moze identyfikowac?

bo jak dla mnie:

Kod
Klient_ID |    wlasciwosc a     |  wlasciwosc b    | wlasciwosc  c |

1             |            asdf         |       qwerty        |      jkl;         |
1             |             asdf    1  |         qwerty      |      jkl;         |
1             |           asdf 2       |         qwerty      |      jkl;         |


//gdzie Klient_ID to klucz obcy


te 3 wiersze sa rozne ze wzgledu na wlasciwosc a i teraz udownij mi ze tak nie bedzie w Twoim przypadku...
Go to the top of the page
+Quote Post
radac78
post
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.02.2005

Ostrzeżenie: (0%)
-----


... i własnie chodzi o to, że w tym przypadku nie ma pola w tabeli, ktore jednoznacznie je zidentyfikuje a co za tym idzie wyeliminuje dodanie takiego samego (jak w Twoim przykladzie wystarczy dodac jeden znak i porownywanie zawartosci pola bierze w leb).
Dlatego napisalem ten watek - czy jest jakis pomysl na jednoznaczne zidentyfikowanie obiektu, jezeli w zasadzie nie ma pola ktore je jednoznacznie opisze.
Go to the top of the page
+Quote Post
mhs
post
Post #10





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


Cytat(radac78 @ 2005-07-14 14:40:33)
... i własnie chodzi o to, że w tym przypadku nie ma pola w tabeli, ktore jednoznacznie je zidentyfikuje a co za tym idzie wyeliminuje dodanie takiego samego (jak w Twoim przykladzie wystarczy dodac jeden znak i porownywanie zawartosci pola bierze w leb).
Dlatego napisalem ten watek - czy jest jakis pomysl na jednoznaczne zidentyfikowanie obiektu, jezeli w zasadzie nie ma pola ktore je jednoznacznie opisze.

wiec wlasnie...

musisz stworzyc (jezeli nie chcesz/mozesz wykorzystac klucza glownego danej tabeli) sztuczny klucz (niech takim przykladem bedzie nip, pesel, jakies id karty czy cos takiego) i wowczas bedziesz mial pole z unikalna wartoscia...

przeciez zaden obiekt (pomijajac duplikaty) nie jest taki sam - musza sie czyms roznic.. jezeli sie czyms roznia to sa to dwa wowczas rozne obiekty... natomiast jezeli bedzie twierdzil ze


Kod
id |   imie   | nazwisko
==============
?  | asdf     | jkl;
?  | asdf     | jkl;


to te same obiekty to napisz mi dlaczego sa to identyczne pozycje
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jeżeli nie ma pola , któe jednoznacznie opisze obiekt, to pozostaje jedynie zaufać użytkownikowi. Jeżeli on mówi że jest to inny obiekt, znaczy że jest i basta.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
radac78
post
Post #12





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.02.2005

Ostrzeżenie: (0%)
-----


tak tez podejzewalem, tyle ze chcialem sie upewnic (ludzilem sie ze jest jakas metoda ...)
Dzieki all za pomoc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:26