Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PHP / JS / HTML - podmiana bloku bez przeładowania

sharminte 06 Kwi 2017 09:38 645 2
  • #1 06 Kwi 2017 09:38
    sharminte
    Poziom 5  

    Witam, mam takie 2 oto kawałki kodu:

    form.php

    Kod: php
    Zaloguj się, aby zobaczyć kod


    submit.php
    Kod: php
    Zaloguj się, aby zobaczyć kod


    Formularz jak najbardziej działa, wysyła się bez przeładowania, natomiast problem mam z komunikatem po przesłaniu, w momencie kiedy wartości w prowadzone są prawidłowe, wyświetlony zostaje komunikat sukcesu, po ponownej próbie załadowania tych samych parametrów do bazy komunikat na stronie zostaje nadpisany, zostaje wyświetlony komunikat o istniejącym już rekordzie.

    Do tego momentu działa wszystko bez zarzutu. jednak jeżeli zmienię parametr (dowolny) przez co wpis kwalifikuje się do dodania prawidłowego, Wpis w bazie zostaje wykonany, jednak komunikat o błędzie nie zostaje nadpisany komunikatem sukcesu, co skutkuje dalszym wyświetlaniem na ekranie komunikatu o duplikacie rekordu, co miejsca mieć nie powinno.

    Czy może mi ktoś wskazać gdzie popełniłem błąd :)

    0 2
  • #2 09 Kwi 2017 02:27
    LED5W
    Poziom 32  

    Po każdym kliknięciu Wprowadź dodajesz obsługę zdarzenia submit, więc za każdym kolejnym kliknięciem formularz jest wysyłany o raz więcej niż poprzednio. Usuń onclick, wyciągnij kod z funkcji Wprowadź i powinno działać.
    Zamiast $(document).on('submit', // ... proponuję użyć id formularza.
    Gdzie zabezpieczenia przed wstrzyknięciem SQL?
    Co się da rób przed wysłaniem odpowiedzi przeglądarce (mam tu na myśli #msgbox).

    0
  • #3 09 Kwi 2017 15:32
    sharminte
    Poziom 5  

    Dzięki wielkie, jest faktycznie tak jak mówiłeś, w momencie pozbycia się onclick'a oraz wyjęciu skryptu z funkcji wszystko działa jak należy :)

    Co do SQL injection narazie projekt jest na serwerze zamkniętym i piszę skrypt w celu sprawdzenia funkcjonowania. Zabezpieczał będę go już pod koniec :)

    0