Artykuły jmail's software

[CF] ColdFusion tutorial – dla początkujacych cz. II

by on May.29, 2010, under PHP / CF / .NET / Java

Wracamy do tutoriala ColdFusion – dzisiaj przykład z nieśmiertelnym Hello World oraz kilka innych rzeczy.

Na pocztątek jednak….

Czy wiesz, że technologia ColdFusion jest starsza niż PHP, JSP, ASP i inne razem wzięte technologie? Jets to pierwsza technologia server side w języku skryptowym!

ColdFusion na początku był rozprowadzany jako Allire ColdFusion. Później przejęła go Macromedia, przepisała do Javy (wersja 6 i 7) a później Macromedię przejęło Adobe. Wyszły już wersje 8 i 9. ColdFusion z Adobe ma integrację z Flexem (może kiedyś zrobią coś takiego w railo).

Hello World

Na początek stworzymy prosty standardowy projekt hello world. Jeżeli przerobiłeś część pierwszą oraz instrukcję instalacji to wiesz dokładnie gdzie Twoija strona ma się znaleźć. W katalogu głównym utwórzmy sobie folder test i w nim będziemy rzucać nasze przykłady. Otwieramy więc CFEclipse i tworzymy nowy projekt (niech wskazuje na plik test). Dodajmy do niego plik helloWorld.cfm

wstawiamy do pliku

1
2
3
4
<cfset zmienna = "Hello World">
<cfoutput>
    #zmienna#
</cfoutput>

Przechodzimy do przeglądarki i wchodzimy na stronę

http://localFirstCFWheels/test/helloWorld.cfm

Wyświetla nam się Hello World

Przykład mamy gotowy, ale czego się nauczyliśmy:

tag

1
    <cfset NazwaZmiennej = Wartosc>

ustawia nam zmieną NazwaZmiennej na Wartosc

tag

1
2
3
    <cfoutput>
        #zmienna#
    </cfoutput>

wypisuje nam zmienną zmienna na ekran. ColdFusion rozpoznaje znacznik ## i to co jest między # próbuje parsować według swojej składni. Całą resztę wypluwa nawet się tym nie zajmując. Jeżeli wewnątrz <cfourput> umieścimy kod html bez znaczników # polecą do przeglądarki w takiej postaci w jakiej są. <cfoutput> może przybierać różne parametry, ale z tym po kolei się uporamy.

Baza danych:

Teraz zajmiemy się połączeniem naszego kodu z bazą danych.

Na początek przygotowanie samej bazy. W poprzedniej części utworzyliśmy bazę danych CFForum, którą teraz wykorzystamy da naszego testu. Jak wiemy nasze forum musi mieć użytkowników, więc tworzymy tabelę użytkowników i dodajemy do niej kilka rekordów. Na początku przyjmijmy, że nasze hasła będą hashowane algorytmem md5 a później zajmiemy się dopiero solą. Aktywacją konta też się zajmiemy w bardziej zaawansowanej postaci naszego forum, na razie domyślnie aktywujemy wszystkich użytkowników.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    CREATE TABLE
        users
        (
            idUser serial NOT NULL PRIMARY KEY
            ,login VARCHAR(256)
            ,pass VARCHAR(64)
            ,email VARCHAR(1024)
            ,active INT NOT NULL DEFAULT 0
            ,activationCode VARCHAR(256)
        );
  �
    INSERT INTO
        USER
        (
            login
            ,pass
            ,email
            ,active
        )
    VALUES
        (
            'jmail'
            ,md5('abc')
            ,'admin@jmail.pl'
            ,1
        );
       �
    INSERT INTO
        USER
        (
            login
            ,pass
            ,email
            ,active
        )
    VALUES
        (
            'jmail2'
            ,md5('abc')
            ,'admin@jmail.pl'
            ,1
        );

Teraz przechodzimy do CFEclipse i tworzymy nowy plik database.cfm

Na początek krótka dygresja. W ColdFusion wiele rzeczy jest zautomatyzowane, wiec nie potrzebujemy się o nie martwić. Kwestia połączenia z bazą danych została rozwiązana poprzez panel admina serwera, więc teraz jedyne co nam pozostaje to napisać zapytanie.

Tworzymy więc zapytanie do bazy danych, które ma nam wyświetlić wszystkich użytkowników.

