![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 10.05.2011 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich : )
Nie wiem czy dobrze zatytułowałem mój problem ale jeśli nie to postaram się chociaż go dobrze przedstawić w tym opisie. Sprawa wygląda tak... Mam skrypt przykładowo o nazwie "dodaj_do_bazy_danych.php" w którym jest napisany kod który coś dodaje do mysql przy pomocy pobrania metodą $_POST['costam'] z pliku "dane_do_bazy_danych.php". Wszystko śmiga pięknie jak ktoś uzupełni formularz itd. ale jeśli ktoś się odniesie bezpośrednio do pliku przez wpisanie linku: "http://www.mojastrona.pl/dodaj_do_bazy_danych.php" rekord zostaje dodany... pytanie moje brzmi: Czy da się temu zapobiec dzięki plikowi na serwerze .htaccess żeby np. ignorował ten link przez wpisanie go bezpośrednio i np. odsyłał na stronę główną bez żadnego powiadomienia oraz żeby skrypt nie zadziałał? Czy trzeba jednak otwierać wszystkie pliki które coś dodają do mysql i dodawać pewną instrukcje if która sprawdzi czy w formularzu zostały wszystike potrzebne dane do wstawienia rekordu podane? Z góry dziękuje wszystkim za odpowiedzi ; ) |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 1 Dołączył: 2.07.2012 Skąd: localhost Ostrzeżenie: (0%) ![]() ![]() |
Tak da się, w pliku z formularzem na samej górze dajesz
oraz w pliku z dadaniem do bazy lub robisz to w 1 pliku z warunkiem do dodania oraz if(isset($)POST['wyslij'])) Ten post edytował filipsiu 23.02.2013, 16:51:09 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
@up
od kiedy to stałe tak sobie po prostu przechodzą ze strony na stronę? Słuszne rozwiązanie to sprawdzenie czy formularz został wysłany. Robi się to za pomocą isset na dowolnym polu z formularza czy nawet na przycisku (jeśli ma name to także wysyła on wartość). Jeżeli nie jest utworzone to wywołanie jest manualne i nie powinno powodować żadnej akcji. -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 1 Dołączył: 9.02.2012 Ostrzeżenie: (10%) ![]() ![]() |
W formularzu dodaj
w skrypcie sprawdź to za pomocą:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumie po co dodawać ukryte pola?
@markonix powiedział dobrze. sprawdzasz sobie istniejące już pole(wysyłane)
Jak dodajesz niesprawdzany rekord do bazy danych, nie chciałbym mieć u siebie na serwere takiego skryptu, SQL Injection i wgl |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 10.05.2011 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za rady skorzystam na pewno z tych dwóch opcji ; ) tak właśnie myślałem że z tymi isset to chyba najlepsze wyjście ale no jednak miałem jakąś nadzieję : ) ale z tym defined też spróbuję : ) jak na razie temat do zamknięcia i jeszcze raz dzięki all : )
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Sposób z defined jest nieprawidłowy, przynajmniej w takiej formie bo faktycznie można z niego skorzystać ale gdy includujemy pliki.
Ten post edytował markonix 24.02.2013, 01:16:05 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 10:37 |