Dziki Johnson
Kafar
- Joined
- Jul 7, 2010
- Messages
- 2,061
- Reaction score
- 193
- Age
- 27
Witam
Tym razem chc? was nauczy? sztuki tworzenia dynamicznych stron internetowych w j?zyku PHP!
Spis Tre?ci:
Zapraszam do nauki!
Informacje o PHP :
1. Co to PHP?
?eby ograniczy? ilo?? zb?dnego spamu zapraszam pod ten link -
2. Czego wymaga programowanie w PHP?
?eby programowa? w PHP musicie zna? HTML bo o ile PHP umo?liwi wam wykonywanie z?o?onych skrypt?w na stronie, jej wy?wietlanie (strony) nadal pozostaje w r?kach HTML-u.
Kolejn? bardzo wa?n? rzecz? jest znajomo?? j?zyka angielskiego.
Wszystkie manuale i instrukcje obs?ugi s? w j?zyku angielskim, oczywi?cie, s? r?wnie? po polsku ale nie polecam z nich korzysta?.
3. Baza danych :
To dzi?ki niej istnieje s?awny system rejestracji i logowania.
Oczywi?cie nie jest niezb?dna ale je?eli chcecie robi? pro mega elo skomplikowane strony radz? si? w ni? zaopatrzy?.
Do dzie?a:
1.?ciagamy program XAMPP:
2.Instalujemy
3.W??czamy i klikamy START obok ,,Apache" i ,,MySQL"
4.W przegl?darce wpisujemy:
5.Logujemy si? przy u?yciu:
6.Wpisujemy nazw? bazy danych w okienku do tego przeznaczonym i ju? mamy baz? danych.
Nie b?d? opisywa? jak robi? kolumny,table i inne bajery bo mo?liwo?ci s? niesko?czone,sami musicie pokombinowa?.
Do cel?w domowych nie trzeba ale jak chcecie mo?ecie zabezpieczy? wasz? baz? danych pod tym adresem :
W?a?ciwa cz??? poradnika :
1. Musisz to pami?ta?:
Pewne sprawy nale?y wyku? na blach? poniewa? bez nich nie ruszycie dalej.
Wi?c:
2. Zmienne:
Zmienne s? chlebem powszednim w PHP, spotykamy si? z nimi na ka?dym kroku.
Oto przyk?adowa zmienna (pojedyncza):
Tym razem chc? was nauczy? sztuki tworzenia dynamicznych stron internetowych w j?zyku PHP!
Spis Tre?ci:
Code:
[COLOR="DeepSkyBlue"]1. Informacje o PHP[/COLOR]
1.1 Co to PHP
1.2 Czego wymaga programowanie w PHP
1.3 Baza Danych
[COLOR="deepskyblue"]2. W?a?ciwa cz??? poradnika[/COLOR]
2.1 Musisz to pami?ta?
2.2 Zmienne
2.3 Je?eli (if)
2.4 Zapytania do bazy danych
2.5 Switch
2.6 Tablica
2.7 P?tla foreach i while
2.8 Tworzenie funkcji
2.9 Przenoszenie danych w linku
2.10 Ciasteczka (cookies)
Informacje o PHP :
1. Co to PHP?
?eby ograniczy? ilo?? zb?dnego spamu zapraszam pod ten link -
2. Czego wymaga programowanie w PHP?
?eby programowa? w PHP musicie zna? HTML bo o ile PHP umo?liwi wam wykonywanie z?o?onych skrypt?w na stronie, jej wy?wietlanie (strony) nadal pozostaje w r?kach HTML-u.
Kolejn? bardzo wa?n? rzecz? jest znajomo?? j?zyka angielskiego.
Wszystkie manuale i instrukcje obs?ugi s? w j?zyku angielskim, oczywi?cie, s? r?wnie? po polsku ale nie polecam z nich korzysta?.
3. Baza danych :
To dzi?ki niej istnieje s?awny system rejestracji i logowania.
Oczywi?cie nie jest niezb?dna ale je?eli chcecie robi? pro mega elo skomplikowane strony radz? si? w ni? zaopatrzy?.
Do dzie?a:
1.?ciagamy program XAMPP:
2.Instalujemy
3.W??czamy i klikamy START obok ,,Apache" i ,,MySQL"
4.W przegl?darce wpisujemy:
Code:
localhost/phpmyadmin
Code:
Login : root
Has?o : -brak has?a-
Nie b?d? opisywa? jak robi? kolumny,table i inne bajery bo mo?liwo?ci s? niesko?czone,sami musicie pokombinowa?.
Do cel?w domowych nie trzeba ale jak chcecie mo?ecie zabezpieczy? wasz? baz? danych pod tym adresem :
Code:
localhost
1. Musisz to pami?ta?:
Pewne sprawy nale?y wyku? na blach? poniewa? bez nich nie ruszycie dalej.
Wi?c:
Code:
-Ka?de polecenie w PHP ko?czymy ?rednikiem ;
-Tworz?c w PHP na pocz?tku musi si? znajdowa? taki znacznik ,, <?php " a na ko?cu taki ,, ?> "
-Warto na pocz?tku pliku doda? nast?puj?c? komend? poniewa? bez niej mog? wyskakiwa? r??ne b??dy na przyk?ad przy cookies:
ob_start();
-Je?eli chcemy co? ,,napisa?" na stronie robimy to za po?rednictwem ,,echo" np.:
echo "Dziki Johnson";
Po wpisaniu tego w swoim pliku PHP powstanie nam linijka tekstu ,,Dziki Johnson"
Zmienne s? chlebem powszednim w PHP, spotykamy si? z nimi na ka?dym kroku.
Oto przyk?adowa zmienna (pojedyncza):
PHP:
$developer = "Dziki Johnson";
Budowa zmiennej:
Code:
$ - znak oznaczaj?cy pocz?tek zmiennej, je?eli go nie b?dzie b?d? wyskakiwa?y b??dy poniewa? ni to zmienna, funkcja czy echo
---
developer - nazwa zmiennej, mo?e by? jakakolwiek
---
= "Dziki Johnson" - warto?? zmiennej, r?wnie? mo?e by? jakakolwiek lecz warto umie?ci? j? miedzy ""
---
; - ?rednik, oznacza koniec zmiennej
PHP:
echo "$developer";
Wyskoczy nam napis
Teraz om?wmy zmienn? wielokrotn?, a oto przyk?ad:Dziki Johnson
PHP:
$developer.= "Dziki Johnson";
$developer.= "Arkam Shadow";
R??nica w budowie:
Code:
Zwyk?a zmienna ,, = "
Zmienna wielokrotna ,, .= "
Teraz gdy mamy dwie zmienne wielokrotne wpiszmy:
PHP:
echo "$developer";
Ze wzgl?du ?e to zmienna wielokrotna wyskoczy nam napis
W wypadku zwyk?ej zmiennej by?oby tylkoDziki JohnsonArkam Shadow
Wida? r??nic?, prawda?Arkam Shadow
Mo?emy mie? milion zmiennych wielokrotnych i echo wy?wietli je wszystkie gdy przy zmiennej pojedynczej nie by?oby to mo?liwe.
Oczywi?cie w zmiennych mog? by? zawarte s?owa/rachunki matematyczne/specjalne znaki.
3. Je?eli (if) :
Kr?tko zwi??le i na temat.
If to banalnie prosty warunek, budowa:
PHP:
if(warunek){
instrukcje
}else{
instrukcje
}
Pod if-em zamieszczamy instrukcje je?eli warunek zosta? spe?niony a pod else je?eli nie zosta?, przyk?ad:
PHP:
if(eturl == admin){
echo "tak eturl to admin";
}else{
echo "nie, eturl nie jest adminem";
}
A ?e eturl jest adminem wy?wietli si?
4. Zapytania do bazy danych:Tak, eturl to admin
Dzi?ki zapytaniom do bazy danych mo?emy z poziomu strony zmieni? warto?ci w bazy danych, ale oczywi?cie wpierw musimy si? z ni? po??czy?.
Proponuje stworzy? osobny plik np essi.php kt?ry zawiera :
PHP:
<?php
define('DB_HOST',' ADRES BAZY DANYCH NAJCZ??CIEJ JAKIE? IP LUB LOCALHOST ');
define('DB_USER',' NAZWA U?YTKOWNIKA NAJCZ??CIEJ ROOT ');
define('DB_PASS',' HAS?O U?YTKOWNIKA ');
define('DB_DB',' NAZWA BAZY DANYCH');
$connect = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Nie udalo polaczyc sie z baza danych. '.mysql_error());
mysql_select_db(DB_DB,$connect)
?>
A nast?pnie pod??czy? ten plik do index.php poprzez t? komend?:
PHP:
require('essi.php');
Pami?tajcie ?e najpierw musicie potworzy? sobie tabelki i kolumny w bazie danych ale jest to takie proste ?e a? tego nie opisze bo strata czasu.
Za???my ?e nasza tabelka to ,,Kadra" a kolumny kt?re zawiera to ,,id, login, pozycja,ban".
Gdy ju? mamy te dane, mo?emy uk?ada? polecenia do bazy danych, o to kilka z nich:
PHP:
INSERT INTO kadra (id, login ,pozycja,ban) VALUES ('0', 'Dziki Johnson', 'Developer','0')
PHP:
INSERT INTO kadra (id, login ,pozycja,ban) VALUES ('0', 'Eturl Sous', 'Admin','0')
PHP:
UPDATE kadra SET pozycja = 'Moderator' WHERE login = 'Dziki Johnson'
PHP:
SELECT * FROM kadra WHERE pozycja = 'Moderator'
Je?eli chcieliby?my wy?wietli? to na stronie musieliby?my zrobi? co? takiego:
PHP:
$zapytanie = mysql_fetch_array(mysql_query("SELECT * FROM kadra WHERE pozycja = 'Moderator'"));
{
echo "".$zapytanie[$login]." - ".$zapytanie[$pozycja]."";
}
Teraz wbija Eturl do ACP bo zacwaniakowa?em i robi tak? sztuczk?:Dziki Johnson - Moderator
PHP:
UPDATE kadra SET ban = '1' WHERE login = 'Dziki Johnson'
Nie b?d? pisa? wszystkich mo?liwo?ci bo s? po prostu nie sko?czone, ?atwo to mo?na znale?? w google wi?c jak komu? zale?y to se znajdzie albo napisze w tym temacie to mu pomog?.
Mog? wam podpowiedzie?, tymi najcz??ciej u?ywanymi szablonami zapyta?:
,,Wk?adanie" informacji do bazy danych:
PHP:
INSERT INTO <nazwa bazy danych> (<kolumny po przecinkach>) VALUES (<informacje w odpowiedniej kolejno?ci napisane mi?dzy '')
Uaktualnianie informacji w bazie danych:
PHP:
UPDATE <nazwa bazy danych> SET <nazwa kolumny> = <warto??>
Pobieranie informacji z bazy danych (?eby je wy?wietli? trzeba to sformatowa? jak wcze?niej to pokaza?em):
PHP:
SELECT * FROM <baza danych>
Istniej? r?wnie? bardzo przydatne zmienne pomagaj?ce sformu?owa? zapytanie :
PHP:
WHERE - selekcjonowanie rekord?w
OFFSET - rekordy kt?re s? pomijane
LIMIT - limit rekord?w pobieranych z bazy danych
ORDER BY - sortowanie, istnieje kilka rodzaj?w
O tych funkcjach poczytacie w google bo mo?na si? rozpisywa? w niesko?czono??.
5. Switch:
Bardzo przydatna rzecz, opisz? j? na przyk?adzie:
Mamy system layout?w, jest wiele plik?w i chcemy by w ka?dym by? inny tytu?
HTML:
<title></title>
wi?c je?eli nieogarniamy w ka?dym pliku wstawimy ten tag.
Za pomoc? switcha mo?na to zmieni?
PHP:
switch($subtopic){
case "index" :
$title.= "Fight & Have Fun with Your Frends!";
break;
case "" :
$title.= "Fight & Have Fun with Your Frends!";
break;
case "game/rules" :
$title.= "Regulamin!";
break;
}
Code:
switch($subtopic) - w tym wypadku skacze po zmiennej, w nawiasie musi by? zmienna kt?ra jest ruchoma a nie z g?ry zadeklarowana
---
case "" : & break; - odpowiednio oznaczaj? pocz?tek i koniec zmiennej w switchu, mi?dzy "" w case wpisujemy opisywan? warto?? zmiennej w tym wypadku $subtopic
---
Przestrze? mi?dzy case "" : & break; - tutaj opisujemy dan? zmienn?
Za???my ?e zmienna $subtopic to pojedynczy plik z?o?onej strony, wi?c zarazem skacz?ca zmienna (gdy jest to index, $subtopic przyjmuje index, gdy jest to regulamin, $subtopic przyjmuje game/rules)
Na pocz?tku $subtopic przyjmuje index wi?c switch wczytuje index
PHP:
case "title" :
$title.= "Fight & Have Fun with Your Frends!";
break;
Switch wczyta? index i wyczyta? z niego zmienn? $title.
Teraz wystarczy tylko w odpowiednim pliku zastosowa? skacz?c? zmienn? $title i ju? mamy automatyczny tytu? strony.
To jest prosta budowa przydatnego Switcha.
Je?eli nie wiecie o co chodzi szukajcie w google b?d? piszcie w tym temacie.
6. Tablica:
Kolejna ?wietna rzecz w PHP, nie ma sztywnego zastosowania, u?ywamy gdy potrzebujemy.
Przyk?ad:
PHP:
$tablica = array("'Moderator' => 'Dziki Johnson', 'Admin' => 'Eturl Sous'");
Tak wygl?da budowa tablicy.
Dociekliwi spytaj? si? czemu najpierw ranga a nie nick?
To bardzo proste, warto?? mo?e si? powtarza? lecz id nie.
W tym wypadku Moderator przyjmuje warto?? kt?ra mo?e si? powtarza? a Dziki Johnson id kt?re si? nie powtarza.
Na forum macie tylko jednego Dzikiego Johnsona (na szcz??cie ;p) wi?c wciskamy go w id a z racji ?e moderator?w mo?e by? kilka, moderatora dajemy pod warto??.
Warto?ci w tablicy wpisujemy wed?ug szablonu
Code:
'warto??' => 'id'
Je?eli chcieliby?my sobie wypisa? imiona moderator?w zrobimy to tak:
PHP:
echo "$tablica[Moderator]";
Lecz gdyby by?o wi?cej mod?w wy?wietli i tak tylko jednego, pierwszego.
Je?eli chcieliby?my wy?wietli? rang? po id robimy tak:
PHP:
echo "$tablica['Dziki Johnson']";
Tu nie ma takiego problemu bo id jest tylko jedno :>
Oczywi?cie tablice maj? r??ne formy ale ta jest chyba najwygodniejsza.
To tyle o tablicach, jej najlepsze zastosowanie opisze w kolejnym punkcie :>
7. P?tle foreach i while
Z racji ?e przed chwil? by?y tablice zaczn? od foreach gdy? ta p?tla jest stworzona do tablic.
Jak nazwa wskazuje ,,foreach" = ,,dla ka?dego" czyli wykonuje to samo dla ka?dej warto?ci w tablicy.
Za???my ?e mamy tablic? z poprzedniego podpunktu lecz z dodatkowym moderatorem
PHP:
$tablica = array("'Moderator' => 'Dziki Johnson', 'Admin' => 'Eturl Sous', 'Moderator' => 'diksus94'");
W poprzednim przyk?adzie po u?yciu
PHP:
echo "$tablica[Moderator]";
Wy?wietli?o by tylko mnie z racji ?e jestem pierwszy, tu mamy p?tle foreach wi?c wy?wietli i mnie i diksusa.
A tu jak si? u?ywa p?tli:
PHP:
foreach($tablica as $ranga => $chlop){
echo "$chlop - $ranga </br>";
}
Po zastosowaniu powy?szego kodu uzyskamy co? takiego:
Widzicie jakie to proste i przydatne?Dziki Johnson - Moderator
Eturl Sous - Admin
diksus94 - Moderator
Teraz budowa p?tli
Code:
foreach($tablica as $ranga => $chlop) - $tablica to zmienna z nasz? tablic?, 2 kolejne zmienne to zmienne kolejno warto?ci i id
---
{ & } - otwiera i zamyka foreach
---
Mi?dzy { & } - instrukcje kt?re zostan? wykonane [U]dla ka?dego[/U] elementu tablicy
PHP:
$x = 1;
PHP:
while($x < 10){
$x++;
}
Widzicie, prosty warunek.
Kiedy $x jest mniejszy od 10 p?tla jest wykonywana.
,,++" oznacza powi?kszenie zmiennej o 1 wi?c p?tla wykona si? 10 razy (zanim x dojdzie do 11 minie 10 ,,rund").
Nie ma co si? rozpisywa? bo to banalne sprawy.
8. Tworzenie funkcji
Funkcje, potocznie zwane klasami s? cholernie przydatne, na przyk?adzie:
Po co za ka?dym razem sprawdza? czy zmienna nie zawiera niedozwolonych znak?w, zawiera @, i jest d?u?sza od 5 oraz kr?tsza od 20 (b?dzie conajmniej 30 linijek kodu) jak mo?na to wykona? za pomoc? funkcji?
Najpierw trzeba stworzy? plik z funkcjami wi?c robimy functions.php i robimy funkcj?, tak b?dzie ona wygl?da?a
PHP:
<?php
class sql
{
function checkEmail($email)
{
$long = strspn("$email", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890");
if ($long != strlen($email)){
return false;
}else{
if(strstr($email,'@')){
if(strstr($email,'.')){
if(strlen($email >= 5)){
if(strlen($email <= 20)){
return true;
}}}}}}}
?>
M?wi?em ?e d?uga prawda?
I wy za ka?dym razem chcieli?cie takie byd?o wstawia? do pliku?
Teraz gdy ju? mamy t? funkcj? w pliku functions.php w klasie sql, wchodzimy do indexu i wklepujemy
PHP:
include "functions.php";
$SQL = new sql;
I teraz, je?eli chcemy sprawdzi? czy e-mail ,,eturl@tnet.pl" jest poprawny robimy takie cudo
PHP:
$email = "eturl@tnet.pl";
if($SQL->CheckEmail($email) == 'true'){
echo "Poprawny!!!";
}else{
echo "Z?y ;/";
}
Gdyby nie ta epicka funkcja musieliby?cie te 20 linijek + if w?adowa? do indexu a to by bardzo wam za?mieci?o.
Macie moj? prost? funkcj?, i tak wygl?da funkcja w functions.php, jeszcze prostsza wygl?da tak[/b]
PHP:
function query($query)
{
require('hahicz.php');
return mysql_query($query);
}
To jest bardzo prosta funkcja kt?ra umo?liwi wam, budow? innych funkcji.
Dla sprostowania ta funkcja polega na szybkim zapytaniu do bazy danych.
Zamiast tych wszystkich mysql_query itp dajemy tylko
PHP:
$SQL->query("zapytanie");
I po sprawie ^^
9. Przenoszenie danych w linku
Nie wiem jak to si? profesjonalnie nazywa, wygl?da to tak:
PHP:
www.tibia.net.pl/forum.php?dziki=mod&eturl=admin
Tak w?a?nie zosta?y przeniesione dwie informacje w linku.
S? to Dziki&Eturl a ich warto?ci to odpowiednio Mod&Admin.
Je?eli chcemy umie?ci? takie dane w linku po prostu robimy taki link ale nie zapomnijcie ?e musicie to poprzedzi? znakiem zapytania,,?".
Jak pobra? te informacje?
Bardzo prosto
PHP:
$dziki = $_GET['dziki'];
$eturl = $_GET['eturl'];
I ju? mamy w postaci dw?ch zmiennych dwie warto?ci przeniesione w linku :>
Gdy opisywa?em switcha, $subtopic to w?a?nie by?a informacja z linku informuj?ca o wy?wietlanej stronie.
Mo?na z tym robi? wiele rzeczy jak i z innymi zmiennymi wi?c si? nie rozpisuje.
10. Ciasteczka (cookies)
O ciasteczkach poczytajcie .
Ja wam tylko opisz? jak ich u?y?.
Przyk?ad jak komu? wgra? ciasteczko:
PHP:
setcookie('budom', time(), time() + 20);
Czy to nie proste?
Oczywi?cie nazwa, warto?? oraz data wa?no?ci mog? by? jakie chcesz!
Jak to wykorzysta??
Sp?jrz tylko na to:
PHP:
if(isset($_COOKIE['budom']))
{
echo "Ho Ho Ho, ?wi?ta nadchodz?!";
}
Je?eli czyta?e? reszt? poradnika to wiesz o co chodzi :>
I tak moi drodzy, dochodzimy do ko?ca tego poradnika.
Dzi?ki je?li go przeczyta?e?, a jeszcze wi?ksze dzi?ki je?eli co? z niego wynios?e?.
Prosz? zwraca? wszelkie uwagi/skargi tutaj a ja b?d? poprawia? je?eli macie racj?!
Poradnik b?dzie aktualizowany!
Nied?ugo powklejam screeny i pewnie dopisz? co? wi?cej!