![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję zrobić taki myk, że jak użytkownik otworzy sobie formularz edycji, to zobaczy listę maili. Będzie mógł wyedytować to co już jest ale także dodać nowego maila.
Wszystko fajnie i prosto, bo maile dla danego ID(klienta) pobiorę sobie z bazy w pętli, powypełniam input'y i będzie to co już jest, użytkownik doda sobie nowe pole(a) i fajnie, ale jak zapisać do bazy nowe i poprawić te, które zostały zmienione. Jeżeli zrobię sobie tak:
to w efekcie dostane w PHP tablicę tych maili. Pytanie teraz jak rozróżnić te stare, które już były w bazie od tych, które trzeba dodać. Czy jest jakieś sensowne i łatwe rozwiązanie tego problemu czy pozostaje tylko rzeźba z milionem warunków i zapytań do bazy? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Możesz zdublować te inputy:
Kod <input name="email[1][original_value]" hidden /> <input name="email[1][new_value]" /> Jeśli original_value jest inna niż new_value to znaczy, że było edytowane. Ta jedynka to id wiadomości. Jednak to sposób słaby bo podatny na manipulacje ze strony usera. EDIT: to powyżej jest całkowicie bezsesnu ![]() Ten post edytował ayeo 13.01.2014, 22:38:00 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... to jest jakiś trop i to całkiem nie głupi
![]() Manipulacja mnie powiedzmy, że nie dotyczy, bo to będzie tylko lokalnie dostępne i nikt nie będzie ani umiał ani chciał manipulować danymi. Ja chyba nie muszę wiedzieć co było tylko bardziej mnie interesuje tego ID, więc formularz można uprościć o pola hidden, ale co z nowo dodanymi przez JS? Formularz ma wtedy wyglądać tak?
OK. Wielkiej pomocy nie otrzymałem, ale jakiś trop chociaż. Problem rozwiązałem samemu w następujący sposób: 1. Problem oddzielenia danych edytowanych od nowych jest trywialny, ale trzeba było to przemyśleć. Wystarczy przecież inaczej nazwać pola imput i po sprawie. 2. Mając ten pomysł idzie już z górki, bo w pętli pokazujemy wypełnione pola i zarazem robimy sobie w nazwach tablicę z indexami z bazy
Tym sposobem po wysłaniu formularza wróci nam w zmiennej POST tablica wartosciami i ich indeksami. Teraz tylko w pętli foreach update wszystkiego:
Drugą częśc problemu rozwiązujemy podobnie, ale zamiast gotowych pól dodajemy nowe za pomocą JS i wystarczy że bądą miały inną nazwe np.:
Tu nie trzeba wpisywać indeksów, bo wypełniają się automatycznie od 0. Jak wyślemy formularz to obrabiamy zmienna POST tak samo tylko że robimy insert. Jest to chyba najprostsze rozwiązanie. We wcześniejszym poście ayeo pisał, że podawanie id nie jest zbyt bezpieczne. Zgadzam się z tym i jestem ciekaw jak to zabezpieczyć lub jak zrobić bezpieczniejsze rozwiązanie problemu ![]() Ten post edytował alex19 13.01.2014, 22:47:11 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:30 |