1
2
3
4
5
6
    <cfquery name="usersQuery" datasource="cfforumdsn">
        SELECT
            *
        FROM
            user;
    </cfquery>

Jak prosto! praktycznie nic nie trzeba robić tylko napisać zapytanie wybrać datasource i nazwać query.

Tak właśnie pisze się zapytania do bazy danych. Bez względu na to czy będziecie pisać do SQL Server PostgreSQL czy MySQL zawsze działa to tak samo. Dlatego należy pamiętać, żeby pisać zapytania uniwersalne, wtedy bez problemów można zmigrować projekt na inne rozwiązanie.

Skoro mamy zapytanie zrobione to należałoby się jakoś do niego odwołać i wyświetlić wyniki. Wypiszmy je w postaci tabeli. Dodajemy pod naszym query w pliku database.cfm kod

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    <table>
        <tr>
            <td>
                <b>Lp.</b>
            </td>
            <td>
                <b>Login</b>
            </td>
            <td>
                <b>Mail</b>
            </td>
        </tr>
    <!--- ustawiam zmienną która będzie naszym licznikiem --->
    <cfset licznik = 0>  
    <cfoutput query="usersQuery">
        <!--- zwiększam licznik o 1--->
        <cfset licznik = licznik + 1>
            <tr>
                <td>
                    <!--- wypisuję licznik --->
                    #licznik#
                </td>
                <td>
                    <!--- nic więcej nie musisz robić - wypisz tylko kolumnę - CF wie sam, że ma ją wziąć z query --->
                    #login#
                </td>
                <td>
                    <!--- nic więcej nie musisz robić - wypisz tylko kolumnę - CF wie sam, że ma ją wziąć z query --->
                    #email#
                </td>
            </tr>
    </cfoutput>

I voile’a mamy gotową tabelę z listą użytkowników.

Jak na pewno się domyśliliście ColdFusion ma komentarze podobne do htmlowych ale występują w nich trzy a nie dwa myślniki.

IF…ELSEIF…ELSE

Żaden język programowania nawet najbardziej prosty nie obędzie się bez konstrukcji warunkowych. Na początek wziąłem if’a

Konstrukcja jest nadzwyczaj prosta

1
2
3
4
5
6
7
    <cfif warunek>
        wyrażenia        
    <cfelseif>
        wyrażenia
    </cfelse>
        wyrażenia
    </cfif>

przy czym <cfif> i </cfif> są wymagane w skałdni a pozostałe nie.

Warto od razu wspomnieć o systemie porównań jakie CF stosuje

– gt – większe niż

- gte – większe lub równe

- eq – równe

- neq – różne

- lte – mniejsze lub równe

- lt – mniejsze

Przykład:

1
2
3
4
5
6
    <cfset zmienna = 0>
    <cfif zmienna eq 0>
        Zmienna jest pusta        
    </cfelse>
        Zmienna nie jest pusta
    </cfif>

Powyższy przykład wyświetli “Zmienna jest pusta”

DUMP

Czasami chcielibyśmy zrzucić jakąś zmienną, zeby zobaczyć co zawiera (szczególnie w przypadku tablic lub innych struktur). Służy od tego tag

1
    <cfdump var="#NazwaZrzucanejZmiennej#">

Koniecznie i obowiązkowo należy objąć nazwę zmiennej podwójnym #

Spórbujcie zrobić to samo w swoim skrypcie database.cfm i zobaczcie co Wam wyjdzie ze zrzucenia zmiennej usersQuery. Wygodne? pewnie tak ;)

Podsumowanie:

Zrobiliśmy krótką zapowiedź tego co można osiągnąć w ColdFusion. Połączyliśmy się z bazą danych i pobraliśmy z niej dane. Poznaliśmy również konstrukcję warunkową IF.

W kolejnej cześci:

Poznamy różne rodzaje pętli w ColdFusion, rozszerzymy naszą wiedzę z zakresu znajomości tagów ColdFusion i spróbujemy wykonać parę zapytań do bazy danych, które napełnią nam dane.

:, , , , , , , , , ,

Leave a Reply

Kalendarz

May 2010
M T W T F S S
« Apr   Jun »
 12
3456789
10111213141516
17181920212223
24252627282930
31  
Linki sponsorowane:
projektowanie strony internetowe tworzenie * katalog * rss