Ładowanie Ładowanie

Artykuł > Kurs PHP. Wstęp do programowania w popularnym języku skryptowym

strony: 1 | 2 | 3 | 4 | ... | 21 następna »
wydrukuj: print publikuj: wykop dodaj do flakera Dodaj jako nius na OSnews.pl! delicious

Kurs PHP. Wstęp do programowania w popularnym języku skryptowym

TAGI: kurs , mysql , php , smarty , sql
2007-09-17 13:42:08 | Piotr Ostalecki
Kurs PHP. Wstęp do programowania w popularnym języku skryptowym

Celem tego kursu nie jest przekazanie wiedzy encyklopedycznej na temat PHP, ale praktycznych porad, które każdemu pozwolą na tworzenie ciekawych i funkcjonalnych aplikacji. Dlatego na początku powiedzmy tylko, że PHP (akronim rekursywny „PHP: Hypertext Preprocessor”) to język skryptowy wykonywany po stronie serwera (przez co oferuje większe możliwości niż np. JavaScript) o składni podobnej do C/C++, za pomocą którego tworzymy zaawansowane programy wykorzystywane głównie na stronach WWW. Atutem PHP jest zaś to, że programista nie musi się tutaj przejmować np. lokowaniem pamięci pod zmienne czy konwersją typu. Dodatkowo możliwości PHP można rozszerzyć, instalując na serwerze gotowe moduły lub pisząc własne. Obecnie rozwijana jest wersja 5.x, a rozwój wersji 4.xx (długo współistniejącej z nowszą „piątką”) zatrzymał się w sierpniu 2007 roku na edycji 4.32. Obie wersje różnią się znacznie pod względem zaawansowanych funkcji obsługi baz danych, plików XML czy klas, które zostały w PHP5 przepisane od nowa, przez co są dużo prostsze i łatwiejsze w użyciu. Niemniej większość skryptów pisanych w PHP4 może pokazywać błędy w PHP5, dlatego starsza edycja była prawie przez dwa lata podtrzymywana i rozwijana.

Spis treści

1. Absolutne podstawy (czytaj)

  • 1.1. PHP w HTML-u
  • 1.2. Pierwszy skrypt
  • 1.3. Błędy ludzka rzecz
  • 1.4. Kończenie instrukcji
  • 1.5. Komentarze

2. Zmienne (czytaj)

  • 2.1. Podstawy
  • 2.2. Działania na zmiennych
  • 2.3. Typy zmiennych
  • 2.4. Zmienne predefiniowane przez serwer
  • 2.5. Stałe

3. Operatory (czytaj)

  • 3.1. Operatory
  • 3.2. Operatory arytmetyczne
  • 3.3. Przypisanie
  • 3.4. Operatory porównania
  • 3.5. Kontrola błędów
  • 3.6. Inkrementacja i dekrementacja
  • 3.7. Trochę logiki – operatory logiczne
  • 3.8. Operatory łańcuchowe (stringów)

4. Struktury kontrolne (czytaj)

  • 4.1. Instrukcje warunkowe
  • 4.2. Pętla for
  • 4.3. Pętla while
  • 4.4. Pętla do..while
  • 4.5. Pętla foreach
  • 4.6. Switch
  • 4.7. Przerwania wykonania pętli
  • 4.8. Dwie alternatywy

5. Tablice (czytaj)

  • 5.1. Co to jest tablica?
  • 5.2. Tablice asocjacyjne
  • 5.3. Przeglądanie tablic
  • 5.4. Zamiana tablic na stringi i odwrotnie

6. System plików (czytaj)

  • 6.1. Wstęp
  • 6.2. Wewnętrzny wskaźnik pliku
  • 6.3. Odczyt z pliku
  • 6.4. Zapis do pliku
  • 6.5. Blokowanie plików
  • 6.6. Trochę statystyk
  • 6.7. Kopiowanie
  • 6.8. Zmiana nazwy
  • 6.9. Usuwanie plików
  • 6.10. Katalogi
  • 6.11. Prawa dostępu

