Ειςαγωγό PHP Basic Τι είναι η PHP; Η PHP είλαη κηα γιώζζα πξνγξακκαηηζκνύ πνπ ζρεδηάζηεθε γηα ηε δεκηνπξγία δυναμικών ζελίδων ζην δπαδίθηπν θαη είλαη επηζήκσο γλσζηή σο: HyperText Preprocessor. Είλαη κηα server-side scripting γλώζζα εθηειείηε ζηνλ δηαθνκηζηή) πνπ γξάθεηαη ζπλήζσο πιαηζησκέλε από HTML, γηα κνξθνπνίεζε ησλ απνηειεζκάησλ. Αληίζεηα από κηα ζπλεζηζκέλε HTML ζειίδα ε ζειίδα PHP δελ ζηέιλεηαη άκεζα ζε έλαλ πειάηε client), αληί απηνύ πξώηα αλαιύεηαη θαη κεηά απνζηέιιεηαη ην παξαγόκελν απνηέιεζκα. Σα ζηνηρεία HTML ζηνλ πεγαίν θώδηθα κέλνπλ σο έρνπλ, αιιά ν PHP θώδηθαο εξκελεύεηαη θαη εθηειείηαη. Ο θώδηθαο PHP κπνξεί λα ζέζεη εξσηήκαηα ζε βάζεηο δεδνκέλσλ, λα δεκηνπξγήζεη εηθόλεο, λα δηαβάζεη θαη λα γξάςεη αξρεία, λα ζπλδεζεί κε απνκαθξπζκέλνπο ππνινγηζηέο, θ.ν.θ. ε γεληθέο γξακκέο νη δπλαηόηεηεο πνπ καο δίλεη είλαη απεξηόξηζηεο. Σύνταξη Η ζύνηαξη ηηρ PHP: Έλα θνκκάηη PHP πάληα μεθηλάεη κε ην θαη ηειεηώλεη κε θαη κπνξεί λα ηνπνζεηεζεί νπνπδήπνηε ζηε ζειίδα. Τπάξρνπλ 2 βαζηθέο δειώζεηο ζηε PHP, ε echo θαη ε print. ην παξάδεηγκα πνπ αθνινπζεί ρξεζηκνπνηνύκε ηε δήισζε echo γηα λα εμάγνπκε ην θείκελν "Hello World". echo "Hello World"; Σημείωζη: Σν αξρείν ζα πξέπεη λα έρεη θαηάιεμε.php, εάλ ε θαηάιεμε ηνπ αξρείνπ είλαη.html, ν PHP θώδηθαο δε ζα εθηειεζηεί. Σσόλια ζηην PHP: ρξεζηκνπνηνύκε ην // γηα λα θάλνπκε ζρόιηα κηαο γξακκήο θαη ην /* θαη */ γηα λα θάλνπκε κεγαιύηεξα θνκκάηηα ζρνιίσλ. //This is a comment /* This is a comment block */ Μεηαβληηέρ ζηην PHP: Οη κεηαβιεηέο ρξεζηκνπνηνύληαη γηα ηελ απνζήθεπζε ηηκώλ, όπσο θείκελν, αξηζκνύο ή πίλαθεο. Όηαλ θαζνξίδνληαη νη κεηαβιεηέο, κπνξνύλ λα ρξεζηκνπνηεζνύλ μαλά θαη μαλά κέζα ζην script καο. Όιεο νη κεηαβιεηέο ζηελ PHP μεθηλάλε κε ην ζύκβνιν $. Παξαιείπνληαο ην ζύκβνιν $, ν θώδηθαο δε ζα ηξέμεη ζσζηά. $var_name = value; $txt="hello World!"; $x=16; Σν όλνκα κηαο κεηαβιεηήο ζα πξέπεη λα μεθηλάεη κε έλα γξάκκα ή κε ηελ θάησ παύια "_" Σν όλνκα κηαο κεηαβιεηήο ζα πξέπεη λα πεξηέρεη κόλν αιθαξηζκεηηθνύο ραξαθηήξεο θαη θάησ παύιεο a-z, A- Z, 0-9, and _ ) Σν όλνκα κηαο κεηαβιεηήο δε ζα πξέπεη λα πεξηέρεη θελά. Εάλ ην όλνκα κηαο κεηαβιεηήο είλαη πεξηζζόηεξεο από κία ιέμεηο, απηέο ζα πξέπεη λα ρσξίδνληαη κε θάησ παύιεο $my_string), ή κε θεθαιαία γξάκκαηα $mystring) String μεηαβληηέρ ζηην PHP: Οη κεηαβιεηέο ηύπνπ string ρξεζηκνπνηνύληαη γηα ηηκέο πνπ πεξηέρνπλ ραξαθηήξεο. Έλα string κπνξεί λα ρξεζηκνπνηεζεί απεπζείαο κέζα ζε κία ζπλάξηεζε ή κπνξεί λα απνζεθεπηεί κέζα ζε κία κεηαβιεηή. ην παξάδεηγκα πνπ αθνινπζεί, ην PHP script θαηαρσξεί ην θείκελν "Hello World" ζε κία κεηαβιεηή ηύπνπ string πνπ νλνκάδεηαη $txt: WEB: http://ekoletsou.gr Page 1
$txt="hello World"; echo $txt; Hello World Ο ηελεζηήρ ζςνένυζηρ: Τπάξρεη κόλν έλα ηειεζηήο ζπλέλσζεο string ζηελ PHP θαη είλαη ν.) πνπ ρξεζηκνπνηείηαη γηα λα ηνπνζεηήζεη δύν ηηκέο string καδί: $txt1="hello World!"; $txt2="what a nice day!"; echo $txt1. " ". $txt2; Hello World! What a nice day! Η ζςνάπηηζη strlen): ρξεζηκνπνηείηαη γηα λα επηζηξέςεη ην κήθνο ελόο string: echo strlen"hello world!"); 12 Η ζςνάπηηζη strpos): ρξεζηκνπνηείηαη γηα λα αλαδεηήζεη ραξαθηήξα/θείκελν ζε έλα string. Αλ βξεζεί θάηη πνπ ηαηξηάδεη κε ηελ αλαδήηεζε, ε ζπλάξηεζε ζα επηζηξέςεη ηε ζέζε ηνπ ραξαθηήξα ηνπ πξώηνπ ηαηξηάζκαηνο. Εάλ θαλέλα ηαίξηαζκα δε βξεζεί, ε ζπλάξηεζε ζα επηζηξέςεη ΦΕΤΔΕ FALSE). ην παξάδεηγκα πνπ αθνινπζεί αλαδεηνύκε ηε ιέμε "world" κέζα ζην string καο: echo strpos"hello world!","world"); 6 Σημείωζη: Ο ιόγνο πνπ ε ζέζε ηνπ string "world" ζην παξάδεηγκα είλαη 6 θαη όρη 7) είλαη επεηδή ε πξώηε ζέζε ραξαθηήξα ηνπ string είλαη ην 0, θαη όρη ην 1. Τελεςτϋσ Απιθμηηικοί Τελεζηέρ Τελεζηήρ Πεπιγπαθή Παπάδειγμα Αποηέλεζμα + Πξόζζεζε x=2; x+2 4 - Αθαίξεζε x=2; 5-x 3 * Πνιιαπιαζηαζκόο x=4; x*5 20 / Δηαίξεζε 15/5; 5/2 3; 2.5 % Modulus Τπόινηπν δηαίξεζεο) 5%2; 10%8; 10%2 1; 2; 0 ++ Αύμεζε x=5; x++ x=6 -- Μείσζε x=5; x-- x=4 Ανάθεζη Τελεζηών Τελεζηήρ Παπάδειγμα Ανηίζηοισα = x=y x=y += x+=y x=x+y -= x-=y x=x-y *= x*=y x=x*y /= x/=y x=x/y.= x.=y x=x.y %= x%=y x=x%y Τελεζηέρ Σύγκπιζηρ Τελεζηήρ Πεπιγπαθή Παπάδειγμα == ηζνύηαη κε 5==8 επηζηξέθεη ςεπδέο === ηζνύηαη αθξηβώο κε ηηκή θαη ηύπνο) 5!=8 επηζηξέθεη αιεζέο!= δελ ηζνύηαη κε 5<>8 επηζηξέθεη αιεζέο WEB: http://ekoletsou.gr Page 2
> είλαη κεγαιύηεξν κε 5>8 επηζηξέθεη ςεπδέο < είλαη κηθξόηεξν κε 5<8 επηζηξέθεη αιεζέο >= είλαη κεγαιύηεξν ή ίζν κε 5>=8 επηζηξέθεη ςεπδέο <= είλαη κηθξόηεξν ή ίζν κε 5<=8 επηζηξέθεη αιεζέο Λογικοί Τελεζηέρ Τελεζηήρ Πεπιγπαθή Παπάδειγμα && θαη x=6; y=3; x < 10 && y > 1) αιεζέο ή x=6; y=3; x==5 y==5) ςεπδέο! δηάθνξν x=6; y=3;!x==y) αιεζέο Δηλώςεισ If else Πνιύ ζπρλά όηαλ γξάθνπκε θώδηθα, ζέινπκε λα δεκηνπξγήζνπκε δηαθνξεηηθέο ελέξγεηεο γηα δηαθνξεηηθέο απνθάζεηο. Έηζη, κπνξνύκε λα ρξεζηκνπνηνύκε δειώζεηο θαηαζηάζεσλ ζηνλ θώδηθά καο γηα λα ην θάλεη απηό. ηελ PHP έρνπκε ηηο αθόινπζεο δειώζεηο θαηαζηάζεσλ: if if...else if...else if...else switch Δήλυζη If: Υξεζηκνπνηνύκε ηε δήισζε if γηα ηελ εθηέιεζε θάπνηνπ θώδηθα εάλ ε θαηάζηαζε πνπ εμεηδηθεύεηαη είλαη αιεζήο: if condition) code to be executed if condition is true; ην αθόινπζν παξάδεηγκα ζα εκθαληζηεί σο έμνδνο ην "Have a nice weekend!" εάλ ε ηξέρνπζα κέξα είλαη ε Παξαζθεπή: $d=date"d"); if $d=="fri") echo "Have a nice weekend!"; Δήλυζη If...else: Υξεζηκνπνηνύκε ηε δήισζε if...else γηα ηελ εθηέιεζε θάπνηνπ θώδηθα εάλ ε θαηάζηαζε είλαη αιεζήο θαη θάπνηνπ άιινπ θώδηθα εάλ ε θαηάζηαζε δελ είλαη αιεζήο: if condition) code to be executed if condition is true; else code to be executed if condition is false; Παπάδειγμα 1: ην αθόινπζν παξάδεηγκα ζα εκθαληζηεί σο έμνδνο ην "Have a nice weekend!" εάλ ε ηξέρνπζα κέξα είλαη ε Παξαζθεπή, δηαθνξεηηθά ζα εκθαληζηεί σο έμνδνο ην "Have a nice day!": $d=date"d"); if $d=="fri") echo "Have a nice weekend!"; else echo "Have a nice day!"; Παπάδειγμα 2: Εάλ πεξηζζόηεξεο από κία γξακκέο θώδηθα ζα πξέπεη λα εθηειεζηνύλ αλ κία ζπλζήθε είλαη αιεζήο/ ςεπδήο, νη γξακκέο ζα πξέπεη λα εζσθιείνληαη κέζα ζε θαηάιιειεο αγθύιεο: WEB: http://ekoletsou.gr Page 3
$d=date"d"); if $d=="fri") echo "Hello!<br />"; echo "Have a nice weekend!"; echo "See you on Monday!"; Δήλυζη If...else if...else: Υξεζηκνπνηνύκε ηε δήισζε if...else if...else γηα ηελ επηινγή ελόο από ηα πνιιά θνκκάηηα θώδηθα πξνο εθηέιεζε: if condition) code to be executed if condition is true; else if condition) code to be executed if condition is true; else code to be executed if condition is false; ην αθόινπζν παξάδεηγκα ζα εκθαληζηεί σο έμνδνο ην "Have a nice weekend!" εάλ ε ηξέρνπζα κέξα είλαη ε Παξαζθεπή, θαη "Have a nice Sunday!" εάλ ε ηξέρνπζα κέξα είλαη ε Κπξηαθή, δηαθνξεηηθά ζα εκθαληζηεί σο έμνδνο ην "Have a nice day!": $d=date"d"); if $d=="fri") echo "Have a nice weekend!"; elseif $d=="sun") echo "Have a nice Sunday!"; else echo "Have a nice day!"; Δόλωςη Switch Δήλυζη switch: Υξεζηκνπνηνύκε ηε δήισζε switch γηα ηελ επηινγή ελόο από ηα πνιιά θνκκάηηα θώδηθα πξνο εθηέιεζε. Αξρηθά έρνπκε κία απιή έθθξαζε n ζπλήζσο είλαη κία κεηαβιεηή), ε νπνία είλαη πξνο αμηνιόγεζε. Η ηηκή ηεο έθθξαζεο ζπγθξίλεηαη κε ηηο ηηκέο γηα θάζε πεξίπησζε ηεο δνκήο. Εάλ ππάξμεη θάπνην ηαίξηαζκα, ην θνκκάηη θώδηθα πνπ αληηπξνζσπεύεη απηή ηελ πεξίπησζε εθηειείηαη. Υξεζηκνπνηνύκε ηε break γηα λα εκπνδίζνπκε ηνλ θώδηθα λα ηξέμεη ηελ επόκελε πεξίπησζε απηόκαηα. Οη πξνθαζνξηζκέλεο δειώζεηο ρξεζηκνπνηνύληαη εάλ δελ ππάξμεη θαλέλα ηαίξηαζκα. switch n) case label1: code to be executed if n=label1; break; case label2: code to be executed if n=label2; break; default: code to be executed if n is different from both label1 and label2; switch $x) case 1: echo "Number 1"; break; WEB: http://ekoletsou.gr Page 4
case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; Πύνακεσ Τι είναι έναρ πίνακαρ; Μία κεηαβιεηή είλαη έλαο απνζεθεπηηθόο ρώξνο πνπ θξαηάεη έλαλ αξηζκό ή έλα θείκελν. Σν πξόβιεκα είλαη όηη κία κεηαβιεηή κπνξεί λα θξαηήζεη κία κόλν ηηκή. Έλαο πίλαθαο array) είλαη κία εηδηθή κεηαβιεηή, ε νπνία κπνξεί λα απνζεθεύζεη πνιιαπιέο ηηκέο ζε κία κόλν κεηαβιεηή. Εάλ έρνπκε κία ιίζηα από αληηθείκελα, γηα παξάδεηγκα κία ιίζηα από νλόκαηα απηνθηλήησλ, ην λα απνζεθεύακε ηα απηνθίλεηα ζε απιέο κεηαβιεηέο ζα ήηαλ θάπσο έηζη: $cars1="saab"; $cars2="volvo"; $cars3="bmw"; Παξόια απηά, ηη ζα γηλόηαλ εάλ ζα ζέιακε λα θάλνπκε κία εθινγή κεηαμύ ησλ απηνθηλήησλ θαη λα βξίζθακε θάπνην ζπγθεθξηκέλν; Καη ζθεθηείηε ηη ζα γηλόηαλ εάλ δελ είρακε 3 απηνθίλεηα, αιιά 300! Η θαιύηεξε ιύζε εδώ είλαη ε ρξήζε πίλαθα! Έλα πίλαθαο κπνξεί λα θξαηήζεη όιεο ηηο ηηκέο ησλ κεηαβιεηώλ θάησ από ην ίδην όλνκα, θαη κπνξνύκε λα έρνπκε πξόζβαζε ζηηο ηηκέο θάλνληαο αλαθνξά ζην όλνκα ηνπ πίλαθα. Κάζε ζηνηρείν ζηνλ πίλαθα έρεη έλα δηθό ηνπ κνλαδηθό ID ώζηε λα είλαη εύθνια πξνζβάζηκν. ηελ PHP ππάξρνπλ 3 είδε πηλάθσλ: Αξηζκεηηθνί πίλαθεο Πίλαθεο ζπζρεηίζεσλ Πνιπδηάζηαηνη πίλαθεο Απιθμηηικοί πίνακερ: Έλαο αξηζκεηηθόο πίλαθαο απνζεθεύεη θάζε ζηνηρείν ηνπ πίλαθα καδί κε έλαλ αξηζκό επξεηεξίνπ. Τπάξρνπλ 2 κέζνδνη γηα δεκηνπξγία ελόο αξηζκεηηθνύ πίλαθα: 1. ην αθόινπζν παξάδεηγκα ην επξεηήξην θαζνξίδεηαη απηόκαηα ην επξεηήξην μεθηλάεη από ην 0): $cars=array"saab" 2. ην αθόινπζν παξάδεηγκα εκείο θαζνξίδνπκε ην επξεηήξην ρεηξνθίλεηα : $cars[0]="saab"; $cars[1]="volvo"; $cars[2]="bmw"; $cars[3]="toyota"; ην αθόινπζν παξάδεηγκα έρνπκε πξόζβαζε ζηηο ηηκέο ηεο κεηαβιεηήο θάλνληαο αλαθνξά ζην όλνκα ηνπ πίλαθα θαη ηνπ επξεηεξίνπ: $cars[0]="saab"; $cars[1]="volvo"; $cars[2]="bmw"; $cars[3]="toyota"; echo $cars[0]. " and ". $cars[1]. " are Swedish cars."; Saab and Volvo are Swedish cars. Πίνακερ ζςζσεηίζευν: ε έλα πίλαθα ζπζρεηίζεσλ, θάζε θιεηδί ID ζπλδέεηαη κε κία ηηκή. Όηαλ ζέινπκε λα απνζεθεύνληαη δεδνκέλα γηα ζπγθεθξηκέλεο νλνκαδόκελεο ηηκέο, έλαο αξηζκεηηθόο πίλαθαο δελ είλαη πάληα ε θαιύηεξε ιύζε. Με ηνπο πίλαθεο ζπζρεηίζεσλ κπνξνύκε λα ρξεζηκνπνηνύκε ηηο ηηκέο ζαλ θιεηδηά θαη λα ζπλδένπκε ηηο ηηκέο κε απηά. Παπάδειγμα 1: ην παξάδεηγκα πνπ αθνινπζεί ρξεζηκνπνηνύκε έλαλ πίλαθα γηα λα ζπλδέζνπκε ειηθίεο κε δηαθνξεηηθνύο αλζξώπνπο: WEB: http://ekoletsou.gr Page 5
$ages = array"peter"=>32, "Quagmire"=>30, "Joe"=>34); Παπάδειγμα 2: ην παξάδεηγκα πνπ αθνινπζεί, είλαη όπσο θαη ζην πξνεγνύκελν, αιιά δείρλεη έλαλ δηαθνξεηηθό ηξόπν δεκηνπξγίαο ηνπ πίλαθα: $ages['peter'] = "32"; $ages['quagmire'] = "30"; $ages['joe'] = "34"; Σα θιεηδηά ID κπνξνύλ λα ρξεζηκνπνηεζνύλ ζαλ script: $ages['peter'] = "32"; $ages['quagmire'] = "30"; $ages['joe'] = "34"; Peter is 32 years old. echo "Peter is ". $ages['peter']. " years old."; Πολςδιάζηαηοι πίνακερ: ε έλαλ πνιπδηάζηαην πίλαθα, θάζε ζηνηρείν ζηνλ θύξην πίλαθα κπνξεί επίζεο λα είλαη έλαο πίλαθαο, θαη θάζε ζηνηρείν ζηνλ ππνπίλαθα κπνξεί λα είλαη έλαο πίλαθαο, θ.ν.θ. Παπάδειγμα 1: ε απηό ην παξάδεηγκα δεκηνπξγνύκε έλαλ πνιπδηάζηαην πίλαθα κε απηόκαηε αληηζηνίρηζε ID θιεηδηώλ: $families = array "Griffin"=>array "Peter", "Lois", "Megan" ), "Quagmire"=>array "Glenn" ), "Brown"=>array "Cleveland", "Loretta", "Junior" ) ); Παπάδειγμα 2: Αο πξνζπαζήζνπκε λα δείμνπκε κόλν κία ηηκή από ηνλ πξνεγνύκελν πίλαθα: Array [Griffin] => Array [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array [0] => Glenn ) [Brown] => Array [0] => Cleveland [1] => Loretta [2] => Junior ) ) echo "Is ". $families['griffin'][2]. " a part of the Griffin family?"; Is Megan a part of the Griffin family? Βρόγχοι επανϊληψησ πρλά, όηαλ γξάθνπκε θώδηθα, ζέινπκε ην ίδην θνκκάηη θώδηθα λα ηξέρεη μαλά θαη μαλά ζε κία γξακκή. Αληί λα πξνζζέηνπκε πάξα πνιιέο θαη ζρεδόλ ίδηεο γξακκέο θώδηθα ζε έλα script, κπνξνύκε λα ρξεζηκνπνηήζνπκε βξόγρνπο επαλάιεςεο ώζηε λα εθηειείηαη ε εξγαζία καο κε απηό ηνλ ηξόπν. ην JavaScript, ππάξρνπλ 2 είδε βξόγρσλ επαλάιεςεο: while do while for foreach Ο βπόγσορ επανάλητηρ While: Επαλαιακβάλεη έλα θνκκάηη θώδηθα όζν ε ζπλζήθε πνπ εκπεξηέρεη είλαη αιεζήο. while condition) WEB: http://ekoletsou.gr Page 6
code to be executed $i=1; while$i<=5) echo "The number is ". $i. "<br />"; $i++; The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 Ο βπόγσορ επανάλητηρ do while: Είλαη κία παξαιιαγή ηεο επαλάιεςεο while, ε νπνία εθηειεί έλα θνκκάηη θώδηθα ΜΟΝΟ ΜΙΑ ΦΟΡΑ, θαη έπεηηα ην επαλαιακβάλεη όζν ε ζπλζήθε πνπ εκπεξηέρεη είλαη αιεζήο. do code to be executed while condition); $i=1; do $i++; echo "The number is ". $i. "<br />"; while $i<=5); The number is 2 The number is 3 The number is 4 The number is 5 The number is 6 Ο βπόγσορ επανάλητηρ For: Υξεζηκνπνηείηαη όηαλ γλσξίδνπκε εθ ησλ πξνηέξσλ πόζεο θνξέο ζα ηξέμεη ην script. for init; condition; increment) code to be executed; Παπάμεηποι: init: ζπλήζσο ρξεζηκνπνηείηαη γηα λα ζέζεη έλαλ κεηξεηή condition: αμηνινγείηαη ζε θάζε επαλάιεςε ηνπ βξόγρνπ increment: ζπλήζσο ρξεζηκνπνηείηαη γηα λα απμήζεη ην κεηξεηή Σημείωζη: Κάζε κία από ηηο παξαπάλσ παξακέηξνπο κπνξεί λα είλαη θελή ή λα έρεη πνιιαπιέο εθθξάζεηο πνπ λα ρσξίδνληαη απιά κε θόκκα. for $i=1; $i<=5; $i++) echo "The number is ". $i. "<br />"; The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 WEB: http://ekoletsou.gr Page 7
Ο βπόγσορ επανάλητηρ foreach: Υξεζηκνπνηείηαη σο βξόγρνο επαλάιεςεο κέζα ζε πίλαθεο. Γηα θάζε επαλάιεςε ηνπ βξόγρνπ, ε ηηκή ηνπ ηξέρνληνο ζηνηρείνπ ηνπ πίλαθα αληηζηνηρίδεηαη ζην $value θαη ν δείθηεο ηνπ πίλαθα κεηαθηλείηαη θαηά κία ζέζε- έηζη ζηελ επόκελε επαλάιεςε, ειέγρνπκε ηελ επόκελε ηηκή ηνπ πίλαθα. foreach $array as $value) code to be executed; Σν αθόινπζν παξάδεηγκα δείρλεη έλαλ βξόγρν επαλάιεςεο πνπ ζα ηππώλεη ηηο ηηκέο ηνπ δνζέληα πίλαθα: $x=array"one","two","three"); foreach $x as $value) echo $value. "<br />"; one two three Συναρτόςεισ Γηα λα ζπγθξαηήζνπκε ην script ώζηε λα κελ εθηειεζηεί όηαλ θνξηώλεη ε ζειίδα, κπνξνύκε λα ην ηνπνζεηήζνπκε απηά κέζα ζε κία ζπλάξηεζε. Με ζπλάξηεζε ζα εθηειεζηεί κόλν όηαλ ηελ θαιέζνπκε. Μπνξνύκε λα θαιέζνπκε κία ζπλάξηεζε ζε νπνηνδήπνηε ζεκείν κέζα ζηε ζειίδα. function functionnamevar1,var2,...,varx) code to be executed; Αξρή θαη ηέινο ηεο ζπλάξηεζεο Μεηαβιεηέο ή ηηκέο πνπ πεξλάλε κέζα ζηε ζπλάξηεζε function writename) echo "Kai Jim Refsnes"; echo "My name is "; writename); My name is Kai Jim Refsnes Ππόζθεζη παπαμέηπυν: Γηα λα δώζνπκε πεξηζζόηεξε ιεηηνπξγηθόηεηα ζε κία ζπλάξηεζε, κπνξνύκε λα πξνζζέζνπκε παξακέηξνπο. Μία παξάκεηξνο είλαη ζαλ κία κεηαβιεηή. Οη παξάκεηξνη θαζνξίδνληαη κεηά ην όλνκα ηεο ζπλάξηεζεο κέζα ζε παξελζέζεηο. Παπάδειγμα 1: function writename$fname) echo $fname. " Refsnes.<br />"; echo "My name is "; writename"kai Jim"); echo "My sister's name is "; writename"hege"); echo "My brother's name is "; writename"stale"); My name is Kai Jim Refsnes. My sister's name is Hege Refsnes. My brother's name is Stale Refsnes. Παπάδειγμα 2: WEB: http://ekoletsou.gr Page 8
function writename$fname,$punctuation) echo $fname. " Refsnes". $punctuation. "<br />"; echo "My name is "; writename"kai Jim","."); echo "My sister's name is "; writename"hege","!"); echo "My brother's name is "; writename"ståle","?"); My name is Kai Jim Refsnes. My sister's name is Hege Refsnes! My brother's name is Stale Refsnes? Επιζηποθή ηιμών: Γηα λα επηηξέςνπκε κία ζπλάξηεζε λα επηζηξέςεη κία ηηκή, ρξεζηκνπνηνύκε ηε δήισζε return. function add$x,$y) $total=$x+$y; return $total; echo "1 + 16 = ". add1,16); 1 + 16 = 17 Φόρμεσ & Δεδομϋνα Χρόςτη Οι PHP μεηαβληηές $_GET και $_POST τρηζιμοποιούνηαι για ανάκηηζη πληροθορίας από θόρμες, όπως δεδομένων ποσ ειζάγει ο τρήζηης. Χειπιζμόρ Φόπμαρ: Το πιο ζημανηικό ππάγμα πος θα ππέπει να πποζέξοςμε όηαν αζσολούμαζηε με HTML θόξκεο θαη PHP, είλαη όηη θάζε ζηνηρείν ηεο θόξκαο ζε κία HTML ζειίδα απηόκαηα ζα είλαη δηαζέζηκν ζηα PHP scripts καο. Σν αθόινπζν παξάδεηγκα πεξηέρεη κία θόξκα HTML κε δύν πεδία θεηκέλνπ θαη έλα θνπκπί ππνβνιήο: <form action="welcome.php" method="post"> Name: <input type="text" name="fname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> Όηαλ ν ρξήζηεο ζπκπιεξώζεη ηε θόξκα θαη θάλεη θιηθ ζην θνπκπί ππνβνιήο, ηα δεδνκέλα ηεο θόξκαο ζηέιλνληαη ζην PHP αξρείν πνπ νλνκάδεηαη "welcome.php": Welcome echo $_POST["fname"];!<br /> You are echo $_POST["age"]; years old. Welcome John! You are 28 years old. Έλεγσορ Φόπμαρ: Σα δεδνκέλα ηνπ ρξήζηε ζα πξέπεη λα ειέγρνληαη ζηνλ browser όπνπ είλαη δπλαηόλ από client scripts). Ο έιεγρνο ζηνλ browser είλαη πην γξήγνξνο θαη κεηώλεη ην θόξην ζηνλ server. Ο έιεγρνο ζηελ πιεπξά ηνπ server ζα πξέπεη λα εμεηαζηεί ζηελ πεξίπησζε πνπ ηα δεδνκέλα ηνπ ρξήζηε ζα πξέπεη λα εηζαρζνύλ ζε κία βάζε δεδνκέλσλ. Σηην PHP, η μεηαβληηή $_GET τρηζιμοποιείηαι για ζσλλογή δεδομένων από μία θόρμα μέζω ηης μεθόδοσ "get". WEB: http://ekoletsou.gr Page 9
Η απεζηαικέλε πιεξνθνξία από κία θόξκα κε ηε κέζνδν GET είλαη νξαηή ζηνλ θαζέλα θαη έρεη πεξηνξηζκνύο σο πξνο ηελ πνζόηεηα ηεο απεζηαικέλεο πιεξνθνξίαο. <form action="welcome.php" method="get"> Name: <input type="text" name="fname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> Όηαλ ν ρξήζηεο θάλεη θιηθ ζην θνπκπί "Submit", ην URL πνπ απνζηέιιεηαη ζην server ζα κνηάδεη θάπσο έηζη: http://www.blablabla.com/welcome.php?fname=peter&age=37 Σν αξρείν "welcome.php" κπνξεί ηώξα λα ρξεζηκνπνηείζαη ηε κεηαβιεηή $_GET γηα λα ζπιιέμεη ηα δεδνκέλα ηεο θόξκαο: Welcome echo $_GET["fname"];.<br /> You are echo $_GET["age"]; years old! Πόηε σπηζιμοποιείηαι η method="get"; Όηαλ ρξεζηκπνηείηαη ε method="get" ζε HTML θόξκεο, όια ηα νλόκαηα ησλ κεηαβιεηώλ θαη νη ηηκέο εκθαλίδνληαη ζην URL. Η κέζνδνο απηή δε ζα πξέπεη λα ρξεζηκνπνηείηαη όηαλ απνζηέιινληαη θσδηθνί ή άιιεο επαίζζεηεο πιεξνθνξίεο! Σηην PHP, η μεηαβληηή $_POST τρηζιμοποιείηαι για ζσλλογή δεδομένων από μία θόρμα μέζω ηης μεθόδοσ "post". Η απεζηαικέλε πιεξνθνξία από κία θόξκα κε ηε κέζνδν POST δελ είλαη νξαηή ζηνλ θαζέλα θαη δελ έρεη πεξηνξηζκνύο σο πξνο ηελ πνζόηεηα ηεο απεζηαικέλεο πιεξνθνξίαο. <form action="welcome.php" method="post"> Name: <input type="text" name="fname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> Όηαλ ν ρξήζηεο θάλεη θιηθ ζην θνπκπί "Submit", ην URL πνπ απνζηέιιεηαη ζην server ζα κνηάδεη θάπσο έηζη: http://www.blablabla.com/welcome.php Σν αξρείν "welcome.php" κπνξεί ηώξα λα ρξεζηκνπνηείζαη ηε κεηαβιεηή $_POST γηα λα ζπιιέμεη ηα δεδνκέλα ηεο θόξκαο: Welcome echo $_POST["fname"];!<br /> You are echo $_POST["age"]; years old. Σηην PHP, η μεηαβληηή $_REQUEST περιέτει ηο περιετόμενο ηων $_GET, $_POST, και $_COOKIE, και μπορεί να τρηζιμοποιηθεί για ζσλλογή δεδομένων παράλληλα από όλες ηις άλλες μεθόδοσς. Welcome echo $_REQUEST["fname"];!<br /> You are echo $_REQUEST["age"]; years old. WEB: http://ekoletsou.gr Page 10