Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP] Znaki specjalne w przesyłaniu formularza.
Forum PHP.pl > Forum > Przedszkole
unw
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ć?
nospor
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
unw
Faktycznie.
Użyłem PDO. Dzięki za podpowiedź smile.gif
viking
I na marginesie: "Krótki kod java:" Ten kod koło Javy nigdy nie stał. To Javascript.
nospor
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 wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.