7. Załączanie zewnętrznych plików (czytaj)

  • 7.1. Cztery funkcje – jedno działanie
  • 7.2. Najbardziej znane: include() i require()
  • 7.3. Ograniczenia include() i require()
  • 7.4. Młodsi bracia: include_once() i require_once()

8. Przekazywanie zmiennych (czytaj)

  • 8.1. Wstęp
  • 8.2. Metoda GET
  • 8.3. Metoda POST
  • 8.4. Odzyskać zmienną
  • 8.5. Ciasteczka

9. Funkcje (czytaj)

  • 9.1. Wielokrotne użycie kodu – funkcje, argumenty, return
  • 9.2. Wiele argumentów
  • 9.3. Zmienne spoza funkcji
  • 9.4. Zmienne statyczne
  • 9.5. Funkcje zmienne

10. Klasy – wstęp w PHP4 (czytaj)

  • 10.1. Różnice pomiędzy PHP4 i PHP5
  • 10.2. Wstęp do klas
  • 10.3. Klasy potomne
  • 10.4. Operator :: (dwa dwukropki)
  • 10.5. Operator parent – odniesienie do rodzica

11. Klasy w PHP5 (czytaj)

  • 11.1. Różnice pomiędzy PHP4 i PHP5
  • 11.2. Automatycznie wczytywanie
  • 11.3. Konstruktory i destruktory
  • 11.4. Referencje i klonowanie
  • 11.5. 3xP, czyli klasy publiczne (public), chronione (protected) i prywatne (private)
  • 11.6. Interfejsy
  • 11.7. Abstrakcje
  • 11.8. Metody i zmienne statyczne
  • 11.9. __call()
  • 11.10. __set()
  • 11.11. __get()
  • 11.12. final
  • 11.13. instanceof

12. Data i czas (czytaj)

  • 12.1. Podstawy
  • 12.2. Kilka przydatnych funkcji
  • 12.3. Sprawdzanie daty
  • 12.4. Data -> timestamp
  • 12.5. timestamp -> data

13. Upload plików (czytaj)

  • 13.1. Kilka słów o uploadzie
  • 13.2. Najpierw formularz
  • 13.3. Odbiór pliku w teorii
  • 13.4. Kody błędów
  • 13.5. Upload wielu plików

14. Sesje (czytaj)

  • 14.1. Wstęp do sesji

15. Dynamiczna grafika (czytaj)

  • 15.1. Jak to działa?
  • 15.2. Podstawy
  • 15.3. Pierwsze rysunki – deklaracja kolorów
  • 15.4. Wypełnianie
  • 15.5. Linie
  • 15.6. Kwadraty
  • 15.7. Elipsy
  • 15.8. Kształty bliżej nieokreślone
  • 15.9. Łuki
  • 15.10. Napisy
  • 15.11. Ciąg znaków
  • 15.11. Styl ciągu znaków
  • 15.12. Licznik wyświetlający grafikę

16. Referencje (czytaj)

  • 16.1. Kilka słów o referencjach
  • 16.2. Zalety referencji
  • 16.3. Koniec referencji

17. Obsługa wyjątków (czytaj)

  • 17.1. Nowa obsługa błędów
  • 17.2. Rozbudowa klasy Exception
  • 17.3. Metoda getTrace() klasy Exception

18. Bezpieczeństwo skryptów (czytaj)

  • 18.1. Include i require – ich niebezpieczeństwa
  • 18.2. Konfiguracja php.ini
  • 18.3. Dane od użytkowników

19. Baza danych MySQL (czytaj)

  • 19.1. Wstęp
  • 19.2. Struktura bazy
  • 19.3. Połączenie z bazą
  • 19.4. Język SQL
  • 19.5. Pierwsze operacje, nowa baza
  • 19.6. Nowe tabele
  • 19.7. Wstawianie danych
  • 19.8. Wybieranie konkretnych rekordów
  • 19.9. Modyfikacja rekordów
  • 19.10. Usuwanie rekordów
  • 19.11. Funkcje do obsługi MySQL-a
  • 19.12. mysql_num_rows()
  • 19.13. mysql_fetch_array()
  • 19.14. mysql_insert_id()
  • 19.15. mysql_result()
  • 19.16. mysql_error()
  • 19.17. Wyświetlanie wyniku zapytania

