Witam,
Z mojej strony już tradycyjnie, problem - zagwozdka. Nie wiem nawet jak zadać pytanie Googlowi. Nie wiem do którego działu to wrzucać, czy to po stronie serwera błąd, czy może sama sieć, czy może jakiś skrypt/trojan/wirus po stronie użytkownika... Nie mam danych na temat przeglądarki IE, natomiast rzecz na pewno się dzieje w Firefoxie 3.6.10 (parę osób wyłapałem właśnie z tą przeglądarką).
Od jakiegoś czasu do moich skryptów docierają dane z błędami. Zdarza się to niezwykle rzadko, ale jednak. Konkretnie chodzi o to, że w danych, które odbieram POSTem, zdarzają się zmiany jednego bitu w tekście. Mechanizm jest taki:
- buduję w PHP dość spory formularz, niech będzie macierz 20x20
- w HTMLu każde z pól macierzy wygląda podobnie do tego: <input type="text" size="2" name="matrix[c:1][n:1]" value="1" />
- strona jest wysyłana do przeglądarki użytkownika. Atrybut "name" nie jest nigdzie modyfikowany JavaScriptem.
- użytkownik wysyła do mnie gotowy formularz
- w PHPie odbieram formularz, przelatuję po wierszach i kolumnach
- bardzo rzadko, w pojedynczych polach, zamiast $_POST['matrix']['c:1']['n:1'] mam dostępne $_POST['matrix']['c:1']['j:1']
- jak widać, nastąpiła zmiana z "n" na "j" - binarnie jeden bit został zmodyfikowany
- podobnie czasami zmienia się "g" na "c" - binarnie znów jeden bit zmodyfikowany
Tak więc zmiana może następować:
- podczas budowania formularza w PHP - przeglądarka otrzymuje już zepsutą nazwę
- podczas wyświetlania formularza w przeglądarce - przeglądarka psuje nazwę
- podczas wypełniania formularza - działa skrypt JSowy sprawdzający poprawność danych, ale nigdy nie modyfikuje "name" - JavaScript psuje nazwę
- podczas odbierania danych z formularza przez PHP - PHP psuje POSTa
- podczas transmisji danych pomiędzy systemami - sieć psuje pakiety
Czasami mam trafienia żądań do plików graficznych z pomyloną o jeden bit nazwą, na przykład "obrazek.pnc" zamiast "obrazek.png". Nie mam pewności, czy przyczyna jest ta sama.
Jakby ktoś coś wiedział, desperacko proszę o pomoc...
Pozdrawiam