Tworzenie stron

Standard W3C

sobota, Październik 18th, 2008

Jakie znaczenie ma tworzenie strony zgodnie ze standardem W3C? W zasadzie można by również zadać inne pytanie: Po co jest standard W3C skoro zadajemy sobie pytanie, jakie ma on znaczenie? Troszkę to filozoficzne, ale to dość częste pytanie przed jakim staje twórca strony internetowej i jej zleceniodawca (klient).

Otóż do pewnego stopnia strona MUSI być wykonana według tych standardów, bo w przeciwnym wypadku albo nie wyświetli się w przeglądarce lub też będzie wyświetlać się niepoprawnie. Problem polega na tym, że są błędy dopuszczalne i niedopuszczalne.

Dopuszczalne błędy to takie kiedy strona jest widoczna w przeglądarce i wyświetla się poprawnie, a jednak nie do końca jest wykonana według standardu W3C. I wtedy powstaje dylemat, czy poprawiać te błędy czy też nie.

Oczywiście jeśli popełniło się błędy niedopuszczalne to konieczność ich poprawienia jest bez sprzeczna. Strona ma i powinna się wyświetlać w każdej przeglądarce tak samo. Niestety nie jest to tak oczywiste, ponieważ silniki przeglądarek różną się od siebie. Wykonanie strony nawet bez błędnie według standardów W3C nie jest równoznaczne z tym, że będzie ona tak samo wyglądać w KAŻDEJ przeglądarce internetowej.

Dlatego też tworząc stronę trzeba przede wszystkim zwrócić uwagę by była ona poprawnie widoczna we wszystkich przeglądarkach. Sprawą drugorzędną jest to, czy na stronie wszystkie znaczniki zostały zaprogramowane według konsorcjum World Wide Web.

Przy bardzo rozbudowanych stronach typu portale internetowe, wykonanie strony według W3C na 100% może okazać się wysoko pracochłonne. Dodatkowo trzeba pamiętać by nie utracić kontroli nad każdą przeglądarką internetową. Dochodzi ostatnia najgorsza rzecz w tym wszystkim. Standard W3C jest nie doskonały. Ludzie ustalający te standardy czasem kierują się sprzecznymi interesami. Dodatkowo niektóre przeglądarki wprowadzają jakieś udoskonalenia polegające na blokowaniu pewnych elementów kodu strony i klient wymagający czegoś co okazuje się trudne do pogodzenia tych wszystkich składników da nam duży dylemat jak wykonać stronę internetową doskonałą pod każdym względem.

Opera Software opracowała technologię przeszukiwania Internetu indeksując informacje o strukturze i technologii wykonania stron internetowych. System nosi nazwę Metadata Analysis and Mining Application (MAMA).

Producent przeglądarki OPERA interesując się jak tworzone są strony przez webmasterów opracował taki system szukając dla siebie odpowiednich rozwiązań. Dzięki MAMA okazuje się jak tworzenie stron ma się do standardów konsorcjum World Wide Web. Po przeprowadzeniu badań okazało się, że na przeciętnej stronie WWW można znaleźć ponad 40 błędów w obsłudze standardów W3C. Nie są to oczywiście rażące niedopatrzenia twórców stron, a zwyczajne niedostosowanie się do narzuconych reguł konsorcjum.

Co ciekawsze i pokazujące jak ma się tworzenie stron do tych standardów, pokazuje statystyka poprawnie wykonanych stron, a jest ich zaledwie cztery procent!

Przenoszenie bazy polskie znaki

czwartek, Październik 16th, 2008

Często występujący problem przy przenoszeniu baz MYSQL z jednego serwera na drugi to problem z utratą polskich znaków. Poniżej opiszę jak to zrobić by dalej zachować wszystkie “ogonki” przenosząc się na inny serwer.

Polskie znaki możemy zapisać tylko w dwóch systemach kodowania: są to ISO 8859-2  lub coraz popularniejszy UTF-8. Wybór systemu jest naszą indywidualną spraw, tylko decydując się na jeden z nich trzeba konsekwentnie wszędzie to zrobić. Czyli nie tylko baza ma być w wybranym systemie, ale również i na stronie w metatagach umieszczona odpowiednia informacja.

Przeważnie operacje robimy poprzez phpMyAdmina. Na serwerze źródłowym ustawiamy na pierwszej stronie w panelu phpMyAdmina system porównań dla połączenia MySQL: na latin2_general_ci, czyli inaczej  ISO 8859-2. Jeśli mamy stronęzakodowanąw UTF to wybieramy ten system porównań i później na docelowym serwerze też UTF.

Później wybieramy naszą bazę do przeniesienia i eksportujemy zapisując do pliku sql. Reszta ustawień jak kto woli.

Na serwerze docelowym w głównym oknie phpMyAdmina analogicznie ustawiamy system porównań dla połączenia MySQL: na latin2_general_ci. Następnie wybieramy bazę i wybieramy opcjęimportu. Tu trzeba ustawić na latin2.

