Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [tutorial] Kartka z kalendarza PHP+Smarty
JoShiMa
post
Post #1





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Robiłam ostatnio w jednym z moich skryptów robiłam kalendarium w postaci kartki z kalendarza z zaznaczonymi wydarzeniami. Postanowiłam zrobić z tego tutorial. Chciałabym, żebyście napisali co myślicie na jego temat i czy coś należałoby poprawić (zagmatwane, niejasne sformułowania, skróty myślowe, mało maślane itp).

Ten post edytował JoShiMa 2.07.2008, 10:21:53


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tresci oceniac nie będę - brak czasu, ale wytkne ci pare bledow winksmiley.jpg

- _GET['miesiac'] - hmmm, kod nie ma prawa dzialac
- pozatym skoro bierzesz cos z url i to cos ma byc liczba, to rob jeszcze rzutowanie (int), szczegolnie gdy to idzie do bazy
- "tekst" - uczmy ludzi pisac dobrze 'tekst' - jak nie ma zmiennych to nie uzywajmy ""
- "SELECT ID,data
FROM tabela_wydarzenia
WHERE data BETWEEN '".$od."' ...
skoro juz uzywam "" to korzystajmy z jego dobrodziejstw:
"SELECT ID,data
FROM tabela_wydarzenia
WHERE data BETWEEN '$od'....

- $szablon->assign('kalendarz', $dane); - $dane to dosc spora tablica. warto wiec przekazac ją przez referencje: $szablon->assign_by_ref('kalendarz', $dane);

- aplikacja na stronie co dalas nie dziala. Gdy klikam na kolejny miesiac/rok to dostaje 404


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
JoShiMa
post
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(nospor @ 2.07.2008, 11:34:06 ) *
- _GET['miesiac'] - hmmm, kod nie ma prawa dzialac

Upssss. Masz rację smile.gif

Cytat(nospor @ 2.07.2008, 11:34:06 ) *
- pozatym skoro bierzesz cos z url i to cos ma byc liczba, to rob jeszcze rzutowanie (int), szczegolnie gdy to idzie do bazy

Poza elegancją jakie to ma znaczenie?

Cytat(nospor @ 2.07.2008, 11:34:06 ) *
- "tekst" - uczmy ludzi pisac dobrze 'tekst' - jak nie ma zmiennych to nie uzywajmy ""

Rozumiem, że to tez elegancja?

Cytat(nospor @ 2.07.2008, 11:34:06 ) *
- "SELECT ID,data
FROM tabela_wydarzenia
WHERE data BETWEEN '".$od."' ...
skoro juz uzywam "" to korzystajmy z jego dobrodziejstw:
"SELECT ID,data
FROM tabela_wydarzenia
WHERE data BETWEEN '$od'....

Słusznie. Przerabiałam ten kod z bardziej skomplikowanego, gdzie tak się nie dało.

Cytat(nospor @ 2.07.2008, 11:34:06 ) *
- $szablon->assign('kalendarz', $dane); - $dane to dosc spora tablica. warto wiec przekazac ją przez referencje: $szablon->assign_by_ref('kalendarz', $dane);

Zainteresuję sie tym

Cytat(nospor @ 2.07.2008, 11:34:06 ) *
- aplikacja na stronie co dalas nie dziala. Gdy klikam na kolejny miesiac/rok to dostaje 404

Dziwne, bo mi działa sad.gif Napiszesz mi jaki link dostajesz?


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Cytat(nospor @ 2.07.2008, 11:34:06 )
- pozatym skoro bierzesz cos z url i to cos ma byc liczba, to rob jeszcze rzutowanie (int), szczegolnie gdy to idzie do bazy

Poza elegancją jakie to ma znaczenie?
No raczej kwestie bezpieczenstwa. Danych wogole nie filtrujesz.

Cytat
Cytat(nospor @ 2.07.2008, 11:34:06 )
- "tekst" - uczmy ludzi pisac dobrze 'tekst' - jak nie ma zmiennych to nie uzywajmy ""

Rozumiem, że to tez elegancja?
Nie. "" wykonuje sie dluzej, gdyz php szuka w nim zmiennych. W ' ' php nie szuka zmiennych i nie stara sie ich parsowac

Cytat
- aplikacja na stronie co dalas nie dziala. Gdy klikam na kolejny miesiac/rok to dostaje 404

Dziwne, bo mi działa Napiszesz mi jaki link dostajesz?
Mow szybko co zmienilas winksmiley.jpg Teraz juz dziala smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
JoShiMa
post
Post #5





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(nospor @ 2.07.2008, 11:51:41 ) *
No raczej kwestie bezpieczenstwa. Danych wogole nie filtrujesz.

