![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 19.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Eksperymentowałem sobie z Web Forms 2, próbująć napisać skrypt do wczytywania wielu plików z jednego pola <input>. Problem pojawił się przy interpretacji XML wysłanego przez przeglądarkę. Przy wybraniu więcej niż 1 pliku, tag zamykający XML jest przycinany. Miałem kłopot z wybraniem odpowiedniego forum, nie wiedząc czy winna jest przeglądarka czy php. Obecnie niestety WF2 obsługuje tylko Opera, więc nie mogłem sprawdzić w innych klientach. (w wersji 9.63 i 10.00 alpha jest ten sam błąd) Wersja php: 5.2.6-2ubuntu4 Formularz: Skrypt
Wyjście skryptu (pliki są takie same, więc wyciąłem pięć ostatnich)
Jak widać tag </submission> jest ucięty. Wysłałem też formularz do netcata, oto "gołe" żądanie POST Kod POST / HTTP/1.1 User-Agent: Opera/9.63 (X11; Linux i686; U; en) Presto/2.1.1 Host: localhost:5000 Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: pl-PL,pl;q=0.9,en;q=0.8 Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Referer: http://v2.localhost/pages/upload.php Connection: Keep-Alive Content-Length: 2517 Content-Type: application/x-www-form+xml; charset=utf-8 <submission xmlns="uuid:d10e4fd6-2c01-49e8-8f9d-0ab964387e32"> <field name="id" index="0">0</field> <file name="strips" index="0" filename="1.png"> iVBORw0KGgoAAAANSUhEUgAAAAYAAAAHCAYAAAArkDztAAAABmJLR0QA/wD/AP+g vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wMNEDIzOKOyLQAAAIVJ REFUCNclyUEKwyAQQNGvDiS4Cr1CAu3ZcoAesotcpI2CTYiKOF30bZ9Z16eKCDFG tu1FrZlx9EgIH6wVzvPLdZ2UcmGMQUIIAJRSaK3RewdA9v1N751hGFiWB9ZanHP/ AJimG/N8x3tPzhmpNQNQaybGneNItNYQAFVFVUkp4ZxDVfkBuvlIywij5BoAAAAA SUVORK5CYII= </file> <file name="strips" index="0" filename="2.png"> iVBORw0KGgoAAAANSUhEUgAAAAYAAAAHCAYAAAArkDztAAAABmJLR0QA/wD/AP+g vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wMNEDIzOKOyLQAAAIVJ REFUCNclyUEKwyAQQNGvDiS4Cr1CAu3ZcoAesotcpI2CTYiKOF30bZ9Z16eKCDFG tu1FrZlx9EgIH6wVzvPLdZ2UcmGMQUIIAJRSaK3RewdA9v1N751hGFiWB9ZanHP/ AJimG/N8x3tPzhmpNQNQaybGneNItNYQAFVFVUkp4ZxDVfkBuvlIywij5BoAAAAA SUVORK5CYII= </file> <file name="strips" index="0" filename="3.png"> iVBORw0KGgoAAAANSUhEUgAAAAYAAAAHCAYAAAArkDztAAAABmJLR0QA/wD/AP+g vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wMNEDIzOKOyLQAAAIVJ REFUCNclyUEKwyAQQNGvDiS4Cr1CAu3ZcoAesotcpI2CTYiKOF30bZ9Z16eKCDFG tu1FrZlx9EgIH6wVzvPLdZ2UcmGMQUIIAJRSaK3RewdA9v1N751hGFiWB9ZanHP/ AJimG/N8x3tPzhmpNQNQaybGneNItNYQAFVFVUkp4ZxDVfkBuvlIywij5BoAAAAA SUVORK5CYII= </file> <file name="strips" index="0" filename="4.png"> iVBORw0KGgoAAAANSUhEUgAAAAYAAAAHCAYAAAArkDztAAAABmJLR0QA/wD/AP+g vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wMNEDIzOKOyLQAAAIVJ REFUCNclyUEKwyAQQNGvDiS4Cr1CAu3ZcoAesotcpI2CTYiKOF30bZ9Z16eKCDFG tu1FrZlx9EgIH6wVzvPLdZ2UcmGMQUIIAJRSaK3RewdA9v1N751hGFiWB9ZanHP/ AJimG/N8x3tPzhmpNQNQaybGneNItNYQAFVFVUkp4ZxDVfkBuvlIywij5BoAAAAA SUVORK5CYII= </file> <file name="strips" index="0" filename="5.png"> iVBORw0KGgoAAAANSUhEUgAAAAYAAAAHCAYAAAArkDztAAAABmJLR0QA/wD/AP+g vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wMNEDIzOKOyLQAAAIVJ REFUCNclyUEKwyAQQNGvDiS4Cr1CAu3ZcoAesotcpI2CTYiKOF30bZ9Z16eKCDFG tu1FrZlx9EgIH6wVzvPLdZ2UcmGMQUIIAJRSaK3RewdA9v1N751hGFiWB9ZanHP/ AJimG/N8x3tPzhmpNQNQaybGneNItNYQAFVFVUkp4ZxDVfkBuvlIywij5BoAAAAA SUVORK5CYII= </file> <file name="strips" index="0" filename="6.png"> iVBORw0KGgoAAAANSUhEUgAAAAYAAAAHCAYAAAArkDztAAAABmJLR0QA/wD/AP+g vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wMNEDIzOKOyLQAAAIVJ REFUCNclyUEKwyAQQNGvDiS4Cr1CAu3ZcoAesotcpI2CTYiKOF30bZ9Z16eKCDFG tu1FrZlx9EgIH6wVzvPLdZ2UcmGMQUIIAJRSaK3RewdA9v1N751hGFiWB9ZanHP/ AJimG/N8x3tPzhmpNQNQaybGneNItNYQAFVFVUkp4ZxDVfkBuvlIywij5BoAAAAA SUVORK5CYII= </file> </submission> Sądzę, że ma to jakiś związek z Content-length, jednak nie wiem która strona jest winna. Porównując długość danych w gedit z wartością w nagłówku, ta druga wydaje się wręcz za duża. (nie wiem czy gedit nie przekręca kodowania czy coś) Ten post edytował Wykladowca 18.01.2009, 15:56:26 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 12 Dołączył: 9.10.2008 Skąd: Tricity.Rumia() Ostrzeżenie: (0%) ![]() ![]() |
1. Porównując długość w notepad++ jest 2527
a w content 2517 sekwencja "ubmission>" ma 10 brakujących znaków. 2. nie wiem co to za typ: "application/x-www-form+xml" ale: Cytat Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
... Content-Type: application/x-www-form+xml; charset=utf-8 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 19.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jest to typ MIME służący do wysyłania XForms, a przez to też ich okrojonej wersji Web Forms 2
http://www.w3.org/TR/web-forms-2/#x-www-form-xml Dane post są wysyłane z przeglądarki do serwera, więc czy taki typ akceptuje przeglądarka nie ma tu znaczenia. Cóż, pozostaje wysłać raport o bugu do Opery. Rodzi się nowe pytanie: jak przekonać php by zignorowało Content-length? Bo wątpie żeby naprawili tego buga w stabilnych wydaniach na dniach. Wujek Google nie chciał mi podpowiedzieć... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 12 Dołączył: 9.10.2008 Skąd: Tricity.Rumia() Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że raczej php tu nic nie zdziała, wydaje mi się że za odbieranie danych od klienta odpowiedzialny jest server (Apache etc. )
BTW: Do FF i Mozilli jest wtyczka "Mozilla XForms". |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 19.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wtyczka obsługuje Xforms, ale już nie Web Forms 2. Te pierwsze mnie nie grzeją. Jakoś niezbyt uśmiecha mi się uczenie i pisanie czegoś, co jest obsługiwane przez wtyczki, a bez add-onów zamiast formularzy jest kaszana.
No to pozostaje swf lub wybieranie równo we wszystkich przegladarkach po jednym pliku. Chyba że dopiszę ratowanie wejścia w php. Rozwiązanie brzydkie, ale powinno działać póki nie zostanie obcięty sam ciąg z danymi obrazka. Jakby ktoś miał podobny problem: ew. można zrobić na serwerze obsługę archiwów, aby to obejść. Trzeba tylko wtedy uważać z kontrolą spakowanych plików. Nic więcej nie da się zrobić, winny znaleziony, ale problem nie rozwiązany. Nie wiem czy oznaczać [SOLVED] czy jakoś inaczej... DODANO:
Działa toto nawet (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) DODANO: Żeby zwiększyć ilość plików które można wysłać, dodałem tag do formularza wydłużający stałą końcówkę danych Formularz wygląda tak: a w skrypcie zmieniły się dwie liniki
Ten post edytował Wykladowca 20.01.2009, 12:50:02 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 13:52 |