![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Czy znacie jakieś inne dobre sposoby zabezpieczania formularzy przed załamaniem skryptu php oprócz stosowania funkcji strip_tags i HTMLSpecialChars()?
Pozdrawiam Ten post edytował J4r0d 28.04.2005, 11:54:51 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1)escape'owanie
2)rzutowanie na konkretny typ, czyli jak masz mieć w inputa wpisaną liczbę, to rzutujesz ją na int, żeby napewno otrzymać int, anie jakiś napis, który może zaszkodzić ($zm=(int)$zm) -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat 1)escape'owanie Możesz napisać co dokładnie miałeś na myśli? Cytat 2)rzutowanie na konkretny typ, czyli jak masz mieć w inputa wpisaną liczbę, to rzutujesz ją na int, żeby napewno otrzymać int, anie jakiś napis, który może zaszkodzić ($zm=(int)$zm) No też dobre ale jak zamieci stringa na liczbe? Może też wyjść coś głupiego. A nie liepij sprawdzać czy użytkownik podał liczbe zamiast łańcucha? I jeszcze jedna sprawa. Chcę wykorzystać strip_tags i dodaję tą funkcje w skrypcie zapisującym do bazy.
I wywala mi błą przy zapisie. Gdzie popełniam błąd? -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
escape'owanie funkcja mysql_escape_string()
Cytat No też dobre ale jak zamieci stringa na liczbe? Może też wyjść coś głupiego Konkretnie wyjdzie 0. Ale skoro tam miała być liczba, to string jest już sam w sobie błędny, więc wszystko ok. Cytat A nie liepij sprawdzać czy użytkownik podał liczbe zamiast łańcucha? Też można Błąd ci wywala, bo dajesz funkcje php w zapytaniu. tak nie można
Ten post edytował nospor 28.04.2005, 12:15:58 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Błąd ci wywala, bo dajesz funkcje php w zapytaniu. tak nie można
thx ![]() I już ostatnie pytanie. Zanim zapisze do bazy sprawdzam, czy każde pole zostało wypełnione (później to zmienie na dokładniejsze sprawdzanie i nie wszystkie pola - dla kilku zostawię możliwość pozostawienia pustego). Mniej więcej to wygląda tak:
Jeżeli zmienna CzyWypelnione będzie miałą wartość 1 to zostanie wyświetlony odpowiedni komunikat i powrót do formularza. Moje pytanie czy nie lepiej będzie jak w tym momencie (sprawdzenie wypełnienia formualarza) zastosować funkcję strip_tags zamiast w zapytaniu? Które jest efektywniejsze/ może lepsze ? Pozdrawiam -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Jeżeli zmienna CzyWypelnione będzie miałą wartość 1 Chyba chciales napisac: Jeżeli zmienna CzyWypelnione będzie miałą wartość 0Swoją drogą trochę dziwnie to sprawdzasz, aco jesli kilka nie bedzie wypelnionych. Jak poinformujesz gościa, o które ci chodzi. Bedzie musial się domyslać. strip_tags nie robisz w zapytaniu, tylko wstawiasz text do zapytania po wczesniejszym przepuszczeniu go przez strip_tags. Tak tylko pisze aby wszystko bylo jasne. To może być robione tak jak jest -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Chyba chciales napisac: Jeżeli zmienna CzyWypelnione będzie miałą wartość 0 Tak. Moja pomyłkaCytat Swoją drogą trochę dziwnie to sprawdzasz, aco jesli kilka nie bedzie wypelnionych. Jak poinformujesz gościa, o które ci chodzi. Bedzie musial się domyslać. To jest tylko tymczasowe rozwiązanie. Zostaje wyświetlony komunikat "Wypełnij wszystkie pola formularza" Więc przy drugim wypełnianiu będzie pilnował aby wszystko wypełnić Cytat strip_tags nie robisz w zapytaniu, tylko wstawiasz text do zapytania po wczesniejszym przepuszczeniu go przez strip_tags. Tak tylko pisze aby wszystko bylo jasne. To może być robione tak jak jest Źle się zrozumieliśmy. ALe myślimy o tym samym ![]() A jaki doradzasz sposób na sprawdzanie wypełnienia formualrza? Pozdrawiam -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No sprawdzasz, czy każde pole odpowiada założeniom.
jak ma być to liczba, to czy jest liczbą, jak email to czy jest emailem (jest wiele metod sprawdzania maila. bylo na forum, jest na necie), jak ma byc pesel to sprawdzasz czy to pesel itd.
MOżna inaczej, lepiej, gorzej. TO jest takie podstawowe sprawdzanie. Możesz też dodatkowo sprawdzać w js przed wyslaniem formularza. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
js odpada. Jeśli użytkownik wyłączy obsługę w przeglądarce to na nic takie sprawdzanie.
Chodzi mi po głowie stworzenie tablicy do której będe zapisywał nazwy pól źle wypełnionych i później je wyświetlał. To chyba dobry sposób. Dziękuje za odpowieź i pozdrawiam -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat js odpada. Jeśli użytkownik wyłączy obsługę w przeglądarce to na nic takie sprawdzanie. Dlatego użyłem słowa "dodatkowo"Sprawdzanie w js ma umilić pracę klientowi. Na serwerze mimo wszystko sprawdzanie ma być. Jak klient nie chce js, to mu się zawsze będzie stronka przelaodywywac, nawet jak ma źle. A tak by se czasu zaoszczędził. Ja zawsze mam wbudowaną walidacje i na serwerze i u klienta. Radziłbym bym Ci też, jeśli to będą skompliowane formularze, używać klas do formularzy. UŁatwiają one życie. NIektóre też zawierają wbudowaną podwójną walidację. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wracając do funkcji strip popełniłeś błąd..
Zamiast
powinno być
bo inaczej do bazy zapisze nie wartość tylko "$_POST[imie]".. Druga sprawa, która zresztą mnie nie pokoi to wynik testu, który przeprowadziłem. Wszyscy dobrze wiem, że gdy nie zastosujemy funkcji strip_tags, ktoś wpisując w formularzu "Imię" ciąg "[b ]Jakiesimie[/b ]" otrzyma Jakiesimie. Więc przeprowadziłem test. Dodałem funkcje strip_tags do zmiennej imie a do zmiennej nazwisko nie. Wyglądało to tak
okazało się ![]() Ten post edytował J4r0d 28.04.2005, 15:11:45 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Wracając do funkcji strip popełniłeś błąd.. Sorki, ciapki mialy być w $_POST czyli $_POST['imie']. Dobrym (bardzo dobrym) zwyczajem jest uzywanie ciapków do oznaczenia literlanych indexów tablicy. Cytat okazało się , że stripuje wszystkie zmienne, chociaż chciałem tylko jedną hihi, tym razem ty poplelniles blad. powinno byc:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Sorki, ciapki mialy być w $_POST czyli $_POST['imie']. No niezupełnie bo jak zrobie tak jak piszesz to skrypt nie wykonuje się. Biała strona Do tej pory używałem sposobu np:
I działało poprawnie. Jak dodam ciapki np $_POST['imie'] to już nie działa. Cytat hihi, tym razem ty poplelniles blad. powinno byc:
Ale ja nie chciałem, żeby usuwało tagi z tych dwóch zmiennych, tylko z pierwszej (imie). Robie tak jak podałeś tylko bez tych ciapek i usuwa z obydwóch zmiennych ![]() -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Do tej pory używałem sposobu np: $query = "INSERT INTO klient (konto_id, imie, nazwisko)". " VALUES ($ID,'$_POST[imie]','$_POST[nazwisko]');"; bo ci sie ciapki wtedy mieszaly. trzeba wiedziec jak używać. Zauważ ze ze strip_tags są ciapki (w mojej metodzie i dziala). Cytat Ale ja nie chciałem, żeby usuwało tagi z tych dwóch zmiennych, tylko z pierwszej (imie). No i moja metoda to robi. NIe ma prawa ci usuwać z nazwiska, gdy nazwisko nie jest objęteę tą funkcją. Moze ty poprostu do nazwiska nie dopisujesz tagów html, więc ich nie zapisuje do bazy. W tym zapytaniu ucinam tylko w imie.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze raz bo się chyba nie rozumiemy.
I. Zacznę od tego, że Ty każesz zapisaywać w ten sposób (narazie prześledźmy bez strip_tags):
A ja do tej pory zapisywałem też tak:
i działało. Poprawnie dodawało do bazy. Więc nie wiem dlaczego uparłeś się żeby stosować to kropke i odzielać, skoro obydwa zapisy są poprawne? II. Byłem przekonany, że funkcja strip_tags usuwa znacznik i zapisuje do bazy bez znaczników. Ale jak ją zastosuje i podam w formularzu znaczniki pogrubuające, a potem chcę odczytać dane i wyświetlić w przeglądarce, to nie pogrubia tekstu ale wypisuje znaczniki i dziwnie to wygląda. Przecież do wypisywania znaczników a nie ich obcinania służy funkcja HTMLSpecialChars()... Więc co jest nie tak? Może przy odczycie danych też powiniem stosować funkcję strip_tags?? III. Skoro mój sposób zapisu (bez kropki patrz punkt I) działa to dlaczego ten zapis nie działa
tylko stripuje obie zmienne? EDIT: ------- Problem rozwiązany. Zamiast <b></b> podawałem [b ][/b ]. Czasami warto odejść od komputera na 5 minut ![]() Pozdrawiam Ten post edytował J4r0d 28.04.2005, 15:49:55 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Więc nie wiem dlaczego uparłeś się żeby stosować to kropke i odzielać, skoro obydwa zapisy są poprawne Bo jest dobrym zwyczajem pisać indexy tekstowego dla tablic w ciapkachCytat Problem rozwiązany. Zamiast <b></b> podawałem [b ][/b ]. Też już chcialem Ci na to zwrócić uwagę ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 24.03.2005 Skąd: Pomorskie Ostrzeżenie: (0%) ![]() ![]() |
Generalnie, jeśli chodzi o kontrolę pól formularza to polecam PEAR i QuickForm. W sposób niemalże trywialny definiujesz formularz, filtry (czyli np. wytnij spacje) i wzorce do sprawdzania wartości(po stronie serwera jak i klienta) i nie trzeba znać JS... i php właściwie też nie, he, he, he...
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:41 |