Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zapisywanie do pliku - Chińskie znaczki
Forum PHP.pl > Forum > Przedszkole
karolh2
Mam problem otóż napisałem skrypcik, który wykorzystuje dane z formularza... Niestety podczas zapisu do pliku zapisują się chińskie znaczki... dodam jeszcze że każde wykrzystanie formularza ma przesuwać znacznik do końca pliku i tam dopiero dopisywać dane... Kod poniżej ma tylko wyświetlać przesłane dane i zapisywać do pliku (oczywiście z przesunięciem).
o to kod:
Cytat
<?php
$fp = fopen("zapisy.txt", "w");
if (!fp) die("Nie mogę otworzyć pliku");
fseek($fp,1,seek_end);
$nicka="Nick: ";
$pozioma="Poziom: ";
$space=" ";
$gga="GG: ";
$maila="Mail: ";
$br="<br>";
$text=$nicka . $nick . $space . $pozioma . $poziom . $space . $gga . $gg . $space . $maila . $mail . $br;
fwrite($fp, $text);
fclose($fp);

echo "Twoje dane: $text zostały wysłane.";
?>


Najprawdopodobniej problem tkwi w kodzie (nie w formularzu) albo w moim XAMPP'ie... zresztą sam już nie wiem... POMOCY!!!
lopik
Otwieranie pliku z atrybutem a:
a - Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego końcu. Jeśli plik nie istnieje to próbuje go utworzyć.
Wtedy będzie Ci dodawało dane na końcu pliku, jak sam opis mówi
DeBest
chińskie znaczki?? ale tylko zamiast polskich liter robię się znaczki?
jeśli tak to zrób coś takiego
  1. <?php
  2. $text= HTMLSpecialChars($text);
  3. ?>

dajesz to pod zmienną $txt, ta funkcja zamienia wszystkie znaki na znaki HTMLa jak sama nazwa wskazuje,
jedynym mankamentem jest że zamienia także znaki "<" ">" itp.
Amorph
@De Best zlituj się proszę...
Sory za OT
karolh2
"a" fajnie ale dalej zapisuje chińskie znaczki... sad.gif i to nie tylko polskich liter!
lopik
To a to atrybut do pliku, nie ma to nic wspólnego z "chińskimi znaczkami"

A jakie masz kodowanie strony ustawione na tej stronie co masz ten skrypt ?
karolh2
Kodowanie: iso-8859-2
Amorph
Cały kod:
  1. <?php
  2.  
  3. header("Content-Type: text/html; charset=iso-8859-2");
  4.  
  5. $fp = fopen("zapisy.txt", "a");
  6. if (!fp) die("Nie mogę otworzyć pliku");
  7. fseek($fp,1,seek_end);
  8. $nicka="Nick: ";
  9. $pozioma="Poziom: ";
  10. $space=" ";
  11. $gga="GG: ";
  12. $maila="Mail: ";
  13. $br="<br>";
  14. $text=$nicka . $nick . $space . $pozioma . $poziom . $space . $gga . $gg . $space . $maila . $mail . $br;
  15. fwrite($fp, $text);
  16. fclose($fp);
  17.  
  18. echo "Twoje dane: $text zostały wysłane.";
  19. ?>

i zapisy.txt:

Nick: Poziom: GG: Mail: <br>Nick: Poziom: GG: Mail: <br>

Nie widzę żadnych krzaczków smile.gif
karolh2
a ja widze... sad.gif
jarrod
jakim edytorem otwierasz? i jakie ma kodowanie plik w którym to napisałeś?
mls
Mnie najbardziej zastanawia ten zapis:
  1. <?php
  2. fseek($fp,1,seek_end);
  3. ?>

Czy nie powinno być albo -1, albo 0?
W manualu jest napisane wyraźnie:
Cytat
SEEK_END - Set position to end-of-file plus offset. (To move to a position before the end-of-file, you need to pass a negative value in offset.)


A jeśli już masz
  1. <?php
  2. $fp = fopen("zapisy.txt", "a");
  3. ?>

to zrezygnuj w ogóle z fseek (...)...
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.