![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 8.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam dziwny problem. Na serwerze lokalnym Apache wszystko jest w porządku ale gdy operację wykonuję już na serwerze w sieci to już jest źle.
Operacją tą jest edycja stylu css. Stworzyłem sobie pole textarea w którym z pliku wczytuję arkusz stylu. Edytuję sobie ten styl itp. Chcę zapisać zmiany - i te zmiany się zapisują - ale oprócz tego przed wszystkimi cudzysłowami i apostrofami w tym arkuszu dodaje mi się znak \ backslash. Mało tego za każdym razem jest ich coraz więcej. Najpierw są 3, przy drugiej edycji już jest ich 7, przy trzeciej - 14. Wygląda to tak: Normalnie: background-image: url('../tlo.jpg'); Po edycji: background-image: url(\\\'../tlo.jpg\\\'); Po drugiej edycji: background-image: url(\\\\\\\'../tlo.jpg\\\\\\\'); Skąd to się bierze? Generalnie cały proces wygląda tak: 1. Wczytuję do zmiennej treść pliku: $tresc = file_get_contents($path); gdzie $path to ścieżka do tego pliku 2. Wartość zmiennej $tresc ląduje w textarea -> jest dobrze. 3. Textarea jest w formularzu <form> i po kliknięciu na przycisk "zapisz" wartość tego textarea idzie do zmiennej i dalej 4. Jest taki kod: $tresc = $_POST['tresc']; <<<tresc to nazwa textarea $file = fopen($path, 'w'); fputs($file, $tresc); fclose($file); Już w momencie przepuszczenia kodu z textarea przez $_POST do zmiennej dodają się te backslashe. Sprawdziłem to robiąc echo zamiast zapisywania do pliku. Zrobiłem jeszcze jeden test i tak: zamiast kodu css ustawiłem, że wartość zmiennej $tresc jest równa dsafd"afsdf'. Po przepuszczeniu jej przez $_POST już ten ciąg znakowy wygląda tak: dsafd\\\"afsdf\\\'. Co robić? Ten post edytował Majewicz 2.12.2011, 19:55:40 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 02:00 |