Pokazałam schemat skryptu, gdybym chciała rozwodzić sie nad wszystkimi aspektami wyszłaby mi książka smile.gif Może kiedyś napisze i o kwestiach bezpieczeństwa smile.gif

Cytat(nospor @ 2.07.2008, 11:51:41 ) *
Mow szybko co zmienilas winksmiley.jpg Teraz juz dziala smile.gif

Nic, widocznie natrafiłeś na czkawkę serwera tongue.gif Ale hosting tego serwisu to już nie mój ból smile.gif


--------------------
Go to the top of the page
+Quote Post
Shili
post
Post #6





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Cytat
Pokazałam schemat skryptu
Ale musisz brać pod uwagę, że skorzystają z tego tutoriala i najwięksi laicy. Wzmianka o podstawowych metodach zabezpieczania powinna się znaleźć winksmiley.jpg

Sam opis wszystkiego jest moim zdaniem jasny i przejrzysty.
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Pokazałam schemat skryptu, gdybym chciała rozwodzić sie nad wszystkimi aspektami wyszłaby mi książka Może kiedyś napisze i o kwestiach bezpieczeństwa
Ale tu chodzilo o glupie (int) nic wiecej winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bim2
post
Post #8





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Nospor miałeś rację, jest 404. Później odświeżyłem i PHPSESSID się nie wkradł no i zadziałało. :]

Cytat
[404] File Not Found : Plik nie istnieje
Podany w zapytaniu URL /index09.php&?PHPSESSID=06da2126fc889494ae7a3ba6325d7e8d nie został odnaleziony na tym serwerze.


--------------------
Go to the top of the page
+Quote Post
JoShiMa
post
Post #9





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(nospor @ 2.07.2008, 12:23:08 ) *
Ale tu chodzilo o glupie (int) nic wiecej winksmiley.jpg

No masz rację. Kwestią bezpieczeństwa też się zajmę smile.gif

Cytat(bim2 @ 2.07.2008, 12:57:13 ) *
Nospor miałeś rację, jest 404. Później odświeżyłem i PHPSESSID się nie wkradł no i zadziałało. :]

Dzięki za info. Nigdy mi się to nie przytrafiło, będę musiała przyjrzeć się co nie tak jeszcze jest w tym skrypcie (jak widać jest jeszcze w budowie sad.gif ). Na przyszłość przykład z tutoriala dam do niezależnego skryptu.


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ojojoj, znalazlem jeszcze jednego bobola. Dziewczyna z takim doswiadczeniem na forum a takie bledy... wstyd, poprostu wstyd...
Cytat
obsłużć

winksmiley.jpg

ps: szukaj w ostatnim zdaniu artykułu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
JoShiMa
post
Post #11





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


wstydnis.gif


A tak sprawdzałam. Dziwne, że moduł do sprawdzania pisowni mi tego nie pokazał.


--------------------
Go to the top of the page
+Quote Post
.radex
post
Post #12





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Ja bym od razu uczył (nie dosłownie, tylko z przykładowych kodów) przejrzystego pisania kodu.

W tej chwili jest:

  1. <?php
  2. if(isset($_GET['miesiac']) and isset($_GET['rok'])){
  3. $dane['miesiac'] = (int)$_GET['miesiac'];
  4.  $dane['rok'] = (int)$_GET['rok'];
  5. }else{
  6.  $dane['rok'] = date('Y');
  7.  $dane['miesiac'] = date('n');
  8. }
  9.  
  10. $znacznik = mktime(1,1,1,$dane['miesiac'],1,$dane['rok']);
  11. $l_dni_w_miesiacu = date('t',$znacznik);
  12. $od = $dane['rok'].'-'.$dane['miesiac'].'-1';
  13. $do = $dane['rok'].'-'.$dane['miesiac'].'-'.$l_dni_w_miesiacu;
  14. ?>


nie lepiej:

  1. <?php
  2. if(isset($_GET['miesiac']) && isset($_GET['rok']))
  3. {
  4.  $dane['miesiac'] = (int) $_GET['miesiac'];
  5.  $dane['rok'] = (int) $_GET['rok'];
  6. }
  7. else
  8. {
  9.  $dane['rok'] = date('Y');
  10.  $dane['miesiac'] = date('n');
  11. }
  12.  
  13. $znacznik = mktime(1, 1, 1, $dane['miesiac'], 1, $dane['rok']);
  14. $l_dni_w_miesiacu = date('t', $znacznik);
  15. $od = $dane['rok'] . '-' . $dane['miesiac'] . '-1';
  16. $do = $dane['rok'] . '-' . $dane['miesiac'] . '-' . $l_dni_w_miesiacu;
  17. ?>


questionmark.gif

