[php] pętla i select |
[php] pętla i select |
30.10.2020, 15:16:02
Post
#1
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 27.02.2008 Ostrzeżenie: (0%) |
mam pętle w której chce umieścic selecta
obecnie:
a chcę zamienić na
ale po pierwsze nie wiem jak dodac 0 przed 1,2,3.....8,9 zeby uzyskac 2020-01 zamiast 2020-1 oraz jak dodac $i do selecta? LIKE '2020-'.$i.'-%' ? z gory dziekuje za pomoc -------------------- www.Opiekuj.pl
|
|
|
30.10.2020, 15:34:03
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
30.10.2020, 15:38:30
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Nazwa kolumny wskazuje że to jakiś typ daty. Dlaczego ja porównujesz przez like?
-------------------- |
|
|
30.10.2020, 15:47:16
Post
#4
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 27.02.2008 Ostrzeżenie: (0%) |
Nazwa kolumny wskazuje że to jakiś typ daty. Dlaczego ja porównujesz przez like? za malo mam wiedzy tak to zrobilem
-------------------- www.Opiekuj.pl
|
|
|
30.10.2020, 17:25:02
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
I dla takiej głupoty leci 13 zapytań.
-------------------- |
|
|
30.10.2020, 21:37:28
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 828 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Viking ma rację.
Użyj w zapytaniu SQL coś takiego jak BETWEEN dla porównywania przedziałów dat. Kod reservation_date_k BETWEEN '2020-01-01' AND '2020-12-31' a co do pętli for, bardziej czytelne będzie gdy użyjesz <= 12, a nie < 13. - Skoro wiadomo że dotyczy to miesięcy, gdy ty sam, lub ktoś inny na to spojrzy, to od razu poprawnie zinterpretuje co to jest za liczba. |
|
|
30.10.2020, 22:10:41
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
|
|
|
2.11.2020, 17:01:29
Post
#8
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 27.02.2008 Ostrzeżenie: (0%) |
wszystkim dziekuje za rady.
SmokAnalog a moge uzyc htmlspecialchars i to co mi wypluje wstawic do zapytania? to mnie urchroni przed SQL Injection? -------------------- www.Opiekuj.pl
|
|
|
2.11.2020, 17:32:32
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Nie , nie możesz. Poza tym do raz przygotowanego zapytania możesz postawić n- razy wartości i je wykonywać.
-------------------- |
|
|
3.11.2020, 17:04:15
Post
#10
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 27.02.2008 Ostrzeżenie: (0%) |
dziekuje i to jezeli pobieram wartosci zmiennych z urla a jezeli robie formularz i przesylam metoda post to wystarczy uzyć htmlspecialchars zeby przefiltrowac to co uzytkownik wpisuje?
-------------------- www.Opiekuj.pl
|
|
|
3.11.2020, 17:30:57
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
Nie
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
3.11.2020, 20:30:04
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Nie wystarczy, bo w SQL Injection często wykorzystuje się znak myślnika ( -- to komentarz SQL), a htmlspecialchars nie koduje myślnika. Poza tym, osobiście jestem przeciwnikiem zapisywania inputa w zmienionej formie. Przyzwyczaj się do używania prepared statements, to Ci zaprocentuje i nie jest takie trudne
|
|
|
4.11.2020, 06:18:15
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 828 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Do SQL warto obejrzeć film Kacpra Szurka o SQL Injection: bardzo dużo różnych przykładów.
https://www.youtube.com/watch?v=s7Nozq4iqFY |
|
|
4.11.2020, 11:22:32
Post
#14
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 27.02.2008 Ostrzeżenie: (0%) |
poczytalem troche na http://prophp.pl/ i ogolnie to zrobilem tak ze uzywam (int) oraz wczeniej filtruje, wiem z jakiego przedzialu moge dostac liczby w id a wszystko co jest podejrzane odrzucam.
dzieki za dyskusje na 100% poczytam o czym piszecie, yt tez w wolnej chwili zobacze -------------------- www.Opiekuj.pl
|
|
|
4.11.2020, 11:30:48
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
To fajnie, że używasz int i w ogóle, ale dlaczego nie chcesz się przekonać do prepared statements? Powiem wprost: one powinny być zawsze używane, gdy przekazujesz wartość do zapytania. Nawet, gdy to jest na 100% liczba. Po prostu dobrze wyrobić sobie taki nawyk, że sklejanie zapytania ze stringa jest złą praktyką, gdy mówimy o sklejaniu wartości. Czasem od tego nie uciekniesz, bo bywa że trzeba dynamicznie przekazać np. nazwę kolumny, a tu już prepared statements nie pomogą.
|
|
|
4.11.2020, 15:49:09
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 828 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
@Blokern
SmokAnalog ma rację, nie dość że jest to proste w użyciu, to jeszcze bezpieczniejsze i mniej komplikujący kod niż stosowanie filtrów. Oczywiście, mając jakiś stary kod to nie obędziesz się, bez takich funkcji, ale tutaj jak widzę, nie dość że się uczysz, to tworzysz nowy kod. |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 05:38 |