Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]problem ze spacją metoda GET
hapek1
post 3.11.2011, 21:32:47
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 28.11.2009

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


witam
no więc najpierw do każdego atrybutu adresu przypisywana jest zmienna np.
  1. $string1 = $_GET['text1'];

później sprawdzam czy zmienna ma wartość null, jeśli tak to przypisuje do niej wartość
  1. if($string1 == null) $string1 = "Ble ble";


następnie mam formularz i w value mam te zmienne (aby po naciśnięciu OK i przeładowaniu strony nadal te dane były wpisane)
  1. echo "text 1 <input type=text name=text1 style=width:350px; value=$string1>";

na końcu zmienne są postawiane i generują obrazek (obrazke.php?text1=ble ble)

Problem polega na tym że jeśli w formularzu wpiszę dwa wyrazy oddzielone spacją to w adresie url będzie Ble+Ble i po przeładowaniu strony w formularzu będzie tylko Ble i na obrazku tylko Ble.
Jeśli przypisuję ręcznie zmienną i mam tam spację to używam  
Proszę o pomoc jak rozwiązać mój problem. Tak aby wyraz po spacji były w formularzu i na obrazku
Go to the top of the page
+Quote Post
croc
post 3.11.2011, 21:37:13
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Po prostu - zgodnie ze specyfikacją HTML - pozamykaj atrybuty w cudzysłowy.
Go to the top of the page
+Quote Post
hapek1
post 3.11.2011, 21:41:21
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 28.11.2009

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


ale gdy pozamykam w cudzysłowy to będzie kolidowało z cudzysłowem z echo, a jeśli dam apostrof to zmienna nie będzie działała.
Go to the top of the page
+Quote Post
lobopol
post 3.11.2011, 21:57:04
Post #4





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


to daj cudzysłowiom \"

Ten post edytował lobopol 3.11.2011, 21:57:57


--------------------
Go to the top of the page
+Quote Post
croc
post 3.11.2011, 21:58:52
Post #5





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Kiedyś walczyłem z zapisywaniem wszystkiego w cudzysłowach w PHP, ale to walka z wiatrakami. Jak chcesz zachować zapis w cudzysłowach, to w ich wnętrzu możesz użyć cudzysłowów jako znaków, poprzedzając je znakiem \ - czyli np.:
  1. echo "Lubię \"Trudne Sprawy\"";
Go to the top of the page
+Quote Post
hapek1
post 3.11.2011, 22:15:49
Post #6





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 28.11.2009

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


dodanie tych cudzysłowów nic nie daje.
gdy w formularzu wpisze zamiast spacji + to działa mi tak jak powinno, ale czy jest jakiś sposób aby gdy wpisze w formularzu spacje to żeby przekształcało na + (czyli z + na %2B)
Go to the top of the page
+Quote Post
by_ikar
post 3.11.2011, 22:23:48
Post #7





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


zamiast cudzysłowia w echo użyj apostrofu, raz że szybsze, to i czytelniejsze, nie trzeba escapować cudzysłowia w kodzie html:

Kod
echo 'text 1 <input type="text" name="text1" style="width:350px;" value="'.$string1.'">';


to są absolutne podstawy..
Go to the top of the page
+Quote Post
croc
post 3.11.2011, 22:24:07
Post #8





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Coś źle robisz, bo wysyłając dane metodą GET możesz mieć wszelkie znaki i one same się kodują do URL.
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: 2.05.2025 - 04:25