![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Zmobilizowałem się wreszcie do nauki php od początku.
Stworzyłem formularz dodawania danych do bazy. Po mniejszych i większych perturbacjach udało mi się połączyć z bazą i zapisać w niej dane z formularza. PROBLEM: po każdym otwarciu strony z formularzem od razu pojawia się komunikat o poprawnym dodaniu rekordu do bazy i rekord taki zostaje dodany, oczywiście pusty, bo pole formularza były puste. Jak temu zapobiec i spowodować dodawanie danych dopiero po naciśnięciu submit? Czy przesyłanie danych w ten sposób jest bezpieczne, czy powinienem mieć w nawyku dodawanie jakiegoś zabezpieczenia? Lepiej to wiedzieć i niech wejdzie w krew na początku nauki. Może jeszcze jakieś uwagi doświadczonych programistów? Kod:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 468 Pomógł: 36 Dołączył: 14.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
musisz sprawdzac czy zmienna $_POST jest pusta jezeli tak to zeby nie wykonywal zapytania, a jak cos sie znajduje w tej zmiennej to wtedy normalnie wykonuje zapytanie
![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
[/quote] |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Super. Działa. Czy są jeszcze jakieś inne metody sprawdzenia, które można by tutaj użyć. Podana powyżej działa, ale chyba nie jest podręcznikową. To raczej rozwiązanie praktyczne, prawda?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy są jakieś metody podręcznikowe czy nie. To chyba jedyny sensowny sposób na sprawdzenie czy można insertować dane do bazy, bo one muszą istnieć, a istnieją jak są zmienne POST.
Można sprawdzić za jednym zamachem wszystkie dane z formularza w tym if, a co za tym idzie wstępnie je zwalidować. Zauważ że mój kod sprawdza tylko czy formularz został wcześniej wysłany, ale w żaden sposób nie zabezpiecza przed dodaniem pustych danych. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Polecam zajrzeć do manuala, a nie zadawac tak głupie pytania ( nie ma czegos takiego jak sposób podrecznikowy, a jak tego w "podreczniku" nie ma to masz słaby ten "podrecznik")
isset empty Biblia php to http://www.php.net/manual/pl/ a nie "podreczniki" ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zauważ że mój kod sprawdza tylko czy formularz został wcześniej wysłany alex19 - dokładnie o to mi chodziło, dzięki, problem został rozwiązany. Źle się wyraziłem mówiąc "metoda podręcznikowa" miałem na myśli uniwersalne rozwiązanie, które można zastosować bez modyfikacji w każdym formularzu. Użyłeś wartości ze zmiennej "marka", a zmienna o tej nazwie może nie występować w innym formularzu. W jednej z książek z których się uczę znalazłem rozwiązanie. Działa dokładnie tak jak Twój przykład, tylko zamiast zmiennej "marka" użyto wartości z ukrytego pola "submitted" umieszczonego na końcu formularza. Dzięki temu nie trzeba za każdym razem zmieniać nazwy zmiennej na taką, która jest w danym formularzu. O takie, uniwersalne rozwiązanie mi chodziło. Dzięki za pomoc. Tak to wygląda (może przyda się komuś, kto się uczy tak jak ja):
i w formularzu:
Cytat Polecam zajrzeć do manuala, a nie zadawac tak głupie pytania com - właśnie zacząłem naukę php praktycznie od "zera". Uważam, że na tym etapie żadne pytanie nie jest głupie. Manual na pewno jest super bazą wiedzy, ale na początku trzeba zrozumieć na czym polega to całe php, bo tylko mając jakąś podstawową wiedzę na ten temat można umiejętnie z manuala korzystać. Dla mnie na to jeszcze za wcześnie. Proponuję, żeby ktoś kto nie ma ochoty pomóc, powstrzymał się od nic nie wnoszących komentarzy. Dzięki za link do "biblii", znam go. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
alex19 - dokładnie o to mi chodziło, dzięki, problem został rozwiązany. Źle się wyraziłem mówiąc "metoda podręcznikowa" miałem na myśli uniwersalne rozwiązanie, które można zastosować bez modyfikacji w każdym formularzu. Użyłeś wartości ze zmiennej "marka", a zmienna o tej nazwie może nie występować w innym formularzu. W jednej z książek z których się uczę znalazłem rozwiązanie. Działa dokładnie tak jak Twój przykład, tylko zamiast zmiennej "marka" użyto wartości z ukrytego pola "submitted" umieszczonego na końcu formularza. Dzięki temu nie trzeba za każdym razem zmieniać nazwy zmiennej na taką, która jest w danym formularzu. O takie, uniwersalne rozwiązanie mi chodziło. Dzięki za pomoc. Jak chcesz takim sposobem to mozesz dodac value do samego przycisku "wyslij" ![]() "Moja" metoda jest jednak o tyle lepsza, że i tak trzeba dane z formularza odebrac i sprawdzic co przyszlo. Zakładam, że akurat w tym przykładowym formularzu wszystkie dane sa obowiązkowe, więc powinieneś i tak każde z pól formularza sprawdzić czy nie jest nie tyle co "set" jak "empty".
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Uniwersalne metody na sprawdzenie czy formularz został wysłany:
1. 2.
Masowe sprawdzenie czy pola nie są puste:
W przypadku nazw tablicowych analogicznie j.w. Oczywiście to tylko podstawy, warto by jeszcze sprawdzić np. czy mail ma odpowiedni format, itd. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.04.2025 - 04:15 |