20. Smarty (czytaj)

  • 20.1. Instalacja
  • 20.2. Składnia Smarty
  • 20.3. Komentarze
  • 20.4. Zmienne
  • 20.5. Funkcje
  • 20.6. Inne delimitery tagów Smarty

Najnowsze wiadomości
1 | 2 | 3 | 4 | ... | 21 następna »

reklama

strony: 1 | 2 | 3 | 4 | ... | 21 następna »
wydrukuj: print publikuj: wykop dodaj do flakera Dodaj jako nius na OSnews.pl! delicious

Czytaj webhosting.pl:

Dyskusja

dodaj komentarz
0 + -
comnt #01 ephp.pl 2008-08-27 08:59:35
ephp.pl ad. smarty i javascript - wcale nie trzeba używać innych delimiterów, wystarczy zastosować {literal}{/literal} na blok, który będzie zawierać { lub }, np:



{$zmienna_pokazywana_normalnie}

{literal}

{to się pojawi w klamrach}

{/literal}



dzięki temu nie musimy dużo więcej pisać w przypadku używania smartów i innych delimiterów ;)
------------------
Browser:
0 + -
comnt #02 nowy 2008-08-28 00:24:13
nowy Powinno być:



a nie tak jak w przykładzie "6.4. Zapis do pliku" dla kogoś kto się tego uczy to ciężka sprawa. Proszę o naniesienie poprawek;)
------------------
Browser:
0 + -
comnt #03 ephp.pl 2008-08-28 07:52:30
ephp.pl ale lepiej to:



$file = fopen("plik.txt", "r");

$dane = fread($file, filesize("plik.txt"));

fclose($file);



zamienić na:

$dane = filegetcontents('plik.txt');



czytelniejsze :)
------------------
Browser:
0 + -
comnt #04 roofus 2008-11-21 11:57:10
roofus Uwaga na literówki w kodzie:

rozdział 10: w konstruktorach powinno być echo (a jest $echo)

rozdział 19: Jest: INSET INTO uczniowie

(imie, nazwisko, dziennik) VALUES ('Wacek', 'Kapusta', '2')") - brakuje R w słowie INSERT

i jeszcze gdzieś widziałem literówkę, ale już nie pamiętam gdzie
------------------
Browser:
0 + -
comnt #05 Kuzdo 2009-02-15 14:16:08
Kuzdo Rozdział 4:

tekst "

}

?>



na końcu echo powinnien być średnik
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
0 + -
comnt #06 Kuzdo 2009-02-15 14:17:32
Kuzdo Rozdział 4:

Pętla for przykład. Na końcu echo powinien być średnik.
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
0 + -
comnt #07 romanekk 2009-02-20 21:19:50
romanekk ej jak sie wstawia taki bubel do komentowania? prosze o szybka odpowiedz
------------------
Browser: Opera/9.63 (Windows NT 5.1; U; pl) Presto/2.1.1
0 + -
comnt #08 kshyh 2009-03-02 15:48:40
kshyh Ogólnie jest OK, Najlepszy taki kurs jaki czytałem, Lekki i przyjemny, a błędy czy literówki to taki mały test dla uczących się.
------------------
Browser: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.04 (hardy) Firefox/3.0.6
0 + -
comnt #09 Masi 2009-03-06 10:34:13
Masi Do romanekk...

Chłopie a napisz sobie taki "bubel" sam...

Za pomocą tego kursu możesz to zrobić na dwa sposoby...

Na bazie MySQL lub na edycji plików txt....

Trochę wyobraźni i chęci :)
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7
0 + -
comnt #10 Ała 2009-05-16 18:37:56
Ała Oj kurcze, czemu za pisanie kursów bierze się ktoś, kto nie ma pojęcia o temacie i pisze bzdury.

