Strony aktywne

Budujemy pierwszą stronę aktywną sięgającą do bazy danych.

W naszym laboratorium programy w PHP są traktowane jak normalne programy CGI. Konsekwencje:

  1. Każdy program (strona aktywna) w PHP musi mieć końcówkę ,,.cgi''. Końcówka ,,.php'' powoduje błąd systemu. Plik ma mieć ustawione uprawnienie x (wykonywalność) dla każdego. Uprawnienie w może być ustawione tylko dla właściciela pliku
  2. Program musi rozpoczynać się zaklęciem

    #!/usr/bin/php
    <?php
    echo("Content-type: text/html\n\n");
    ?>
    
    gdzie ,,<?php'' oraz ,,?>'' to poczatek i koniec wstawki w PHP.
  3. Pliki tekstowe poszczególnych systemów operacyjnych różnią się sposobem kończenia wiersza tekstu (linii), W Linuksie jest to pojedynczy znak LineFeed (zwany też Newline). W systemie MS-DOS (a zatem i w Microsoft Windows) wiersze kończyły się parą znaków: CarriageReturn + LineFeed.

    Podobno CGI w PHP potrafi czasem po napotkaniu takich par przedwcześnie zakończyć nagłówek, powodując błąd. Jak zakończone są wiersze w pliku można sprawdzić poleceniem file. Dla pliku Linuksowego będzie tak

    zbyszek@katastrofa6:~/work/proby$ file proba.cgi
    proba.cgi: PHP script, UTF-8 Unicode text executable
    
    natomiast dla Windowsowego tak
    zbyszek@katastrofa6:~/work/proby$ file formularz.cgi
    formularz.cgi: PHP script, UTF-8 Unicode text executable, with CRLF line terminators
    
    Ewentualną konwersję robimy programem dos2unix
    zbyszek@katastrofa6:~/work/proby$ dos2unix formularz.cgi
    dos2unix: konwersja pliku formularz.cgi do formatu uniksowego...
    zbyszek@katastrofa6:~/work/proby$ file formularz.cgi
    formularz.cgi: PHP script, UTF-8 Unicode text executable
    
  4. W formularzach metoda POST czasem z niewiadomego powodu daje błąd: należy wtedy przejść na GET.

  5. Zmienne formularza przekazywane są jako lista par

    nazwa=wartość

    rozdzielonych ampersandem (znakiem '&'), na przykład

    imie=Jan&nazwisko=Sobieski
  6. Odbieranie zmiennych z formularza zależy od metody:

Opisy PHP i pisania aplikacji znajdujące się na stronie nie uwzględniają tych dziwolągów.

Na ćwiczeniach spróbujemy napisać początek aplikacji -- w praktyce oznacza to zaadaptowanie wersji z dokumentacji do nowych wymagań. Ma działać!