Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przy zapisie do pliku, generują się znaki
glass
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 23.03.2007
Skąd: United Kingdom

Ostrzeżenie: (10%)
X----


witam mam dziwny błąd, otóż chodzi o odczyt z pliku i zapis.. przy tej prostej operacji skrypt automatycznie generuje mi dodatkowe znaki... wykonuje akcję na dwa sposoby w obydwu przypadkach jest tak samo .. kod wygląda tak:

  1. <?php
  2. /*odczytuje plik*/
  3. $o=fopen("kursyonline.txt","r");
  4. $p=fread($o, filesize("kursyonline.txt"));
  5. $dane=explode(";", $p);
  6. $pp=$dane[0];
  7. fclose($o);
  8. ?>


  1. <?php
  2. /*przekazuje formularzem zmienne*/
  3. <form action=\"dostep.php\" method=\"post\">
  4. <textarea cols=\"100\" rows=\"25\" name=\"zawartosc\">$pp</textarea><br>
  5. <input type=\"hidden\" name=\"kursyonline\" value=\"<Dodaj>\">
  6. <input type=\"hidden\" name=\"zapis\" value=\"ok\">
  7. <input type=\"submit\" value=\"Zapis\">
  8. </form>
  9.  
  10. <form action=\"../../index01.php#kursyonline\" method=\"post\">
  11. <input type=\"hidden\" name=\"dostep\" value=\"myaccount\">
  12. <input type=\"submit\" value=\"Anuluj\">
  13. </form>
  14. ");
  15. ?>

i tu skrypt zapisuje wcześniejsze informacje z pola tekstowego do pliku, bardzo proste

  1. <?php
  2. $zawartosc=$_POST['zawartosc'];
  3.  
  4. $o=fopen("kursyonline.txt","w");
  5. fputs($o, $zawartosc);
  6. fclose($o);
  7. ?>


zawartość pliku wygląda tak:

  1. <a name="kursyonline"></a>
  2. <a href="#surferup" class="wpis">_Kursy on-line</a><br />


zawartość pliku po zapisie wygląda tak:

  1. <a name=\"kursyonline\"></a>
  2. <a href=\"#surferup\" class=\"wpis\">_Kursy on-line</a><br />


zapisuje drugi raz i wygląda tak:

  1. <a name=\\\"kursyonline\\\"></a>
  2. <a href=\\\"#surferup\\\" class=\\\"wpis\\\">_Kursy on-line</a><br />


no kto albo co na Odyna dodaje mi znaki gratis ... pless pomóżcie może ktoś wie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Pozdrawiam!

Ten post edytował glass 5.04.2008, 04:21:05
Go to the top of the page
+Quote Post
wlamywacz
post
Post #2





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Magic quotes?
Go to the top of the page
+Quote Post
artega
post
Post #3





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

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


Na początku skryptu dodaj
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $zawartosc=$_POST['zawartosc'];
  3.  
  4. $o=fopen("kursyonline.txt","w");
  5. fputs($o, stripslashes($zawartosc));
  6. fclose($o);
  7. ?>

A przy edycji pliku tez musisz dac stripslashes bo sie dodaja stare + nowe \
Go to the top of the page
+Quote Post
glass
post
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 23.03.2007
Skąd: United Kingdom

Ostrzeżenie: (10%)
X----


dobra dzięki już to mam, swoją drogą to dosłownie nie wiedziałem o co 'włamywaczowi' chodziło.. (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) ))

dowiedziałem się ze 'magic_quotes' to mechanizm obronny i jego konfiguracja jest ustawiona na on w php.ini, czyli będą wstawiane znaki ucieczki, ale zależ mi by było odwrotnie, próbowałem zastosować zdanie zaproponowane przez 'artega'


jednak to niczego nie zmienia..

dopiero użycie 'stripslashes' rozwiązuje problem mój problem..

może ktoś wyjaśni do czego jest wyżej cytowane zdanie i czy jest potrzebne ?
Go to the top of the page
+Quote Post
marcio
post
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Nie wiem php.ini nie znam tak dobrze ale moze byc tak ze nie mozesz zmieniac ustawien twojego serva/strony www wiec musisz uzyc stripslasles
Go to the top of the page
+Quote Post
artega
post
Post #7





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

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


Cytat
może ktoś wyjaśni do czego jest wyżej cytowane zdanie i czy jest potrzebne ?

W przypadku gdy domyślnie konfiguracja php magic_quotes_runtime jest ustawiona to funkcje, które zwracają wynik z zewnętrznych źródeł np. file_get_contents dodaje znak "ucieczki" przed apostrofem i cudzysłowem. Dla zobrazowania tego przykładu sprawdź jak działa poniższy kod:
  1. <?php
  2.  
  3.  
  4. $file = file_get_contents("test");
  5.  
  6. echo $file;
  7.  
  8. ?>

zakładając, że zawartością pliku test jest dosłownie: "foo" and 'bar'
Dodatkowo konfiguracja magic_quotes_gpc dodaje znaki ucieczki do zmiennych w tablicach $_GET, $_POST, $_COOKIE.
Pamiętaj, że stosowanie magic_quotes_runtime i magic_quotes_gpc jest uznawane za "złą" praktykę dlatego usunięto te opcje w PHP6.
Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 18:26