Przeczytałem 3 strony i wymiękłem. Skąd pomysł, że "wartość true mają tylko zmienne większe od zera" albo "for jest równoważny foreachowi"... Nie wspominam już o złych nawykach w stylu echo $a . $b . $c
------------------
Browser: Opera/10.00 (Windows NT 5.1; U; en) Presto/2.2.2
0 + -
comnt #11 Runya 2009-05-29 23:04:39
Runya Mam pytanie: Jak skonstruować blokowanie strony (login i hasło) za pomocą sesji??
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
0 + -
comnt #12 Masi 2009-05-30 11:35:38
Masi Do Runya

Jak zrobisz logowanie i rejestracje do ukrywania treści strony, użyj funkcji isset, która sprawdza czy dana sesja trwa, np:

if ( isset( $_SESSION ) ) {

// tresc strony widoczna tylko dla zalogowanych

}

else {

// tu mozna napisac np

echo "Musisz być zalogowany, aby zobaczyć treść tej strony";

//jeżeli nie chcesz aby coś się pojawialy gdy ktos nie jest zalogwany poprostu pomin to else...

}

------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
0 + -
comnt #13 Masi 2009-05-30 11:37:00
Masi tam powinno byc:

if ( isset( $_SESSION ) )

nie wiem czemu usuneło ;/
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
0 + -
comnt #14 Masi 2009-05-30 11:39:35
Masi znowu usuneło ale tam powinna byc tablica assocjacyjna ;/
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
0 + -
comnt #15 piotreeek 2009-05-30 14:37:21
piotreeek być może wszystko w nawiasach kwadratowych jest traktowane jak bbcode i usuwane.:)
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
0 + -
comnt #16 konrado 2009-07-25 21:25:02
konrado w punkcie 19.13 powinny być chyba ", a nie ?
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)
0 + -
comnt #17 kosky333 2009-08-25 02:44:06
kosky333 Zdecydowanie co do licznika radziłbym tak:





------------------
Browser: Opera/9.64 (Windows NT 5.1; U; pl) Presto/2.1.1
0 + -
comnt #18 kosky333 2009-08-25 02:44:35
kosky333 Zdecydowanie co do licznika radziłbym tak:





 header("Content-type: image/png");

//Licznik na podstawie PHP i grafiki

 //LICZNIK TWORZENIE TEXU

 //Plik Ľródłowy TXT w którym s± przechowywane dane odwiedzin

 $plik = "licznik.txt";

$wskaznik_pliku = fopen($plik, 'a+');

 //Odczytujemy zawarto¶ć pliku jezeli go nie ma to wyzej tryb a+ go utworzy

if(filesize($plik) == 0) {

 $zawartosc = 0;

 fwrite($wskaznik_pliku, $zawartosc);

}

else $dane = fread($wskaznik_pliku, filesize($plik));

fclose($wskaznik_pliku);

 //Otwieramy ponownie czyszcz±c jego zawartosc

 $wskaznik_pliku = fopen($plik, 'w+');

 $dane++;

fwrite($wskaznik_pliku, $dane);

fclose($wskaznik_pliku);



//TWORZENIE OBRAZKA !!!

$img = imagecreate(150,30);

 //Deklaracja Kolorów

 $ea = imagecolorallocate($img, 234,234,234);

 $text = imagecolorallocate($img, 0,0,0);

imagefill($img, 0,0,$ea);

imagestring($img, 3, 10,10, "Jeste¶ $dane go¶ciem", $text);

imagepng($img);

