Klasa formularzy w PHP – by żyło się lepiej

Kwi 20
2010

Podczas rutynowego trenowania programowania obiektowego w PHP napisałem małą klasę obsługi formularzy. Klasa posiada 5 funkcji umożliwiających tworzenie

  • Znacznika <form> i </form> z atrybutami action oraz metod – cóż, to chyba oczywiste
  • Znacznika <input>
  • Pola tekstowego <textarea>
  • Listy wyboru <radio>
  • Listy rozwijanej <select> – ta część podoba mi się w kodzie najbardziej

Klasa nie jest rozbudowana do granic możliwości. Posiada najczęściej używane znaczniki wraz z podstawowymi atrybutami, nie wliczając w nie identyfikatora i klasy. Nic jednak nie stoi na przeszkodzie rozbudowania kodu.

Deklaracja przykładowego formularza

klasa formularza

Czytaj dalszą część wpisu »

Jak napisać księgę gości?

Mar 22
2010

ksiegaBezpieczna oraz prosta w instalacji księga gości to jeden z najczęstszych obiektów poszukiwań młodych webmasterów, którzy z powodu braku doświadczenia i wiedzy (może też chęci) nie mogą takowej napisać samodzielnie. Postanowiłem wyjść na przeciw ich wątpliwości i napisać mały poradnik na temat tworzenia księgi gości za pomocą PHP.

Skrypt oparty o pliki tekstowe sobie podarujemy, gdyż takowy już raz publikowałem

<?php
/*
Autor: Komeniusz
Plik ksiega.txt nalezy utworzyc recznie nadajac mu uprawnienia do odczytu i zapisu
*/
echo'
<form action="" method="post">
<table border="2">
<tr><td>Nick:</td><td><input type="text" name="tytul" size="40" /></td></tr>
<tr><td>Wpis:</td><td>
   <textarea name="wpis" cols=60 rows=10 wrap="virtual"></textarea>
</td></tr>
</table>
<input type="submit" value="Wpisz sie!" />
</form>
';
 
$tytul = $_POST['tytul'];
$wpis = $_POST['wpis'];
 
if($tytul && $wpis) { // są informacje do wpisania
 
 // skomplikowany wpis
 $ksiega[0] = "<h3>".$tytul."</h3><p>".$wpis."</p>rn";
 
 if (file_exists("ksiega.txt")) { // już jest założony plik
  $i = 1;
  $plik = fopen ("ksiega.txt", "r+"); //odczyt danych
  flock ($plik, 2);
  while (!(feof($plik))) {
   $ksiega[$i++] = fgets ($plik, 2048);
  }
  $ilosc=$i;
  fseek ($plik, 0);                 // powrót do początku pliku
  for ($i=0; $i<$ilosc; $i++) {         // i zapis
   fputs ($plik, "$ksiega[$i]");
  }
 flock ($plik, 3);
 fclose ($plik);
 }
 else {                     // nie ma pliku, więc tworzymy nowy
  $plik = fopen ("ksiega.txt", "w+");
  flock ($plik, 2);
  fputs ($plik, "$ksiega[0]");
  flock ($plik, 3);
  fclose ($plik);
 }
}
 
echo'<h2>Ksiega gosci</h2><hr />';
if(file_exists("ksiega.txt")) {  //jesli plik istnieje
 $plik = fopen ("ksiega.txt", "r");
 while(!(feof($plik))) {
  echo(fgets ($plik, 2048));
 }
}
?>

Zajmiemy się zatem napisaniem księgi gości w oparciu o bazę danych MySQL.

Czytaj dalszą część wpisu »

10 niezbędnych dodatków do Firefoxa każdego webmastera

Mar 08
2010

firefox

Dla wielu osób webmastering nie jest tylko sposobem zarabianiem na życie, tylko czymś więcej – pasją. Pasją, której webmasterzy oddają wiele godzin swojego wolnego czasu siedząc przed ekranem komputera dopisując do plików kolejne linie kodu źródłowego.

Tylko czy tworzenie stron internetowych przynosiłoby tyle szczęścia i radości, jeśli nie byłoby narzędzi wspomagających ten proces? Nie mówię tutaj o edytorach typu WYSIWYG, których używania jestem przeciwnikiem (podświetlanie składni w zupełności wystarcza), a o dodatkach do przeglądarki internetowej jaką jest Firefox. Liczne wtyczki są w stanie przynieść wiele pomocy podczas testowania witryn, jeśli wiemy jak się nimi obsługiwać. Po przejrzeniu pluginów, których sam na co dzień używam wybrałem 10 moim zdaniem najbardziej niezbędnych, jeśli myśli się o karierze webamastera.

10) Na ostatnim miejscu postanowiłem umieścić dodatek o nazwie RSS Validator. Służy on do sprawdzania kanału RSS obecnie oglądanej strony. Proces sprawdzania inicjuje się w menu Narzędzia>Sprawdź RSS. Po kliknięciu zostanie otwarta nowa karta z adresem http://validator.w3.org/feed/check.cgi?url=strona. Jeśli wszystko jest jak być powinno otrzymamy elegancką ikonkę do umieszczenia na naszej stronie.

rss validator

