Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][PHP] Znaki specjalne w przesyłaniu formularza.
unw
post
Post #1





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

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


Witam. Mam delikatny problem jeżeli chodzi o przesyłanie znaków specjalnych w formularzu.

Krótki kod java:

  1.  
  2. $( "#wyslij" ).click(function () {
  3.  
  4. var name=$("#nazwamodela").val();
  5. var adresclass=$("#adresclass").val();
  6. var address=$("#adres").val();
  7. var name_c = encodeURIComponent(name);
  8.  
  9. /*------------------call ajax for Add record--------------------------*/
  10. $.ajax({
  11. type: "POST",
  12. url: "dodaj.php",
  13. data: "action=add&name="+ name_c+"&address="+ address,
  14.  
  15. success: function(data){
  16. $('#result2').html("<div class='alert alert-success'>"+data+"</div>");
  17. //window.location.href="panel.php?p=model";
  18. /*---------------------*/
  19. $("#nazwamodela").val('');
  20. $("#adresclass").val('');
  21. $("#adres").val('');
  22.  
  23. /*-----------------------*/
  24. }
  25. });
  26. /*------------------call ajax for Add record--------------------------*/
  27. });
  28.  
  29.  



W php wygląda to tak:

  1. function add()
  2. {
  3.  
  4. global $polaczenie; // Ustawiamy globalne połączenie, które będzie działać w funkcji.
  5. $nazwa = htmlspecialchars($_POST['name']);
  6.  
  7.  
  8. $address = htmlspecialchars($_POST['address']);
  9.  
  10.  
  11. $sql = "insert into sponsor(tytul,adres) values('$nazwa','$address')";
  12. if (mysqli_query($polaczenie, $sql)) {
  13. echo "ok.";
  14. } else {
  15. echo "Could not update: " . mysqli_error($polaczenie);
  16. }
  17.  
  18.  
  19. }
  20.  
  21.  
  22.  
  23.  



I teraz załóżmy dodaję nowy wpis o treści:
i'm fine thanks

wyskakuje mi info:
  1. Could NOT UPDATE: You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MariaDB server version FOR the RIGHT syntax TO USE near 'm fine thanks','Opis')' at line 1



Jak to rozwiązać?

Ten post edytował unw 11.03.2021, 17:13:37
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Albo zrob porzadne escapowanie, ktore udostepnia mysqli a nie zadne htmlspecial chars
Albo lepiej - uzyj bindowania.

Co wy wszyscy z tym htmlspecialchars... plaga jakas. Toz to sluzy zupelnie czemu innemu
Go to the top of the page
+Quote Post
unw
post
Post #3





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

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


Faktycznie.
Użyłem PDO. Dzięki za podpowiedź (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


I na marginesie: "Krótki kod java:" Ten kod koło Javy nigdy nie stał. To Javascript.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Użyłem PDO. Dzięki za podpowiedź


Nie mowie, ze zle zrobiles, bo sam polecam PDO, ale bindowanie masz tez w mysqli, ktorego uzywales (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 09:05