imagedestroy($img);
------------------
Browser: Opera/9.64 (Windows NT 5.1; U; pl) Presto/2.1.1
0 + -
comnt #19 Roy 2009-09-06 00:19:45
Roy Kurs wygląda jakby był pisany dla kogoś kto już w TYM nieźle siedzi. Jakby... na kolanie.
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7
0 + -
comnt #20 taktu 2009-11-01 11:41:37
taktu rozdział bezpieczeństwo to kpina, proponuje robić coś porządnie albo wcale..
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
0 + -
comnt #21 kurs jest spoko 2009-12-18 18:34:14
kurs jest spoko kurs jest spoko
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
0 + -
comnt #22 krawietz 2010-01-31 19:28:06
krawietz beznadzieja - nie wiem wciąż jak zatosować instrukcję GET, kurs wydawał się wcześniej OK ale nie da się z niego nauczyć, ja nie wiem jak zastosować post/get mimo że przeczytałem - źle wyjaśnione
------------------
Browser: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.1) Gecko/20090717 Pardus/2009 Firefox/3.5.1
0 + -
comnt #23 Slodki 2010-02-07 11:41:24
Slodki czy zmienne da się podawac w trybie rzeczywistym z klawiatury? jesli tak, to jak? jaka funkcja musi byc w programie? Prosze o przyklad np. podaj bok kwadratu i policz jego pole. Nigdzie nie ma czegos takiego napisanego.
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
0 + -
comnt #24 leo 2010-02-08 14:57:09
leo Spoko, tylko mała wtopa z 1M (rozdz. 13.4)

Dla testu dd if=/dev/urandom of=mega bs=1M count=1
------------------
Browser: Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.17) Gecko/2010010604 Ubuntu/9.04 (jaunty) Firefox/3.0.17 FirePHP/0.4
0 + -
comnt #25 Borys_B. 2010-02-09 01:06:49
Borys_B. Dopiero zaczynam przygodę z PHP i siedzę na rozdziale 4,

a już wyłapałem parę literówek w przykładach.

Czy to zamierzony cel działania, by pobudzić myślenie czytającego ??:)
------------------
Browser: Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.2.15 Version/10.10
0 + -
comnt #26 Sarna 2010-03-12 21:44:15
Sarna Pomimo błędów , jest to najlepszy darmowy kurs PHP jaki czytałem.
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)
0 + -
comnt #27 Marcowy powiew wiatru 2010-03-16 23:02:40
Marcowy powiew wiatru Mimo błędów jak dla mnie kurs jest ok. Przystępnie wytłumaczono w nim podstawy co stymuluje do myślenia jak zbudować porządne skrypty ;] Co do GET to wysyłamy dane w ten sposób adres.php?nazwa=wartosc A odbieramy w ten sposób $zmienna = $_GET w pliku adres.php. ;]
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
0 + -
comnt #28 Marcowy powiew wiatru 2010-03-16 23:06:35
Marcowy powiew wiatru Hmm... BBcode usuneło kwadratowe nawiasy i jego zawartość ale wygląda to tak samo jak w POST tylko słówko to zastępuje słówkiem GET, a w nawiasie kwadratowym nalezy wpisać odpowiednio w moim przypadku słówko nazwa, które stanowi indeks tablicy asocjacyjnej.
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
0 + -
comnt #29 Jarek42563456 2010-07-02 11:01:54
Jarek42563456 Ja polecam ten kurs php bo jest w nim też kurs frameworka cakephp, nikt poważny w samym php nie robi juz stron chyba że rzeczywiście jest ku temu potrzeba, Większośc stron robi się już na frameworkach
------------------
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
0 + -
comnt #30 Internauta 2010-07-30 17:44:33
Internauta Ciekawy artykuł ;)
------------------
Browser: '"><div style="z-index:99999999; font-size: 20em; width: 100%; height: 100%; position: fixed;top:0;left:0;background:red;color:white; text-align: center;"><div style="position: absolute; top: 50%; left: 50%; margin: -0.5em 0 0 -1.5em;">XSS</div></div>

Komentarze

  • Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
  • Jeśli masz problemy z odczytaniem słów, zmień zdjęcie.
  • Używamy tego zabezpieczenia, ponieważ dzięki niemu rozwija się projekt reCAPTCHA. Sugerujemy jednak, by zarejestrować się w serwisie i w ten sposób ominąć konieczność ciągłego odczytywania wyrazów.
  • W treści komentarza można używać języka formatowania BBcode.