![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 0 Dołączył: 6.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam Mam problem ze skryptem lub zapytaniem .
Czasami jak użytkownik zmienia dane w swoim panelu zamiast 1 w polu aktywna zamienia na 0. Zdarza się to bardzo rzadko lecz jest o problem którego nie mogę rozwiązać . Nie wiem czy za ten błąd jest odpowiedzialna któraś z przeglądarek czy problem w skrypcie. plik.php wygląda tak
Ten post edytował jagwie 9.01.2011, 22:21:40 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 086 Pomógł: 8 Dołączył: 10.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
No... Przecież sam widzisz, że dla pewnych przypadków ustawiasz $aktywna = 0;, więc... po prostu został spełniony warunek? A potem poszedł UPDATE. Nie rozumiem chyba pytania.
Swoją drogą wyłącz szybko swój skrypt/serwis, przepisz go i dopiero uruchom. Jesteś w pełni podatny na SQL Injection, przecież wpisujesz w zapytanie wszystko co wysłał ci user! Przemyśl sobie dobrze, co się stanie jak otrzymasz $nazwa_obiektu o wartości Kod '; DELETE * FROM oferty; ' Chyba, że korzystasz z jakichś magic quotes... ale to jest deprecated i nie należy raczej na tym polegać.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 0 Dołączył: 6.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak dla pewnych przypadków lecz te przypadki nie występują więc $aktywna = 0;
I w tym właśnie problem że przypadek nie występuje a $aktywna = 0; się zeruje A jeśli chodzi o to po wpisaniu otrzymasz zapis '; DELETE * FROM oferty; ' jako nazwę obiektu |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 086 Pomógł: 8 Dołączył: 10.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Tak dla pewnych przypadków lecz te przypadki nie występują więc $aktywna = 0; Możemy sobie jedynie wmawiać: "na pewno tak", "na pewno nie". Skąd wiesz o tych warunkach? Zrzuciłeś wszystkie z nich gdzieś do loga? Upewnij się 10 razy, bo innej możliowści nie widzę.I w tym właśnie problem że przypadek nie występuje a $aktywna = 0; się zeruje A jeśli chodzi o Porzytaj po prostu o SQL Injection. to po wpisaniu otrzymasz zapis '; DELETE * FROM oferty; ' jako nazwę obiektu Kod UPDATE `oferty` SET `nazwa_obiektu` = '$nazwa_obiektu' Kod UPDATE `oferty` SET `nazwa_obiektu` = ''; DELETE * FROM oferty; '' Kod UPDATE `oferty` SET `nazwa_obiektu` = '';
DELETE * FROM oferty; '' |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 0 Dołączył: 6.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zmienną $aktywna jest ustawiona 100 dni czyli oferta jest aktywna przypadek by wystąpił gdyby ilość dni była 0 dni lecz na razie cron jest wyłączony i 100 dni jest przy wszystkich ofertach.
Zauważyłem jedynie że jeśli występuje zerowanie zmiennej $aktywna to zawsze zmienne $lat = $_POST['lat']; $lng = $_POST['lng']; $zom = $_POST['zom']; Są zerami i myślę że ma to coś wspólnego właśnie z zmienną $aktywna A jeśli chodzi o SQL Injection. To podpowiedz jeśli widzisz w tym skrypcie możliwość przesłania będe wdzięczny
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Zauważyłem jedynie że jeśli występuje zerowanie zmiennej $aktywna to zawsze zmienne No bez jaj....$lat = $_POST['lat']; $lng = $_POST['lng']; $zom = $_POST['zom']; Są zerami i myślę że ma to coś wspólnego właśnie z zmienną $aktywna Masz warunek: if(!empty($nazwa_obiektu) && $typ_dzialalnosci!=0 && $kraj!=0 && $wojewodztwo!=0 && !empty($miasto) && !empty($telefon) && !empty($adres) && !empty($lat) && !empty($lng) && !empty($zom) && !empty($wszystkich_pokoi) && !empty($wolnych_pokoi) && !empty($cena_od) && !empty($cena_do)) $aktywna = 1; else $aktywna = 0; ktory mowi, ze jesli wszystkie dane są niepuste to $aktywna = 1, a jesli choc jedna jest pusta to aktywna=0. I ty teraz z takim tekstem? No nie widzisz co piszesz? Tak, jesli lat,lng lub zom jest zerem, to empty() da true czyli aktywna=0 0 to dla empty puste coś. empty(0) da zawsze true. Może dlatego, ze myslales ze jest inaczej, to nie zauwazyles bledu Problem nie ma zadnego związku z bazą danych - przenosze -------------------- "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: 71 Pomógł: 0 Dołączył: 6.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za podpowiedz myślałem że empty(0) zostanie ztychzmiennych czyta jako liczba zero Bo to są współrzędne.
Dzięki wielki już zrozumiałem. Pozdrawiam |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Hehehe filtrowanie danych masz porazajace
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 3.07.2025 - 11:34 |