9) Page Validator – działa podobnie jak RSS Validator, jednakże jest odpowiedzialny na walidację kodu (x)HTML strony. Dodatek znajdziemy w Narzędzia>Sprawdź stronę, po kliknięciu zostaniemy przekierowani do odpowiedniego walidatora.

page validator

8) Po wtyczkach do RSS i (x)HTML przyszedł czas na CSS, dodatek nosi nazwę Stylish i służy do modyfikacji i tworzenia stylów dla stron WWW. Swą popularność zyskał po głośnej akcji „Jak usunąć Śledzika”.

stylish

Czytaj dalszą część wpisu »

Losowy cytat w logo WordPress’a

Mar 07
2010

wplogoW WordPressie chcąc umieścić pod nazwą bloga jakiś cytat często mamy problem z wyboru odpowiedniego. Przeważnie podoba nam się kilka i mamy dylemat. Rozwiązaniem może okazać się zmodyfikowanie jednego pliku tego CMS’a i dopisanie doń kilku linijek odpowiedzialnych za losowe wyświetlanie naszych ulubionych cytatów. Cała operacja jest bardzo prosta i zajmuje tylko chwilkę.

W pierwszej kolejności należy otworzyć plik odpowiedzialny za top naszej strony. Znajduje się on w następującej lokalizacji

wp-content/themes/motyw/header.php

Odzukujemy w nim linijki

<p><?php bloginfo('description'); ?></p>

I zamieniamy ją na

<p><?php //bloginfo('description'); ?>
<?php
$tablica = array(
"Losowe cytaty",
"Wszyscy dorośli byli najpierw dziećmi",
"Jestem bardziej samotny niż rozbitek na tratwie pośród oceanu",
"Ziarenka są niewidoczne. Drzemią w tajemnicy ziemi, aż któremuś z nich przyjdzie do głowy pomysł obudzenia się",
"Kwiaty są słabe. Naiwne. Usiłują dodać sobie pewności siebie. Ufają, że dzięki ciernią staną się groźniejsze",
"Byłem zbyt młody, żeby umieć Ją kochać",
"Od każdego należy wymagać tylko tego, co może dać",
"O wiele trudniej osądzić samego siebie niż kogoś innego",
"Inne kroki powodują, że chowam się pod ziemię. Na dźwięk Twych troków jak na dźwięk muzyki wybiegnę z norki",
"Jeśli będziesz przychodzić przykładowo o czwartej, zacznę być szczęśliwy już od trzeciej",
"Położywszy się w trawie, zapłakał",
"Jedynie sercem można wszystko jasno poznać. To co najważniejsze skrywa się przed wzrokiem",
"Doznanie przyjaźni daje wielkie zadowolenie, nawet jeżeli pisana Ci śmierć",
"Kiedy pozwalasz się oswoić, musisz liczyć się ze łzami"
);
$losowa = rand(0,count($tablica)-1);
echo $tablica[$losowa];
?>
</p>

Operacja jak wspominałem nie jest skomplikowana i ogranicza się do zadeklarowania tablicy z cytatami oraz wylosowania jednego z nich, a następnie wyświetlenia.

Skrypt równie dobrze można wykorzystać w innych systemach zarządzania treścią.

W przykładzie kilka cytatów z Małego Księcia 😉

System rejestracji i logowania z rangami w PHP

Sty 30
2010

rejestracjaNajsampierw teoria, która jak mam nadzieje rozjaśni Wasze szare komórki. Naszym celem jest stworzenie skryptu rejestracji, logowania, edycji profilu oraz wylogowania. Całość ma znajdować się w osobnych plikach oraz posiadać mały silnik.

Czytaj dalszą część wpisu »

Fakemail w PHP

Sty 29
2010

fakemailFakemail – Wiadomość e-mail z zafałszowanym, fikcyjnym adresem zwrotnym (np. wskazującym na inną osobę) lub ze specjalnie spreparowanym nagłówkiem uniemożliwiającym identyfikację komputera nadawcy.

Źródło

Tak więc napisałem prosty skrypt w PHP, który umożliwia wysyłanie spreparowanych wiadomości e-mail 😉

Czytaj dalszą część wpisu »

Własny system BBCode w PHP

Sty 29
2010

bbcodeSystem BBCode najprościej rzecz ujmując polega na zamianie specjalnych znaczników BBCode na odpowiadające mu znaczniki HTML

Przykładowo kod:

[b]tekst[/b]

zostanie zamieniony na:

<b>tekst</b>

Dlaczego na stronach Internetowych używa się tego rodzaju systemu? Przede wszystkim dla wygody użytkownika oraz dla bezpieczeństwa witryny, gdyż znaczniki HTML są filtrowane.

Czytaj dalszą część wpisu »

Cross-site scripting czyli atak XSS

Sty 24
2010

rakietaMimo, iż dziury wykorzystujące atak typu XSS można bardzo łatwo załatać to pojawiają się one na wielu stronach. Błąd tego typu można spotkać wszędzie tam gdzie przetwarzane i wyświetlane są dane wprowadzane przez użytkownika, jak na np. najczęstszych celach agresorów czyli księgach gości. Jak można wywnioskować XSS polega na niedostatecznym filtrowaniu danych.

Czytaj dalszą część wpisu »