![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.03.2006 Skąd: Wisła Ostrzeżenie: (0%) ![]() ![]() |
Mam pewien problem. Chcę zrobić księgę gości opartą na plikach. Zatem...
Mam bazę danych w pliku baza.txt: Cytat user1|user1@mail.pl|wpis1 user2|user2@mail.pl|wpis2 Nastęnie zrobiłem skrypt czytający poszczególne dane:
Chyba jest zrozumiały... Teraz mój problem. Wyświetla mi tylko 1 wpis. Za pierwszym obiem $i=1, ok, skrypt działa, za drugim razem $i=0 - nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Nie wiem też jaką użyć funkcję, aby zczytało ile jest linijek w pliku :/ Być może lepiej użyć jakąś inną pętlę :?: Prosze o pomoc! pozdr |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 0 Dołączył: 12.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
No bo z tego co widze to działa w druga stronę (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
masz zwiększac a nie zmienszjać liczbe wyświetlanych wiadomości Zresztą jak dasz $i=0 to przeanalizuj wygląd pętli $i=$j; $i>0;$i--) i co widzisz ? pętla wykonuj się do puki $i jest większa od 0 to wiadomo oco chodzi Co do liczby wierszy w pliku: echo count(file('plik.php')); ... aha i $i jest Dekrementowana nie inkrementowana (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) Ten post edytował maverickkk 19.04.2006, 18:10:27 |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
zeby nie kombinowac za wiele:
1. wczytaj plik, jak napisal maverickkk, do tablicy
2. zaleznie od potrzeby odwroc sobie otrzymana tablice (nie pamietam w jakiej kolejnosci bedziesz mial dane wczytane przez file(), czy od konca czy poczatku pliku - sprawdz)
3. dalej juz iteracja tablicy i wyswietlenie danych
co musisz wiedziec? file" title="Zobacz w manualu php" target="_manual, array_reverse" title="Zobacz w manualu php" target="_manual dobrze by bylo sprawdzic na poczatku czy plik zostal wczytany i czy masz potrzebne dane, ale z tym z pewnoscia sobie poradzisz :) pozdr. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.03.2006 Skąd: Wisła Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki, działa!
Na teraz wygląda od tak:
Na początku sprawdzam tylko czy plik istnieje. Dlaczego mam sprawdzać czy jest pusty albo czy się wczytał? Jest taka możliwość, żeby się nie wczytał? Cytat .. aha i $i jest Dekrementowana nie inkrementowana Tak wiem, pomyliłem się (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) Ten post edytował _bezimienny 19.04.2006, 19:39:35 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 0 Dołączył: 12.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
"Tak wiem, pomyliłem się"
tak wiem poprawiłem cie (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) "Dlaczego mam sprawdzać czy jest pusty" Nigdzie niema warunku na sprawdzenie czy jest pusty? count($baza) w pętli służy do zliczenia ilości wierszy. "albo czy się wczytał" to nie atari że coś się wczytuje. Jest plik to z niego korzystasz. nie ma to nie korzystasz. |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat dobrze by bylo sprawdzic na poczatku czy plik zostal wczytany i czy masz potrzebne dane skrót myslowy - zostal wczytany == masz potrzebne dane _bezimienny: mea culpa, nie zauwazylem file_exists na początku. Cytat "albo czy się wczytał" to nie atari że coś się wczytuje. Jest plik to z niego korzystasz. nie ma to nie korzystasz. drogi maverickkk, niestety mylisz się (bynajmniej w pewnych warunkach) :) Kod plik jest taki: -rw-r----- 1 kuba kuba 0 Apr 19 21:29 testfile.txt
to chyba dowodzi ze moze sie zdarzyc, ze jest plik, ale wcale z niego nie korzystasz :P pozdr. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.03.2006 Skąd: Wisła Ostrzeżenie: (0%) ![]() ![]() |
Chciałem dorobić do tej księgi gości formularz dodawania wpisów, ale jakoś mi to nie wychodzi. Nie wiem co mam wpisać w <form action= > oraz jaką metodą, POST czy GET. Następna sprawa to jak zrobić, żeby dane, które wprowadzi użytkownik zostały przekazane jakimś zmiennym.
Z zapisaniem tych danych do pliku dałbym sobie już rade. Any ideas? pozdr |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 17.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
$row masz zapisać do pliku
User - Nazwa usera podana w polu Mail - E-mail podany w polu Tresc - Tresc posta podany w textarea Ten post edytował matrach 21.04.2006, 18:33:29 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.03.2006 Skąd: Wisła Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 17.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
"Plik.php" cały odpowiada za zapisanie (formularz z zapisaniem).
Powinien wyglądać tak
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.03.2006 Skąd: Wisła Ostrzeżenie: (0%) ![]() ![]() |
Tak jak podałeś to coś nie chciało działać. Zrobiłem tak:
Plik ksiega.php...
I plik.php...
Teraz pięknie śmiga (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) THX! Jak czegoś nie będę wiedział, to już wiem gdzie mam się pytać (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Mam jeszcze jedno pytanie, jak sprawdzić czy zmienna $email na prawdę zawiera mail? Jest jakaś funkcja żeby szukała @ :?: Ten post edytował _bezimienny 22.04.2006, 17:29:01 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 17.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(_bezimienny) Jest jakaś funkcja żeby szukała @ (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Phpedia.pl - weryfikacja maila A odnośnie skryptu, to użytkownik jest nie obliczalny np - jeśli zrobi nową linię w texarea - wpisze | to ci sie wszystko rozwali. dlatego powinieneś użyć czegoś takiego
chociażby ze względu bezpieczeństwa. Aby nie rozwalić układu/nie pozwolić na znaczniki użyj htmlspecialchars(), choć jeśli nie chcesz nie będe cie namawiał. funkcja strtr() @down spróbuj jeszcze htmlentities() ---EDIT--- Nie zauważyłem że skrypt do wyświetlania poostów na tym forum zamienia entity na zwykłe znaki/nie zamienia '&' na '&' Ten post edytował matrach 22.04.2006, 19:28:39 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.03.2006 Skąd: Wisła Ostrzeżenie: (0%) ![]() ![]() |
z htmlspecialchars() mi nie działało, ale jeszcze nad tym popracuję i dam znać co z tego wyszło
--EDIT-- Dzięki, skorzystałem z tego i teraz nie ma problemu.
Ten post edytował _bezimienny 24.04.2006, 16:22:37 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 27.02.2006 Skąd: Recz Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam problem odnośnie księgi gości i update'u. Wykorzystałem kod z książki "php 101 praktycznych skryptów" przerabiając go na Update do stronki aktualności. (tylko członkowie strony znają link do updatowania) Struktura jest następująca: - add.temp - formularz dodawania - index.php - plik inkluduje 'main.temp' - main.temp - cały wygląd stronki, który inkluduje na górze strony 'add.temp'a potem 'update.php' - update.php - plik otwierający i wyświetlający wpisy - update.txt - baza wpisów. Wszystko działa nawet dobrze, za wyjątkiem odświerzania, bo gdy ktoś sobie wypełni formularz i klinknie na 'wyślij' to widzi nowy swój wpis, natomiast gdy klinkinie na 'odświerz' w swojej przeglądarce to kopiuje mu się ostatni wpis i jeżeli będzie tysiące razy klikał to powstanie tysiące takich samych wpisów - użyłem CHMODów i nic może jakieś ?flock()? nie wiem jak zmodyfikować pomocy. Oto kody: add.temp index.php
main.temp
update.php
Ten post edytował Maveilthain 4.05.2006, 11:05:19 |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
tu masz male co nieco na temat odswierzania:
http://forum.php.pl/index.php?showtopic=44383 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 17:13 |