Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]dodawanie znakó # i &
kamilo818
post 21.02.2014, 15:08:04
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


Witam,
mój problem polega na tym żę gdy próbóje przesłać przez formularz do bazy danych tekst który zawiera znak # albo & to tekst nie zostaje zapisany do bazy. Czemu może się tak dziać?
Go to the top of the page
+Quote Post
Turson
post 21.02.2014, 15:12:52
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Pokaż zapytanie
Go to the top of the page
+Quote Post
kamilo818
post 21.02.2014, 15:32:18
Post #3





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function() {
  4. var content = $('.main');
  5. $('input.button').click(function(e) {
  6. var nr = $(this).attr('id');
  7.  
  8. var image = $('#image'+nr).val();
  9. var title = $('#title'+nr).val();
  10. var tresc = $('#tresc'+nr).val();
  11. var link = $('#link'+nr).val();
  12.  
  13. tresc=tresc.replace(/(\r\n|\n\r|\r|\n)/g, "<br>");
  14.  
  15.  
  16. var dataString = 'image='+ image + '&title=' + title + '&tresc=' + tresc + '&link=' + link + '&nr=' + nr;
  17.  
  18. if(!confirm('Czy na pewno poprawić wpis?')){
  19. return false;
  20. }
  21.  
  22. $.ajax({
  23.  
  24. url: ('edit.php'),
  25. data: dataString,
  26.  
  27. success: function(obj){
  28. content.html(obj);
  29. }
  30.  
  31. });
  32. e.preventDefault();
  33. });
  34.  
  35. });
  36.  
  37. </script>
  38.  
  39. <?php
  40. require_once ('../../functions.php');
  41. connect($adres, $user, $pass, $baza);
  42.  
  43. if ($_GET['image']!="" && $_GET['title']!="" && $_GET['tresc']!="" && $_GET['link']!="") {
  44. $image = $_GET['image'];
  45. $title = $_GET['title'];
  46. $tresc = $_GET['tresc'];
  47. $link = $_GET['link'];
  48. $nr= $_GET['nr'];
  49.  
  50. mysql_query("UPDATE example SET image='$image', title='$title', tresc='$tresc', link='$link' WHERE id='$nr'");
  51. }
  52.  
  53. $zapytanie = "SELECT * FROM `example` ";
  54. $wynik = mysql_query($zapytanie);
  55.  
  56. $ilosc = mysql_num_rows($wynik);
  57. while ($row = mysql_fetch_row($wynik)) {
  58.  
  59. echo "<div style='border-bottom:1px solid; width:500px;margin:10px;'>
  60. <input type='text' value='".$row[0]."' class='edit' ><br>
  61. <input type='text' value='".$row[1]."' class='edit' id='image".$row[0]."'><br>
  62. <input type='text' value='".$row[2]."' class='edit' id='title".$row[0]."'><br>
  63. <textarea class='edit' id='tresc".$row[0]."'>".preg_replace('#<br\s*/?>#i', "\n", $row[3])."</textarea><br>
  64. <input type='text' value='".$row[4]."' class='edit' id='link".$row[0]."'>
  65. <input type='button' value='Edit' class='button' id='".$row[0]."'>
  66. </div>" ;
  67.  
  68. };
  69.  
  70.  
  71.  
  72. koniec($adres, $user, $pass);
  73. ?>
Go to the top of the page
+Quote Post
Turson
post 21.02.2014, 16:27:49
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. mysql_query("UPDATE example SET image='$image', title='$title', tresc='$tresc', link='$link' WHERE id='$nr'");

zamień na
  1. mysql_query("UPDATE example SET image='$image', title='$title', tresc='$tresc', link='$link' WHERE id='$nr'") or die(mysql_error());

powinno wskazać błąd
Go to the top of the page
+Quote Post
kamilo818
post 21.02.2014, 22:25:50
Post #5





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


Nie wyrzuca żadnego błędu.

Doszedłem do tego, że po dodaniu to tekstu # albo &, ajax wysyła go w adresie do strony:
  1. edit.php?image=cos####


ale php już nie wyłapuje tego metodą get:
  1. if ($_GET['image']!="" && $_GET['title']!="" && $_GET['tresc']!="" && $_GET['link']!="") {
  2. $image = $_GET['image'];
  3. $title = $_GET['title'];
  4. $tresc = $_GET['tresc'];
  5. $link = $_GET['link'];
  6. $nr= $_GET['nr'];
  7.  
  8.  
  9. mysql_query("UPDATE example SET image='$image', title='$title', tresc='$tresc', link='$link' WHERE id='$nr'")or die(mysql_error());
  10. }


Jakiś pomysł?
Go to the top of the page
+Quote Post
_Borys_
post 21.02.2014, 23:21:56
Post #6





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


Dodaj do ajaxa
type: 'post',
jak to nie pomoże to można stosować encodeURIComponent() ale nie na całym dataString tylko na title,tresc,link itp.
i potem dołączać do dataString
Po stronie php sprawdzaj $_POST
Jakby coś to po stronie php można użyć urldecode() do zdekodowania.

Ten post edytował _Borys_ 21.02.2014, 23:28:00
Go to the top of the page
+Quote Post
kamilo818
post 21.02.2014, 23:41:21
Post #7





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


Działa po zmianie na POST. Dzieki
Go to the top of the page
+Quote Post
_Borys_
post 21.02.2014, 23:50:00
Post #8





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


Mogą być problemy pomimo tego. Jeśli w tresci lub innych będzie znak &
Lepiej przez encodeURIComponent()
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.06.2024 - 08:11