Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Źle przesyłane dane z edytora "ckeditor", złe przesłanie danych
bleeder
post 11.08.2009, 22:50:14
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 30.06.2008

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


Witam
Mam problem z edytorem "ckeditor" (http://nightly.ckeditor.com/ wersja 4098 ). Zainstalowałem pod własnym prosty systemem cms edytor "ckeditor" którym wprowadzam i edytuję dane na stronie internetowej. Problem polega na tym żę przesyłane dane do wprowadzenia są modyfikowane - wszystko ładnie działa na localu (Wamp Server) ale gdy już zainstalowalem na hostingu w necie (hsting: nazwa.pl z php5 ) to sam edytor lub php modyfikuje mi wprowadzone dane sad.gif
W pliki strony wywołuję funkcję:
  1. <?php $zmienna = $_GET['zmienna']; $dane = $_POST['dane']; edytor_tresc($zmienna, 'index.php', $dane ); ?>

gdzie $dane to dana treść strony która jest przesyłana a $zmienna to zmianna która określa stan co ma się wyświetlać: czy edytor, podgląd czy zapis (sprawdza to case )

Wstawianie wygląda tak: w edytorze za pomocą funkcji "Obrazek" wpisuję ścieżkę do pliku i wstawiam obraz do edytora, poniżej wpisuję przykładowy tekst i klikam zapisz.
Edytor wysyła dane w postaci:
  1. <p> <img alt="" height="90" src="images/ofirmie.jpg" width="180" /><img alt="\" height="\" images="" src="\" width="\" /></p>
  2. <p> przykładowy teskt !</p>

do funkcji która wyświetla mi podgląd danej strony przed zapisem. Dane które trafiają do podglądu nie wyświetlają już danego obrazka tylko sam tekst a kod źródłowy strony wygląda tak:
  1. <img alt=\"\" height=\"90\" src=\"images/ofirmie.jpg\" width=\"180\" /><img alt=\"\\\" height=\"\\\" images=\"\" src=\"\\\" width=\"\\\" /></p>
  2. <p> przykładowy teskt !</p>

Po przesłaniu danych za pomocą zmiennej zostały wstawione znaki \" w ścieżce. Nie wiem w gdzie jest błąd? czy to wina edytora czy gdzieś w php. Na localu działa dobrze, oraz testowałem inną wersje edytora (stabilną - i to samo).
Dane przesyłam za pomocą kodu:
  1. function edytor_tresc($zmienna, $strona, $dane ){
  2.  
  3. global $_SESSION;
  4. if (isset($_SESSION['prawid_uzyt']))
  5. {
  6. switch($zmienna){
  7.  
  8. case'edycja_przed' :
  9. ?>
  10. <form action="<?php $strona ?>?zmienna=<?php echo 'podglad_po'; ?>&zmienna2=<?php echo 'podglad_po'; ?>" method="post">
  11.  
  12. <textarea class="ckeditor" id="editor1" name=dane>
  13. <?php strony_pobierz_dane_tresc($strona); ?>
  14. </textarea>
  15. </form>
  16.  
  17. <?php break;
  18.  
  19. case'edycja_po' :
  20. $dane = $_SESSION['dane'];
  21. ?>
  22. <form action="<?php $strona ?>?zmienna=<?php echo 'podglad_po'; ?>&zmienna2=<?php echo 'podglad_po'; ?>" method="post">
  23.  
  24. <textarea class="ckeditor" id="editor1" name=dane>
  25. <?php echo $dane; ?>
  26. </textarea>
  27.  
  28. </form>
  29. <?php break;
  30.  
  31. case'podglad_po' :
  32.  
  33. $_SESSION['dane'] = $dane;
  34. echo $dane;
  35.  
  36. break;
  37.  
  38. case'zapis' :
  39.  
  40. $dane = $_SESSION['dane'];
  41. echo $dane;
  42. strony_edytuj_dane_tresc($strona, $dane);
  43.  
  44. break;
  45.  
  46. case'podglad_przed' :
  47. strony_pobierz_dane_tresc($strona);
  48. break;
  49.  
  50. default:
  51.  
  52. strony_pobierz_dane_tresc($strona);
  53.  
  54. break;
  55. }
  56.  
  57. }else {
  58. strony_pobierz_dane_tresc($strona);
  59.  
  60. }
  61. }

zmienna "dane" przesyła dane do funkcji którą odbiera i je wyświetla lub edytuje w zależności który case jest wykonywany.
Funkcja case:
1 - case: "edycja_przed" to wyświetlanie danych w edytorze pobranych z bazy (przed edycją), - następuje po kliknięciu przyciski Zapisz w edytorze kiedy strona się przeładowuje a zmodyfikowane dane za pomocą $dane = $_POST['dane']; trafiają do zmiennej $dane i wywołuje się
2 - case: "podglad_po" gdzie zmienną $dane zapisuje się w sesji i wyświetla podgląd zmodyfikowanego tekstu. Dane są wpisywane do sesji gdyż użytkownik może wrócić i zmodyfikować to co zmienił przed chwilą - wtedy wywoła się case: "edycja_po" -> w takim przypadku po ponowny przesłaniu treści do edycji kod strony znowu się zmodyfikuję i wygląda tak:
  1. <p> <img alt="\" height="\" images="" src="\" width="\" /><img alt="\" height="\" images="\" src="\" width="\" /></p>
  2. <p> przykładowy teskt !</p>

ścieżka do pliku całkowicie zniknęła sad.gif
Case: "zapis" zapisuje dane w bazie a case: "podglad_przed" pokazuje ogólny podgląd strony po zapisaniu.
Dziwne jest też to że jeśli wstawię zdjęcie i one wyświetli mi się w edytorze, kliknę na Zapisz gdzie wyświetli mi się już podgląd na którym nie mam tego zdjęcia, następnie klikam na zapisz by zapisało mi się to w bazie danych i gdy wyświetlam stronę internetową która pobiera dane z bazy to obrazek się pojawia smile.gif

Tak naprawdę nie wiem gdzie jest błąd... prawdo dobnie php modyfikuje mi znaki jak je przesyłam.
Będę bardzo wdzięczny za wskazówkę lub pomoc jak rozwiązać ten problem.
ps. jak coś jest nie jasne to z góry przepraszam.. jak by co to mogę umieścić gdzieś przykład do testów.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
erix
post 11.08.2009, 23:21:49
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Po przesłaniu danych za pomocą zmiennej zostały wstawione znaki \" w ścieżce. Nie wiem w gdzie jest błąd? czy to wina edytora czy gdzieś w php. Na localu działa dobrze, oraz testowałem inną wersje edytora (stabilną - i to samo).

Nie masz gdzieś magic_quotes włączone?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
bleeder
post 12.08.2009, 08:40:28
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 30.06.2008

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


Dzięki wielkie za podpowiedź - to było to!

Tak dla informacji sprawdziłem za pomocą skryptu:
  1. <?php
  2. ?>

czy mam włączone te funkcje - gdzie:
"magic_quotes_gpc dodaje nam backslashe w tablicach Get, Post oraz Cookie przed znakami cudzysłowów"
a "magic_quotes_runtime tak samo jak wyżej, ale dodaje backslashe w danych z zewnętrznych źródeł (baza mysql, otwierane pliki)"

Wynik skryptu pokazał mi 1 0 czyli pierwsza funkcja była włączona sad.gif
Próbowałem dokonać zmian za pomocą pliku ini.php i wpisu
  1. magic_quotes_gpc =Off

ale to nie zadziałało. Pomógł plik .htaccess i wpis:
  1. php_flag magic_quotes_gpc off
  2. php_flag magic_quotes_runtime off

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: 14.08.2025 - 07:46