Ten post edytował radex_p 2.07.2008, 20:09:11


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
JoShiMa
post
Post #13





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


[quote name='radex_p' date='2.07.2008, 21:08:30 ' post='488919']
Ja bym od razu uczył (nie dosłownie, tylko z przykładowych kodów) przejrzystego pisania kodu.
Jeśli chodzi Ci o rozstrzelenie tekstu to wcale nie uważam, że to jest bardziej przejrzyste. Programuję w kilku językach (nie tylko "sieciowych") i dla mnie zawsze czytelniejszy był kod zwarty z małą ilością odstępów, pustych wierszy i wierszy zawierających wyłącznie klamry. Cenię sobie przy tym edytory prawidłowo i w sposób konfigurowalny kolorujący składnię. Dlatego nie uważam, by był sens uczenia takiego czy innego sposobu zapisu. To jest sprawa indywidualna i każdy wie lepiej jaki kod mu się lepiej czyta i pisze. biggrin.gif

Ten post edytował JoShiMa 3.07.2008, 08:20:45


--------------------
Go to the top of the page
+Quote Post
strife
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Witam, smile.gif

Cytat
Dlatego nie uważam, by był sens uczenia takiego czy innego sposobu zapisu. To jest sprawa indywidualna i każdy wie lepiej jaki kod mu się lepiej czyta i pisze. biggrin.gif

Problem wtedy, gdy pracuje się zespołowo, nie każdemu w zespole może podobać się Twój sposób zapisu. Dlatego stosuje się odpowiednie notacje w programowaniu.

W sam tutorial nie wczytywałem się za bardzo, ale wygląda że jest dobrze napisany (pomijając błędy, które powytykał nospor tongue.gif). Nic tylko życzyć Ci powodzenia w pisaniu kolejnych smile.gif

PS. Przypadkiem w smartach nie ma konstrukcji, które umożliwiają wyświetlenie listy miesięcy/dni/lat w select'cie? : > może warto by było użyc tego winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
JoShiMa
post
Post #15





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(strife @ 3.07.2008, 09:33:04 ) *
Przypadkiem w smartach nie ma konstrukcji, które umożliwiają wyświetlenie listy miesięcy/dni/lat w select'cie? : > może warto by było użyc tego winksmiley.jpg

Może są, ale nie bardzo widzę ich zastosowanie w tym skrypcie. Poza tym ja też się jeszcze uczę i jak napisałam w opisie bloga "Ten blog ma służyć mi, jako podręczny notatnik, ale w zamyśle ma być również narzędziem, które pozwoli mi dzielić się z innymi nabytą wiedzą." tongue.gif

Co do pracy zespołowej to trochę inna sprawa. Ja pracuję zespołowo ale już na takim etapie, że każdy w zespole robi własny niezależny pakiet i nikt nikomu w kodzie nie grzebie tongue.gif dlatego nikt się nie musi do nikogo naginać smile.gif Jedyne co musi rozumieć zespół to język UML ale tu standardy są jasne.

Ten post edytował JoShiMa 3.07.2008, 09:01:12


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@JoShiMa nie zwracaj uwagi na tych "sztywniakow". Zazdrosni są ze ja wylapalem tyle "powaznych" bledow a oni nic nie znaleźli, to teraz czepiają sie jakis standardow pisania ot i wszystko winksmiley.jpg
Tak jak ty pisalas to tez jest standard, a ze oni go nie znają to ich niewiedza i tyle biggrin.gif

a juz tak calkiem poważnie:
W artykulach tego typu takie rzeczy jak nawias { w lini tej samej czy linie nizej to juz naprawde bez znaczenia. Standardy pisania też ważna rzecz, ale nie popadajmy w paranoje. Standardów jest kilka i to ze ktoś pisze w innym niż my to nie znaczy ze jest niedobry

edit down: oj, to był taki zart, specjalnie wziąłem w cudzyslowia tych "sztywniakow" i dalem na koncu przymruzenie oka winksmiley.jpg Czyżby jednak słowo "sztywniak" było prawdziwe? winksmiley.jpg
Tak czy siak nie mialem zamiaru nikogo obrazac a jesli ktos jednak sie poczuł urazony do najmocniej przepraszam


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
.radex
post
Post #17





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Cytat(nospor @ 3.07.2008, 09:40:04 ) *
@JoShiMa nie zwracaj uwagi na tych "sztywniakow". Zazdrosni są ze ja wylapalem tyle "powaznych" bledow a oni nic nie znaleźli, to teraz czepiają sie jakis standardow pisania ot i wszystko winksmiley.jpg


Yyyy.... Sztywniaków? blinksmiley.gif Ja tylko wyraziłem moją opinię, że ten kod jest mało czytelny i tyle winksmiley.jpg


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 03:29