Teraz na docelowym serwerze powinny być polskie znaki.

IE jest beznadziejny!

środa, Sierpień 27th, 2008

Dziś okazało się że Exploror jest jeszcze bardziej beznadziejny! Jak zwykle robię stronę od początku pisząc kod i bez używania tabelek. Także wszystko w blokach DIV. Strona wcale nie skomplikowana. Klika obrazków umieszczonych obok siebie i sprawdzam.  W Firefox wszystko gra. Patrzę w IE zwany badziewiem i okazuje się że zrobił margines. Skąd tym razem sobie wymyślił ten margines??! Kod jest dobry, zresztą krótki więc ciężko się pomylić.  Oglądam i tak już powoli głupi się robię ale jeszcze wprowadziłem małą poprawkę i już zagrało…. Po prostu tylko ręce załamać :(

A kod przed poprawką wyglądał tak:

<div id=”str-01″>
<div>
<img src=”img/saramaca_01.jpg” width=”389″ height=”129″ alt=”">
</div>
<div>
<img src=”img/saramaca_02.jpg” width=”454″ height=”129″ alt=”">
</div>
<div>
<img src=”img/saramaca_03.jpg” width=”162″ height=”129″ alt=”">
</div>
</div>

A po poprawce, która już spowodowała brak marginesu między DIV wygląda tak:

<div id=”str-01″>
<div><img src=”img/saramaca_01.jpg” width=”389″ height=”129″ alt=”"></div>
<div><img src=”img/saramaca_02.jpg” width=”454″ height=”129″ alt=”"></div>
<div><img src=”img/saramaca_03.jpg” width=”162″ height=”129″ alt=”"></div>
</div>

No i jak tu tworzyć strony dla tej badziewnej przeglądarki?!  Co prawda nie mam możliwości sprawdzenia czy w wersji 7 również to występuje, ale jednak są jeszcze tacy którzy korzystają z wersji 6 no i przy tworzeniu stron nie można o nich zapomnieć.

Explorer i div’y

czwartek, Lipiec 24th, 2008

Znowu się spotkałem z beznadziejnością działania przeglądarki “Explorator”.  Każdy kto zajmuje się tworzeniem stron internetowych wie, jak bardzo jest to beznadziejna przeglądarka i jak czasem potrafi zepsuć dzień.  A już najgorzej, jak się jest ambitniejszym i tworzy się strony bez tabelek. Zamiast tabelek używamy styli i oczywiście DIV.  Wbrew pozorom jak się opanuje technikę nie jest to takie trudne, jednak byłoby znaczniej łatwiej gdyby nie istniał IE. No ale niestety, nikt nie mówił, że będzie łatwo więc trzeba walczyć z potworem.

A dziś poszło o  jakieś beznadziejne odstępy, które zaczął mi robić między div’ami położonymi jeden pod drugim. Ustawione wszystko pięknie w stylach. Każdy div ma swój styl, zero marginesów czy odstępów i tak wygląda do mementu wstawienia grafik do każdego div’a. Przykład poniżej:

<div id="strona">
<div id="01"><img src="01.jpg" width="970" height="125" alt="" /></div>
<div id="02"><img src="02.jpg" width="970" height="43" alt="" /></div>
</div>

No i pomiędzy tymi div’ami robi odstęp. Dlaczego? Nie mam pojęcia! Po długich mozolnych poszukiwaniach okazało się, że obrazki te jeszcze powinny być dodatkowo w div! Czyli jak poniżej…

<div id="strona">
<div id="01"><div><img src="01.jpg" width="970" height="125" alt="" /></div></div>
<div id="02"><div><img src="02.jpg" width="970" height="43" alt="" /></div></div>
</div>

I teraz już nie ma odstępów, tylko po co tak i co to daje to nie wiem.

Krasnal, php5 i mysqli

środa, Lipiec 16th, 2008

Natknąłem się niedawno na problem z programowaniem obiektowym. Chodzi o to, że Krasnal w wersji 2.7  domyślnie nie obsługuje MYSQLI. Oczywiście najpierw trzeba przełączyć się na obsługę PHP5. To jest dość proste z menu wyskakujące z ikonki przy zegarku. Po tym trzeba odpalić konfigurację php.ini. Do tego pliku również dostaniemy się z podręcznego menu z ikonki Apacha (czyli takie piórko).

Tam trzeba znaleźć zapis:

extension=php_mysql.dll
extension=php_mysqli.dll

O ile ta pierwsza linijka pewnie będzie, to drugiej zapewne nie ma i trzeba dopisać. Teraz po restarcie serwera może wyskoczyć komunikat o błędzie, dlatego trzeba zrobić jeszcze jedną rzecz.  Do katalogu głównego Apacha trzeba przekopiować plik libmysqli.dll. Ja go znalazłem w jednym z katalogów Krasnala, już teraz nie pamiętam gdzie. Jednak po tym wszystkim robimy restart serwera i już można cieszyć się działaniem skryptów napisanych obiektowo z obsługą mysqli.