[PHP]problem z księgą gości |
[PHP]problem z księgą gości |
14.09.2013, 18:44:21
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 14.09.2013 Ostrzeżenie: (0%) |
Witam, mam pytanie jak zrobić żeby wpisy oddzielała pozioma kreska i pod imię była data wpisu z mniejszą czcionką? jeszcze jest jeden poważny problem, po wpisaniu dłuższego tekstu i wysłaniu go wychodzi on poza wymiary strony, proszę o pomoc.
kod:
|
|
|
14.09.2013, 19:08:14
Post
#2
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 9 Dołączył: 18.06.2013 Skąd: Białystok Ostrzeżenie: (0%) |
1) Funkcja ereg_replace jest przestarzała co widać w manualu:
http://www.php.net/manual/en/function.ereg-replace.php Jej działanie możesz zastąpić funkcją preg_replace albo str_replace. 2) Jeśli chodzi o kreskę to najbardziej prowizorycznie można tak to zrobić, że mając ten kod:
Dodajemy np. zmienną $kreska = "_______________________"; i dodajesz ją np. tu: Z tego co pamiętam to <p> narzuca nową linię, więc powinno być ok. Jeśli ma to wyglądać o wiele lepiej, to trzeba już się pobawić stylami CSS. 3) Jeśli chodzi o date to na początku sprawdź funkcję "date" i zrób mniej więcej tak:
Potem, gdy chcesz wyświetlić date to normalnie tu ją wypisujesz oznaczająć jako $wpis[5].(nie analizowałem dokładnie kodu, więc może być to inny element tablicy, ogólnie tak to ma być) 4) Jeśli chodzi o ostatni problem, z długością tekstu. Tutaj też byś się musiał pobawić ze stylami CSS, żeby np. wpakować to co wyrzuca nam pętla for w trakcie odczytywania pliku w DIV'y, a potem poprzez CSS jakoś ładnie to ułożyć w całość. Na koniec takie trzy rady. a) Widzę, że raczej na pewno uczysz się PHP z jakiejś książki. To dobrze, ale pamiętaj o tym, że jak książka jest stara, to część przykładów też powinna być inaczej przedstawiona. Np. jak tu widać, autor użył funkcji ereg_replace, której już nie powinno się używać. Bądź wyczulony na takie rzeczy. b )
Nie musisz tak koniecznie obsługiwać zmiennych formularza. Równie dobrze od razu możesz podawać dane poprzez POST bez wcześniejszego deklarowania zmiennych o tych samych nazwach. Kiedyś miałem podobny nawyk co Ty, było to spowodowane faktem, że autor pewnej książki, robił tak samo Praktycznie to raczej nic nie dawało. c)Kod jest o wiele bardziej czytelny, gdy zamiast układać klamry w ten sposób:
Układamy tak:
Jakie to ma znaczenie? Takie, gdy się przegląda kod, który jest bardziej skomplikowany to nie musimy zaznaczać klamer by zobaczyć, które ze sobą są połączone. Wszystko widać na pierwszy rzut oka. Zdecydowanie łatwiej jest się połapać w takim czymś:
Niż w tym:
Te ostatnie trzy punkty to takie moje drobne rady Ten post edytował BigPig 14.09.2013, 19:22:32 |
|
|
14.09.2013, 20:00:26
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 14.09.2013 Ostrzeżenie: (0%) |
Super mi to wytłumaczyłeś, prawda jestem początkującym w php i bardzo mi zależy na takim prostym formularzu, chciałem Cię prosić o pomoc w poprawieniu i naprowadzeniu tego formularza na poprawną formę, a szczególnie na stylizacji w css, w html jest lepiej ale nie bardzo wiem jak ostylować wpis który pojawi się po wysłaniu go,
proszę o pomoc bardzo mi na tym zależy. Kod poprawiłem ale i tak do końca nie wiem czy dobrze:
|
|
|
14.09.2013, 21:49:48
Post
#4
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 9 Dołączył: 18.06.2013 Skąd: Białystok Ostrzeżenie: (0%) |
Jednak ja głównie zajmuję się php, coś ogarniam w stylach, ale jednak nie mam teraz do tego głowy. Skupiłem się tylko na kodzie. Trochę było w nim bubli.
Po kolei:
Zapomniałeś zdefiniować zmiennej kreska, do której potem się odwołujesz.
1) Nie wiem po co korzystałeś z funkcji ereg_replace, pomijając fakt, że źle z niej korzystałeś. Na stronie: http://www.php.net/manual/en/function.preg-replace.php Jak zjedziesz w dół znajdziesz "Examples". Tam jest pokazane jak się powinno tej funkcji używać. Swoją drogą to w ogóle nie powinieneś jej używać 2) Do zmiennej "rekord" powinieneś dodać zmienną "data". Chodzi o to, że funkcja 'date' generuje ówczesną datę(czas). Jeśli chcesz zapisać, kiedy ktoś dodał wpis, musisz do rekordu dodać czas(czyli naszą zmienną "data"), kiedy ten skrypt został wykonany. Jeśli zmienną "data" dasz na końcu kodu(tak jak zrobiłeś), to gdy odczytasz plik, pojawi się ówczesna data. 3) Nie muszę wspominać o tym, że jeden warunek strlen w if'ie to trochę mało. Możnaby sprawdzić pozostałe zmienne np. czy w ogóle istnieją, potem możemy sprawdzić czy użytkownik faktycznie wpisał to co chcieliśmy. Od pierwszego zagadnienia jest funkcja 'isset', a drugą sprawą zajmiesz się jak nabierzesz trochę wprawy. 4) Jak zauważyłeś w fputs'ie dodałem \r\n zamiast \n. W systemie windows by w pliku dać nową linię, musimy użyć \r\n. (domyslam się, że jedziesz na windowsie). 5) Jeśli chodzi o html to pamiętaj domykaniu np. zamiast <p>teskt<p> powinno być <p>tekst</p> Patrzyłem i wszystko tam mniej więcej działa. Ze stylami już nie pomogę. Suma:
|
|
|
14.09.2013, 22:15:23
Post
#5
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 14.09.2013 Ostrzeżenie: (0%) |
dzięki wielkie, mogę prosić tylko jeszcze o pomoc w tym tekście żeby nie wychodził poza szerokość strony.
|
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 09:40 |