![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 178 Pomógł: 51 Dołączył: 7.01.2009 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Witam!
W skrypcie rejestracji w sklepie mam pewne problemy. Otóż, niektórym osobom skrypt dodaje do bazy danych puste rekordy do jednej z tabel lub kilku, a niektórym w ogóle nic nie dodaje mimo iż dane i zapytania są poprawne. Przed tym skryptem są trzy kroki. Na każdym z kroków uzupełniane są dane w sesji i sprawdzane - ewentualnie przenosi do danego kroku i każe coś poprawić. Nie wiem niestety w czym jest błąd. Kod może nie jest idealny, ale pierwszy raz robię rejestrację i to jeszcze tak zaawansowaną. Skrypt dodający:
Proszę o pomoc!
Powód edycji: [thek]: Poprawiłem na znacznik php zamiast codebox. Następnym razem będzie ochrzan :) Za długo tu jesteś by nie znać reguł :)
-------------------- Sklep
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 5 Dołączył: 7.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Na pierwszy rzut oka wygląda to poprawnie, wiec pewnie problem jest w jakieś literówce. Zamiast mysql_query daj echo $query, skopiuj wynik i wykonaj ręcznie na bazie danych, zobaczysz co MySQL ci powie. Nie wiem tez co siedzi w zmiennych sesyjnych, jesli są puste to nic dziwnego, że rekordy też są puste.
-------------------- -------------------------------------------------------------------------
My blog |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Ja się boję o coś co poniżej podam:
1) Możliwe, że podczas przechodzenia między krokami dane nie zostają zapisane do sesji lub nadpisują się wartościami pustymi/domyślnymi 2) Nie sprawdzasz czy zapytanie zwróciło jakieś błędy. Wywali się w jednym i jest kicha, bo zawalasz wszystkie inserty od niego zależne. 3) Nie zabezpieczasz danych idących do bazy! Jesli tego nie zrobisz masz problem ze znakami ucieczki i do bazy idą cyrkowe zapytania, które przez bazę nie potrafią być przetworzone. Przykład? Wpisz jako adres: ulica Ch. de Gaulle'a 5 :) zauważ, że pojawił się ', który najpewniej wysypie zapytanie bo zamknie przedwcześnie całość wartości dla adresu, a reszta będzie dla bazy bezsensowna i uzna je za błędne zapytanie oraz nie wykona go, przez co zależne od niego inserty także się posypią. Weź sobie zrób logowanie operacji insert: zapytań i ich wyników oraz tego co masz na końcu w sesji, tuż przed dodawaniem. Inaczej nie dojdziesz do przyczyn. Może być bowiem sytuacja, któraś z powyższych. Jak dla mnie patrząc na kod (który jest prawidłowy, ale nie zabezpieczony), nie ma błędu składni. Musi być więc być błąd innego typu. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 06:08 |