Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kłopotlowy problem z ilością danych przesyłanych z PHP do SQL
Forum PHP.pl > Forum > PHP
blackstone

Zmagam się z problemem który swoim istnieniem mnie mocno zaskoczył. Problem wygląda w ten sposób że jeśli chce przesłać dłuższy tekst do bazy danych to po prostu jest to niemożliwe ( tekst który chciałbym przesłać ma 3895 - na podstawie skryptu js który napisałem by policzyć znaki pod ten problem). Ale z tekstami krótszymi wszystko zapisuje się normalnie jakby nigdy nic. Szukałem w internecie jakiś rozwiązań, które ostatecznie nie pomogły. Początkowo myślałem że chodzi o ograniczenia w ilości znaków zmiennej post, lecz gdy przesłałem ten długi tekst i wydrukowałęm sobie zawartość zmiennej post ( print_r($_POST) ) z tego co widziałem wynikało że wszystkie dane zostały przekazane !

W celu rozwiązania tego problemu zrobiłem następujące rzeczy

a) w pliku php.ini max_input_vars nastawiłem na 10000 a post_max_size na 100

cool.gif na początku pliku php który zapisuje mi informacje w bazie sql dałem ini_set('max_input_vars','10000');

c) kolumna w bazie danych danych która ma mieścić długie teksty zostala znastawiona na 10000 znaków w typie varchar

Problem jest o tyle kłopotliwy że napracowałem się nad własnym portalikiem i nie mogę rzucać dłuższych artykułów. Poniżej przedstawiam kod skryptu php za pomocą którego staram się rozwiązać problem ( to radykalnie uproszczony skrypt tamtego właściwego pliku, ale problem ten sam ) . Z góry dziękuję za odpowiedzi smile.gif

  1.  
  2. <html>
  3. <head>
  4. <meta charset="utf8" />
  5. <script type="text/javascript" src="jquery.js"></script>
  6. <script type="text/javascript" >
  7.  
  8. function miernik() // mierzenie i wyświetlanie ilości znaków w textarea
  9. {
  10. var take = document.querySelector('#tekst') ;
  11. var take2 = take.value ;
  12. alert(take2.length) ;
  13.  
  14. }
  15.  
  16.  
  17. </script>
  18. </head>
  19. <body>
  20. <br>
  21. <br><a href="mega.php">odśwież</a>
  22. <br>
  23. <br><input type="submit" onclick="miernik()" value="ile_znaków" />
  24. <br>
  25. <form action="" method="POST">
  26. <br><input type="text" name="title" />
  27. <br><textarea id="tekst" name="tekst"></textarea>
  28. <br><input type="submit" value="ENTER" />
  29. </form>
  30. <?php
  31.  
  32. ini_set('max_input_vars','10000');
  33.  
  34. // C:\WebServ\php\php.ini
  35.  
  36. $title = $_POST['title'] ;
  37. $tekst = $_POST['tekst'] ;
  38.  
  39.  
  40. if(!empty($_POST))
  41. {
  42.  
  43. mysql_connect('localhost','root','') ;
  44. mysql_select_db('test') ;
  45.  
  46. $to = "insert `teksty` set `title`='".$title."' , `tekst`='".$tekst."' " ;
  47. $qr = mysql_query($to) ;
  48.  
  49. if($qr)
  50. echo '<br>______YES YES YES ' ;
  51. else
  52. echo '<br>____We have problem, sir ' ;
  53.  
  54. print_r($_POST) ;
  55.  
  56.  
  57.  
  58.  
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ?>
  71.  
  72. </body>
  73. </html>
  74.  
viking
Zapewne jest tam znak specjalny '. Rozszerzenie mysql już zostało usunięte, poczytaj komunikat na stronie dokumentacji. Ale jeśli bardzo musisz to mysql_real_escape_string
blackstone
Dzięki , mysql_real_escape_strin pomogło smile.gif

ALe nie wiem o co chodzi z tym komunikatem, możesz coś wiecej powiedzieć ? Szukałem tego, ale jakoś niczego nie wyłapałem
viking
Wejdź w jakakolwiek funkcję mysql. Wielkie czerwone ostrzeżenie.
https://prophp.pl/advice/show/3/korzystam_z...ed._dlaczego%3F
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.