Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Wysyłanie danych w AJAXie, Metodą POST
decha-design
post 18.08.2008, 20:09:15
Post #1





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Witam was wszystkich,

Cóż, mam wybitny problem z krzakami wysyłanymi przy pomocy jQuery, a dokładnie ajaxem do skryptu i wrzucenie tego do bazy lub pliku, jeden piernik ...

Próbowałem już chyba wszystkiego, szukałem tutaj na forum, znalazłem odpowiedź ale niestety nie działa. Zrobiłem tak:

Początek, zaraz za <body>:
  1. <script type="text/javascript">
  2.  
  3. $.ajaxSetup({
  4. type: "POST",
  5. contentType: "application/x-www-form-urlencoded; charset=iso-8859-2"
  6. });
  7.  


Wykonanie akcji:
  1. $.post("url.php", { name: value, id: id } );


No i sam skrypt php:
  1. <?php
  2. header('Content-Type: text/html; charset=iso-8859-2');
  3.  
  4. $_POST['name'] = (string)$_POST['name'];
  5. $_POST['id'] = (int)$_POST['id'];
  6.  
  7. $_POST['name'] = mysql_real_escape_string($_POST['name']);
  8. $_POST['id'] = mysql_real_escape_string($_POST['id']);
  9.  
  10. $_POST['name'] = addslashes($_POST['name']);
  11. $_POST['id'] = addslashes($_POST['id']);
  12.  
  13. $db -> query("SET NAMES `latin2`");
  14.  
  15. $db -> query("UPDATE `".$prefix."categories` SET `name`='".$_POST['name']."' WHERE `id`='".$_POST['id']."'");
  16. ?>


Żadna funkcja filtrująca nie robi problemu (raczej), bo wyłączyłem wszystkie na próbę - efekt ten sam ...

Kompletnie nie wiem jak to naprawić. Owszem mogę zmienić na UTF-8, ale za dużo roboty, bo pliki z tekstem mam już w iso-8859-2 i jakoś bardziej mi leży to kodowanie. Dodatkowo mogę wspomnieć, że błąd jest na bank, 100% w jQuery, ponieważ dodawanie wpisu do bazy normalną metodą, po prostu POSTem działa bez najmniejszych problemów ...

btw. kodowanie tabeli bodajże latin2_general_ci ..

Pzdr.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
paziek
post 19.08.2008, 12:49:09
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

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


plik ze skryptem oraz z formularzem są w iso-8859-2?
Spróbuj po stronie PHP
  1. <?php
  2. $_POST['name']=inconv('utf-8','iso-8859-2',$_POST['name']);
  3. ?>
Go to the top of the page
+Quote Post
decha-design
post 19.08.2008, 13:38:37
Post #3





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Wiem, tak też zrobiłem ... ale nie koniecznie na każdym serwerze może być obsługa iconv .. chyba że jest standardowo ...

Może wie ktoś jak zrobić polskie znaki bez iconv?


--------------------
Go to the top of the page
+Quote Post
paziek
post 19.08.2008, 14:35:43
Post #4





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

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


Jest jeszcze recode, mb_convert_encoding i może coś jeszcze.
Zazwyczaj będziesz miał je wszystkie, a powinno być przynajmniej jedno z nich.. chyba, że masz gównianego hosta jakiegoś.

Nie da się jakoś zamienić krzaczków utf-8 na iso-8859-2 za pomocą (np.) str_replace i tym podobnym. Chociaż mogę sie mylić..
Go to the top of the page
+Quote Post
decha-design
post 19.08.2008, 16:23:34
Post #5





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Da się, bo przy utf-8 na iso są krzaki a nie questionmark.gif ... więc bez problemu, ale po co? =)

No cóż, widać że nic z tego ... zostajemy przy iconv. Hosta mam na netlook, bardzo dobry ale regulamin jest straszny więc nie wiadomo czy będzie to tam dzialać - nie sprawdzałem bo pisze skrypt na localhoście ...


--------------------
Go to the top of the page
+Quote Post
paziek
post 19.08.2008, 17:04:06
Post #6





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

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


Tak, ale te krzaczki się powtarzają dla różnych odpowiedników w polskim języku.
Np. masz krzaczek X dla ą oraż ł.
Skąd będziesz wiedział na co zamienić?

Tak jak mówiłem, funkcje do konwersji w PHP to raczej standard (aczkolwiek da się skompilować bez ich obsługi), także nie masz się co martwić. Każdy host, który ich nie udostępnia, jest niepoważny :<
Go to the top of the page
+Quote Post
decha-design
post 19.08.2008, 21:15:06
Post #7





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


No to tyle w tej kwestii =) Wielkie dzięki za poradę / wytłumaczenie / opisanie hostów ... niepotrzebne skreślić.

Najwyżej w instalatorze zrobię (jeżeli w ogóle będzie) sprawdzanie bibliotek albo cuś ...

jeszcze raz dzięki ...


--------------------
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