![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 10.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam miałem sortowanie działało, a teraz nie wiem czemu nie działa, dzisiaj zauważyłem że nie działa (nie wiem ile czasu tak już jest), nie mogę dojść czemu to nie działa, a oto kod:
Bardzo bym prosił o sprawdzenie kodu, może ktoś wyłapie co tu jest nie tak, ja już nie mam siły.. :/ |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Hmmm, jest parę niestandardowych zapisów, ale poprawnych. Dane w tabeli wyświetla, tylko nie sortuje ich, tak?
Jeśli tak to dziwne, ja tu błędu nie widzę. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Nazw kolumn/tabel nie umieszczamy w apostrofach/cudzysłowie, bo będą traktowane jako tekst.
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
@Kicok:
O co Ci chodzi? Coś Ci się chyba "potegociło" ![]() @Oscar_83: Sprawdziłem u siebie - ten kod jest w 100% poprawny. Problem musi leżeć gdzieś indziej. Napisz dokładnie co to znaczy "nie działa" - jakiś błąd? Nic się nie dzieje? U mnie jak już pisałem wszystko jest OK z tym kodem. Ten post edytował drPayton 31.08.2007, 10:59:20 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 10.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Już dostałem odpowiedź na forum PHP (szczerze mówiąc to zapomniałem że w przedszkolu pytałem), wystarczyło zmienić tylko jedną linjke na taką:
Wydaje mi się że działo się to przez to że wgrali mi na serwer nowego phpmyadmina i pewnie on przyjmuje tylko tak jak jest podane wyżej, teraz działa wszystko ładnie pięknie. |
|
|
-Wieviór- |
![]()
Post
#6
|
Goście ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
@Wieviór: Najpoprawniejsza to taka, która nie ma prawa działać (parse error)?
![]() Pytanie do kogokolwiek zorientowanego: Jakim cudem taka zmiana (dodanie ``) do nazwy pola, tabeli może mieć jakikolwiek wpływ na działanie skryptu? Na pewno wtedy, gdy pole nazwane jest jakimś słowem zastrzeżonym (np order, select etc), wtedy muszą być "ciapki" (by @qqrq), ale tu takiej sytuacji nie ma, więc? Ten post edytował drPayton 10.09.2007, 16:27:46 |
|
|
-Wieviór- |
![]()
Post
#8
|
Goście ![]() |
Bardzo słusznie
![]() ![]() ![]()
Tak lepiej ![]() ![]() EDIT: @drPayton: Nie jestem pewien, ale chyba ` ` ma to samo działanie co ' '. Jeśli tak, to dodawanie pojedynczego cudzysłowu ma jak najwięcej sensu - w końcu tutaj zmienna $sort jest tekstowa, więc powinna być ujęta w cudzysłów. Na niektórych serwerach to działa bez cudzysłowu, inne tego wymagają, zależy chyba od wersji PHP bądź SQL'a. Ten post edytował Wieviór 10.09.2007, 17:04:41 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat chyba ` ` ma to samo działanie co ' '. Nie, apostrofy do wstawiania wartości nieliczbowych, "ciapki" obejmują nazwy tabel/kolumn etc, ale już postgres na nich polegnie... Jeżeli ma to jakiekolwiek znaczenie (za wyjątkiem przypadku o którym pisałem), to musi zależeć od wersji php/mysql. Ale jakoś nigdy się z czym takimś nie spotkałem, a zaliczyłem już sporo (sub)wersji obu w/w. Ciut ciężko mi uwierzyć w to, żeby faktycznie to to dostawienie "ciapek" rozwiązało problem, raczej przypadek tudzież gdzie indziej był jakiś "drobny" błąd, o którym @Oscar_83 nie napisał. Fajnie by było jednak dowiedzieć się tego od kogoś ciut mądrzejszego ode mnie ![]() Więc...? Ktokolwiek...? Ten post edytował drPayton 10.09.2007, 18:10:58 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Jaki problem zrobić testy?
Najpierw tworzymy prostą tabelę:
Ważne jest to, żeby wstawić do tabeli jakieś NIEPOSORTOWANE dane A teraz można już przetestować sobie ciapki:
Które zapytania zwrócą posortowane dane, które nieposortowane, a które wyrzucą błąd? ;] -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
A może by tak jeszcze jakiś escape tego $_GET['sort']? Inaczej ktoś Ci tam doda UNION 'inna tabela' a potem INTO OUTFILE i zbierze całą bazę danych... Trochę bezpieczeństwa
![]() |
|
|
-Wieviór- |
![]()
Post
#12
|
Goście ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Napisz coś więcej na ten temat albo zarzuć jakimś linkiem, chętnie się dowiem... Jako $sort (a właściwie $_GET['sort']) wrzucasz w skrypt: kolumna`,(BARDZO FAJNY SELECT...),`kolumna Chodzi po prostu o bardziej zakręcone injection. Z UNION troche przesadziłem, bo tu nie przejdzie, ale można inne rzeczy zrobić. No to w przykładach pewnie najlepiej:
Zrzuci wynik całego oryginalnego zapytania do tego pliku.
Posortuje powtórzenia w sposób... odpowiedni ![]() Można cały dzień sypać przykładami co da się zrobić z injectem do ORDER BY... - po prostu do bazy NIGDY nie powinna pójść nieescapowana wartość. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:22 |