![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czesc!
Jestem bardzo poczatkujacy w tematyce php i html. Probuje wlasnie napisac prosty serwis w ktorym mozna dodawac osoby, podajac ich imie, nazwisko, wiek, miasto, telefon oraz wyswietlac liste wszystkich dodanych osob. Osoby zapisywane sa w pliku tekstowym, kazda w nowej linii, imie, nazwisko, wiek itp oddzielone sa od siebie tabulacja. Problem polega na tym ze nie udaje mi sie potem prawidlowo odczytac informacji z pliku. Odczytywana jest jedynie pierwsza osoba. Ogladajac plik w notatniku widac ze poszczegolne osoby sa w jednej linii, oddzielone znakiem wygladajacym jak kwadracik, w wordpadzie jest to interpretowane juz jako nowa linia. Podejrzewam ze problem polega na tym ze serwer php nie interpretuje tego jako nowej linii tak samo jak notatnik. Jesli recznie umieszcze wpisy w nowych liniach poslugujac sie notatnikiem to skrypt dziala poprawnie. Tak wyglada skrypt zapisujacy: Kod $imie=$_POST['imie']; $nazwisko=$_POST['nazwisko']; $miasto=$_POST['miasto']; $wiek=$_POST['wiek']; $telefon=$_POST['telefon']; $plik=fopen('osoby.txt', ab); //flock($plik, LOCK_SH); if(!plik) { echo '<p>W tej chwili nie ma mozliosci dodania nowych osob do serwisu'; exit; } $ciagwejsciowy=$imie."\t".$nazwisko."\t".$wiek."\t".$miasto."\t".$telefon."\n"; fwrite($plik, $ciagwejsciowy, strlen($ciagwejsciowy)); //flock($plik, LOCK_UN); fclose($plik); echo '<p>Dodano nowa osobe!</p>'; echo '<p><a href=index.html>Wroc2</a></p>' A tak odczytujacy: Kod <?php $plik=fopen('osoby.txt', r); while(!feof($plik)) { $osoba=fgets($plik, 999); echo $osoba.'<br>'; } fclose($plik); ?> Mam nadzieje ze mi pomozecie rozwiazac ten problem. Ten post edytował Gwozdyk 5.01.2008, 17:17:20 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
kodowniae znaku nowej linii zależy od systemu operacyjnego ( kombinacje : "\r\n" , "\n\r", "\n") pewnie siedzisz pod windowsem i samo "\n" nie wystarczy
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 41 Pomógł: 3 Dołączył: 3.01.2008 Skąd: PHP Planet Ostrzeżenie: (0%) ![]() ![]() |
Popraw kod z
Kod $ciagwejsciowy=$imie."\t".$nazwisko."\t".$wiek."\t".$miasto."\t".$telefon."\n"; na Kod $ciagwejsciowy=$imie."\t".$nazwisko."\t".$wiek."\t".$miasto."\t".$telefon."\r\n"; ![]() -------------------- INŻYNIERIA OPROGRAMOWANIA - PROGRAMOWANIE AJAX PHP SQL VB C++ C Perl d(html) Flash & Grafika
Any questions ??? contact me: crazyprogrammer (at) rocketmail ( dot) com skype: chrisnovack |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Super! Dziala! Dzieki!
|
|
|
--m4573r-- |
![]()
Post
#5
|
Goście ![]() |
A u mnie ta metoda nie działa. Serwa mam na apache (linux), php5 i chyba wszystkie możliwe bajery i rozszerzenia. Różnica taka, że ja w poprzednim pliku tworzę katalog, przekazuję dane z formularza metodą post do tablicy $_POST, a w tym pliku dodaję do zmiennych dodatkowe informacje i zapisuję je do pliku.
Jak skonstruowałem to w ten sposób, to zapis wygląda mniej więcej tak: Nazwa klienta: jakas nazwa klienta/r/nRealna nazwa firmy: jakas nazwa firmy/r/n i tak dalej, czyli znak nowej linii jest traktowany jako tekst. Jak użyłem konstrukcji opisanej w tym artykule, tj...
...to efekt był ten sam, a nawet gorszy, bo wartości zmiennych z tablicy $_POST nie zostały zapisane do pliku. Pewnie gdzieś robię jakiś idiotycznie banalny błąd, ale nie mogę go wypatrzyć. Będę go szukał, ale może ktoś z Was będzie szybszy. BTW: Proszę o nie zamieszczanie komentarzy typu "używaj edytora z podświetlaniem składni" czy "czytaj manual", bo to oczywiste. Po podświetleniu składni nie widać niczego niepokojącego. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Jest różnica pomiędzy "/r/n" a "\r\n". Na Linuxie wystarczy "\n". Można również użyć stałej PHP_EOL i nie ma problemów z aplikacją ani na Windowsie, ani na Linuxie.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.05.2025 - 09:02 |