Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] i textarea
Forum PHP.pl > Forum > PHP
warzyk
Witam

Mam całkiem dziwny problem.
W formularzu mam TEXTAREA, do którego z założenia chcę wpisywać dość dużo tekstu. Później zawartość tego TEXTAREA jest przesyłana do php do dalszej obróbki.

I teraz problem: jeśli tekstu jest dużo to w $_GET zostanie on obcięty, co ciekawsze, jeśli ten obcięty tekst jeszcze raz zatwierdzę, to zostanie obcięty o kolejne 2 znaki i tak dalej i tak dalej.
np. tekst ma 800 znaków i z pierwszym razem zostaje z niego 738 znaków, później 736, 734, 732...
Problem pojawia się tylko przy długich tekstach > tekst o 300 znakach nie jest skracany...

Próbowałem przesyłać wszytko jako COOKIE (przez JS) i sprawa jest taka, że JS ustawia i odczytuje COOKIE prawidłowo - znaczy pełny tekst, a $_COOKIE z php odczytuje już tylko tą wartość skróconą tekstu.

I o co chodzi? Ktoś wie?

pozdrawiam
Warzyk
TomASS
Wina prawdopodobnie, albo leży po stronie serwera albo po stronie kodu php. Daj sobie:
  1. <?php
  2.  
  3. print_r($_POST);
  4.  
  5. ?>

i zobacz co z tego wyniknie.

Metodą Get można przesyłać małe ilości danych (do 1024) czyli tak jak u Ciebie, natomiast Post'em można o wiele większe zobacz.
warzyk
Sprawa jest taka, że $_POST nie używam, bo formularz nie jest 'submitowany' - przesyłanie zawartośći TEXTAREA robi JS.
Ogólnie sprawa wygląda tak: mam 2 ramki na stronie - tą z TEXTAREA i wykonawczą. Zawartość TEXTAREA poprzez JS jest wysyłana do ramki wykonawczej i tam obrabiana przez php i po tej obróbce za udziałem JS jest wpisywana spowrotem do TEXTAREA w ramce pierwszej. Wszystko to dzieje się bez udziału SUBMIT, tylko przez JavaScript.

Przesyłanie do ramki wykonawczej już próbowałem zrobić jako $_GET i COOKIE, ale za każdym razem php obcina tekst. Co jest dziwne, bo JS pokazuje tak jak należy...

Jeśli chodzi o kod to wygląda tak:
wysyłanie danych (już z ustawieniem COOKIE) do ramki wykonawczej:
  1. saveCookie('transfer', escape(value));
  2. parent.frames["HlpFrame"].location.href="HLP.php?trrg=" + trrg


kod w ramce wykonawczej:
  1. <?php
  2.  
  3. echo "<script>
  4.  alert(readCookie('transfer'));
  5.  </script>";
  6.  echo "<br>ciasteczka:<br> ";
  7.  print_r($_COOKIE);
  8.  echo "<br>";
  9. ?>

- tutaj ALERT pokazuje cały tekst z TEXTAREA, a PRINT_R już tylko wycinek...



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