Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] formularze i bledne przekazywanie
JarekG
post 4.10.2007, 15:20:45
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2006

Ostrzeżenie: (0%)
-----


Witam.
Mam taki maly problem z formularzami w php oraz w przekazywaniu zmiennych przy uzyciu metody GET.
Mianowicie. Strona ma konstrukcje dwustronna (ramki). Po lewej stronie znajduje sie menu, a po prawej zawartosc.
Mam formularz ktory sklada sie z inputa text i listy. Sluzy on do czegos w rodzaju recznego generowania identyfikatora. W pierwszym polu wpisuje sie jakas unikalna nazwe a w drugim polu wybiera sie z listy mozliwe opcje. Formularz odwoluje sie do osobnego pliku, ktory odpowiednio generuje sobie ten identyfikator i zwraca (powinien) w GET odpowiednie parametry.
Problem polega na tym, ze w momencie kiedy wyswietlam strone w ramce i w pisze np. w pole tekstowe polskie znaki to pojawia sie problem, bo ich nie wyswietla, a zamiast 'ł' robi 'b'. Druga sprawa jest taka, ze w momencie kiedy wybierze sie z pola opcji cos w stylu "Unikalna nazwa & cos tam" to ucina ja do momentu '&' (zapewne dlatego ze jest to 'znak specjalny' rozpoznawany na swoj sposob w php). Nie jest to raczej wina kodowania, bo mam kilka takich formularzy i tylko ten konkretnie nie dziala. Malo tego, reszta jest zrobiona metoda kopiuj/wklej/wytnij to co niepotrzebne z tego pierwszego i jest ok. Konstrukcja dokumentow jest tez identyczna. Najwieksze jajo jest z tym, ze w momencie kiedy sobie otworze ramke w osobnym oknie, to prawie wszystko dziala. Prawie... tzn. przyjmuje polskie znaki ale konwertuje je na 'bezogonkowe' a pola ze znakami specjalnymi z <options> ucina.
W momencie pierwszego przekazania zmiennych w GET z formularza do skryptu generujacego identyfikator jest wszystko ok (wpisalem sobie pomocniczo print $GET_['costam']; i pokazuje to dobrze. W momencie kiedy ma ponizej wpisane :
  1. <?php
  2. echo ("<meta http-equiv=\"Refresh\" content=\"4;url=skrypt.php?arg1={$_GET['arg1']}&arg2={$_GET['arg2']}\">");
  3. ?>

i wraca do pliku pierwotnego, tworzy sie jakies badziewie i ucina to co napisalem lub rekonwertuje.
Plik do generowania identyfikatora nie ma nic innego za zadanie niz tylko przeczytac dane z formularza, wstawic je w adres i wrocic z tymi zmiennymi spowrotem, zeby instrukcja if wiedziala, ze sa ustawione. Wiem ze mozna to zrobic w mniej skomplikowany sposob (chociazby w form action wpisac skrypt.php smile.gif - i wtedy dziala), ale nie chodzi o to. Testuje sobie pewne sprawy i bawie sie troche, wiec chcialbym sie dowiedziec w czym lezy problem....

Dziekuje za pomoc.
Pozdrawiam
JG

Ten post edytował JarekG 4.10.2007, 15:24:49
Go to the top of the page
+Quote Post
PawelC
post 5.10.2007, 08:53:27
Post #2





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

Ostrzeżenie: (0%)
-----


A dlaczego przekazujesz zmienne metodą GET, a nie POST?? Hmm bład który Ci wyświetla źle znaki może być dlatego że powiedzmy plik formularz.php i np. wykonaj.php mogę mieć inne kodowanie lub niemają zdefiniowanego.
Go to the top of the page
+Quote Post
JarekG
post 7.10.2007, 20:12:31
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2006

Ostrzeżenie: (0%)
-----


Hmm.. kodowanie maja okreslone to samo.
Dlaczego przekazuje GET-em. Bo jest mi wygodniej. Formularz w calosci posiada pola do wypelnienia, ktore sa w zaleznosci od identyfikatora przechowywane w bazie. Po dodaniu rekordu do bazy, formularz sie przeladowywuje i pokazuje to co zostalo juz dopisane. Jesli dodaje wiele rekordow, zmienna przechowywana w POST (ten wlasnie unikalny identyfikator) by mi zniknela. Dlatego przekazuje GET-em. Reszta formularza idzie w POST.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:56