Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΚασσάνδρα Παπανικολάου Τροποποιήθηκε πριν 8 χρόνια
1
Προγραμματισμός Εφαρμογών Διαδικτύου Ενότητα 5: PHP Μέρος 1 ο Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας
2
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
3
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
4
Σκοποί ενότητας Να περιγράφει τα βασικά χαρακτηριστικά της γλώσσας PHP. Να διακρίνει το συντακτικό της γλώσσας PHP. Να ορίζει μεταβλητές σε κώδικα PHP. Να συνάσει απλά προγράμματα σε κώδικα PHP χρησιμοποιώντας εντολές, συναρτήσεις και πίνακες. Προγραμματισμός Εφαρμογών Διαδικτύου 4
5
Περιεχόμενα ενότητας Εισαγωγή. Εισαγωγή. PHP και HTML. PHP και HTML. Σύνταξη κώδικα PHP. Σύνταξη κώδικα PHP. Μεταβλητές. Μεταβλητές. Αριθμητικοί Τελεστές και Μαθηματικές Συναρτήσεις. Αριθμητικοί Τελεστές και Μαθηματικές Συναρτήσεις. Αλφαριθμητικοί Τελεστές και Συναρτήσεις. Αλφαριθμητικοί Τελεστές και Συναρτήσεις. Εντολές if – elseif, σύγκρισης, επανάληψης. Εντολές if – elseif, σύγκρισης, επανάληψης. Πέρασμα μεταβλητών μέσω URL και POST. Πέρασμα μεταβλητών μέσω URL και POST. Εξωτερικά αρχεία. Εξωτερικά αρχεία. Συναρτήσεις. Συναρτήσεις. Πίνακες. Πίνακες. Αποστολή e-mail. Αποστολή e-mail. Προγραμματισμός Εφαρμογών Διαδικτύου 5
6
Εισαγωγή Τι σημαίνει PHP; Personal Home Page Tools (αρχική ονομασία το 1995) PHP: Hypertext Preprocessor (από το 1997) Χαρακτηριστικά της PHP – Ανάπτυξη λογισμικού στην πλευρά του Server – Δυναμική παραγωγή κώδικα HTML Γιατί PHP; – η HTML δημιουργεί ιστοσελίδες με στατικό κείμενο και εικόνες, κάτι περιοριστικό – υπάρχει ανάγκη για δυναμικές Web εφαρμογές που έχουν να κάνουν κυρίως με την – αλληλεπίδραση με βάσεις δεδομένων Σημερινή "stable" έκδοση της PHP: 5.3.8 (07 Νοεμβρίου 2011) – Υπάρχουν εκδόσεις για ΟΛΑ τα λειτουργικά Συστήματα – Η χρήση της γλώσσας είναι δυνατή με διάφορους web servers (ακόμη και με τον IIS) Home page της PHP: http://www.php.net/ – Υπάρχει εκτενές documentation (on-line και off-line) Προγραμματισμός Εφαρμογών Διαδικτύου 6
7
PHP και HTML (1/2) Τα αρχεία *.php περιέχουν κώδικα PHP και HTML Οι εντολές PHP περικλείονται συνήθως μέσα σε ή (σπανιότερα) σε και Ο web server (π.χ. Apache) όταν δέχεται κλίση για PHP σελίδα: μεταβιβάζει την κλίση στην PHP υποδομή (application server) η PHP αναλαμβάνει να εκτελέσει τα τμήματα κώδικα PHP αυτά συνήθως παράγουν επιπλέον κώδικα HTML (το δυναμικό κομμάτι της σελίδας) αντλώντας συχνά πληροφορία από βάσεις δεδομένων η τελική σελίδα που παράγεται (η οποία δεν περιέχει πλέον PHP κώδικα) αποστέλλεται πίσω στον web server o web server στέλνει τη σελίδα στον χρήστη που τη ζήτησε Άρα, το τελικό αποτέλεσμα είναι πάντα μια ιστοσελίδα σε HTML (ο κώδικας PHP δεν φτάνει στον χρήστη). Προγραμματισμός Εφαρμογών Διαδικτύου 7
8
PHP και HTML (2/2) O web server και η PHP υποδομή βρίσκονται στον ίδιο Η/Υ. Ο database server, για λόγους επιδόσεων μπορεί να είναι και σε διαφορετικό H/Y. Είναι δυνατό τα αρχεία *.PHP να περιέχουν μόνο κώδικα PHP: αποθήκευση παραμέτρων σύνδεσης με βάση δεδομένων επεξεργασία input από φόρμες και ανακατεύθυνση σε μια άλλη σελίδα του site. συλλογή συναρτήσεων σε μορφή βιβλιοθήκη για επαναχρησιμοποίηση Προγραμματισμός Εφαρμογών Διαδικτύου 8
9
PHP και HTML - σχηματικά Η Πρώτη μου PHP Σελίδα My first PHP page <?php echo " Hello world! "; ?> Προγραμματισμός Εφαρμογών Διαδικτύου 9
10
Σύνταξη PHP Κάθε εντολή PHP τελειώνει με ελληνικό ερωτηματικό Η εντολή echo – Στέλνει στον browser κείμενο, μεταβλητές, κώδικα HTML, και γενικότερα οτιδήποτε υπάρχει στα δεξιά της. – Προσοχή στα εισαγωγικά για κείμενο ή κώδικα HTML echo " Hello world! "; echo " Bomb will blow up in 15\" "; echo ' Hello world! '; Σχόλια στον κώδικα PHP <?php /* σχόλιο πολλών γραμμών */ echo " Hello world! "; // σχόλιο γραμμής ?> Προγραμματισμός Εφαρμογών Διαδικτύου 10
11
Μεταβλητές Τα ονόματα μεταβλητών ξεκινούν με τον χαρακτήρα $ Το όνομα μιας μεταβλητής - μπορεί να ξεκινά με γράμμα ή underscore (_), αλλά δεν μπορεί να ξεκινά με αριθμό. - Δεν πρέπει να περιέχει κενά - Είναι case sensitive (διαφορά κεφαλαίων πεζών) Παράδειγμα $name = "grigoris"; // μεταβλητή string $age = 30; // μεταβλητή integer echo $name; echo " is $age years old";// is 30 years old echo ' is $age years old';// is $age years old Προγραμματισμός Εφαρμογών Διαδικτύου 11
12
Αριθμητικοί Τελεστές Συνήθεις τελεστές – Πρόσθεση " (+), αφαίρεση (–) – Πολλαπλασιασμός (*), διάιρεση (/), υπολοιπό (%) Παραδείγματα $x = 2 + 2; // $x έχει τιμή 4 $y = $x - 1; // $y έχει τιμή 3 $z = $y * 4; // $z έχει τιμή 12 $x = $z / 2; // $x έχει τιμή 6 $y = $x % 3; // $y έχει τιμή 0 Χρήση παρενθέσεων για τον καθορισμό προτεραιότητας $z = ($x + $y) / 2; Προγραμματισμός Εφαρμογών Διαδικτύου 12
13
Μαθηματικές Συναρτήσεις (1) Μέγιστος και Ελάχιστος αριθμός min(arg1, arg2,...), max(arg1, arg2,...) Τυχαίος ακέραιος αριθμός – Π.χ. για τυχαία επιλογή διαφημιστικού banner rand([min, max]) Μορφοποίηση number_format (αριθμός,δεκαδικά,υποδιαστολή,χιλιάδες) - μόνο η πρώτη παράμετρος υποχρεωτική. Παράδειγμα $p = 12345.67; number_format($p, 2, ".", ","); //returns 12,345.67 Προγραμματισμός Εφαρμογών Διαδικτύου 13
14
Μαθηματικές Συναρτήσεις (2) abs(value) – απόλυτη τιμή αριθμού $x=abs(-5); $y=abs(42); echo "x=$x y=$y"; // x=5 y=42 sqrt(value) – τετραγωνική ρίζα αριθμού $x=sqrt(25); echo "x=$x"; // x=5 is_numeric(value) – έλεγχος για αριθμό if (is_numeric($input)) echo "Got Valid Number=$input"; else echo "Not Valid Number=$input"; Προγραμματισμός Εφαρμογών Διαδικτύου 14
15
Μαθηματικές Συναρτήσεις (3) round(value,[dec]) – στρογγυλοποίηση $x=round (-5.456); $y=round (3.7342, 2); print "x=$x y=$y"; // x=-5 y=3.73 ceil(value) – στρογγυλοποίηση προς τα πάνω $x=ceil (3.7342); print "x=$x"; // x=4 floor(value) – στρογγυλοποίηση προς τα κάτω $x=floor (-5.456); print "x=$x"; // x=-6 Προγραμματισμός Εφαρμογών Διαδικτύου 15
16
Τελεστές Αλφαριθμητικών Συνένωση(.) $firstname = 'John'; $lastname = 'Smith'; $fullname = $firstname. ' '. $lastname; echo "Fullname: $fullname"; Εναλλακτικά (με χρήση εισαγωγικών) $firstname = 'John'; $lastname = 'Smith'; $fullname = "$firstname $lastname"; echo "Fullname: $fullname"; Έστω ότι θέλουμε με echo να φτιάξουμε το ακόλουθο προσυμπληρωμένο πεδίο κειμένου: ' ?> Εναλλακτικά μπορούμε να παρεμβάλουμε PHP σε HTML: "/> Προγραμματισμός Εφαρμογών Διαδικτύου 16
17
Συναρτήσεις Αλφαριθμητικών 1 strlen(string), μήκος αλφαριθμητικού $comments = "Good Job"; $len = strlen($comments); echo "Length: $len); // Length: 8 trim(string), αφαίρεση κενών δεξιά και αριστερά $name_withspace = " Joe Jackson "; $name = trim($name_withspace); echo "Name: $name"; // Name: Joe Jackson Προγραμματισμός Εφαρμογών Διαδικτύου 17
18
Συναρτήσεις Αλφαριθμητικών 2 strtolower(string), strtoupper(string), πεζά, κεφαλαία $inquote = "Now Is The Time"; $lower = strtolower($inquote); $upper = strtoupper($inquote); echo "lower:$lower"; // now is the time echo "upper:$upper"; // NOW IS THE TIME substr(string, start, [end]), τμήμα αλφαριθμητικού $date = "31 October 2007"; $day = substr($date, 0, 2); // "31" $month = substr($date, 3, 7); // "October" $year = substr($date, 11); // "year" echo "Day:$day, Month:$month, Year:$year"; Προγραμματισμός Εφαρμογών Διαδικτύου 18
19
Η εντολή if / else Βασική Σύνταξη – if (condition1 operator condition2) action1; – if (condition1 operator condition2) { action1; action2; … } – if (condition1 operator condition2) action1; else action2; Προγραμματισμός Εφαρμογών Διαδικτύου 19
20
Τελεστές Σύγκρισης Οι τελεστές - Ισότητα (==), διάφορο (!= ή <>) - Μεγαλύτερο (>), μικρότερο (<) - Μεγαλύτερο ή ίσο (>=), μικρότερο ή ίσο (<=) - Ισότητα και ίδιοι τύποι (===) - Διάφορο ή διαφορετικοί τύποι (!==) Προγραμματισμός Εφαρμογών Διαδικτύου 20
21
Παραδείγματα Παράδειγμα 1 if ($password != "guest1234") { echo "No permission to view our Web site"; exit(); } Παράδειγμα 2 if ($average >= 5) echo "you passed the exams"; else echo "you failed the exams"; Προγραμματισμός Εφαρμογών Διαδικτύου 21
22
Λογικοί Τελεστές Ο τελεστής του λογικού και (&&) – if ($ctr < $max && $flag == 0) { // εντολές } Ο τελεστής του λογικού ή (||) – if ($ctr != $max || $flag == 0) { // εντολές } Ο τελεστής της λογικής άρνησης (!) – if (!$flag) { // εντολές } Προγραμματισμός Εφαρμογών Διαδικτύου 22
23
if και elseif Παράδειγμα σύνταξης if ($hour < 9) { print "Sorry, it is too early."; } elseif ($hour < 12) { print "Good morning. The hour is $hour. "; print "How can we help you?"; } elseif ($hour < 13) { print "Sorry, we are out to lunch. "; } elseif ($hour < 17) { print "Good afternoon. The hour is $hour. "; print "How can we help you?"; } elseif ($hour <= 23) { print "Sorry, we have gone home already."; } Προγραμματισμός Εφαρμογών Διαδικτύου 23
24
Επαναλήψεις (for) Η εντολή for – for ($num = 1; $num <= $max; $num++) { echo $num; echo “ ”; } Προγραμματισμός Εφαρμογών Διαδικτύου 24
25
Επαναλήψεις (while) Η εντολή while – $num = 1; while ($num <= 5) { echo $num; echo “ ”; $num = $num + 1; } Προγραμματισμός Εφαρμογών Διαδικτύου 25
26
Επαναλήψεις (do while) Η εντολή do while – $num = 1; do { echo $num; echo “ ”; $num = $num + 1 } while ($num <= 5); Προγραμματισμός Εφαρμογών Διαδικτύου 26
27
Πέρασμα Μεταβλητής σε Σελίδα Μέθοδοι -Με τη μέθοδο GET (μέσω του URL απευθείας ή με φόρμα) -Με τη μέθοδο POST (με φόρμα) -Με session -Με cookies Περισσότερα για session και cookies, σε επόμενο μάθημα. θα τα δούμε αναλυτικά σε εργαστήριο Προγραμματισμός Εφαρμογών Διαδικτύου 27
28
Πέρασμα Μεταβλητής μέσω URL Με Παραδείγματα - http://www.tovima.gr/listbytopic.php?fyllo=15201&tmhma=07 - http://pileas.csd.auth.gr/course/view.php?id=20 Με χρήση φόρμας – Πλεονεκτήματα και Μειονεκτήματα + Η σελίδα μπορεί να γίνει bookmark -Οι χρήστες βλέπουν τα ονόματα των μεταβλητών και τιμών Ακατάλληλη μέθοδος για πέρασμα ευαίσθητων δεδομένων Οι χρήστες μπορεί να βάλουν δικές τους τιμές και να ανακτήσουν παλιά ή κρυφά δεδομένα. Εξειδίκευμένη ανάκτηση μεταβλητής – $_GET[‘όνομα_μεταβλητής’] Προγραμματισμός Εφαρμογών Διαδικτύου 28
29
Πέρασμα Μεταβλητής με POST Απαίτηση η χρήση φόρμας – Πλεονεκτήματα και Μειονεκτήματα + κατάλληλη μέθοδος για πέρασμα ευαίσθητων δεδομένων - Η σελίδα δεν μπορεί να γίνει bookmark -Οι χρήστες βλέπουν τα ονόματα των μεταβλητών και τιμών Εξειδικευμένη ανάκτηση μεταβλητής – $_GET[‘όνομα_μεταβλητής’] Προγραμματισμός Εφαρμογών Διαδικτύου 29
30
Παράδειγμα LOOP με POST Loops Generate Square and Cube Values Select Start Number <?php for ($i=0; $i $i "; } ?> Select End Number <?php for ($i=10; $i $i "; } ?> Προγραμματισμός Εφαρμογών Διαδικτύου 30
31
Αποτέλεσμα Προγραμματισμός Εφαρμογών Διαδικτύου 31
32
Εξωτερικά Αρχεία Κώδικα Χρήση εξωτερικών αρχείων Για ενσωμάτωση συχνά χρησιμοποιούμενων τμημάτων κώδικα PHP σε ένα αρχείο. Για ενσωμάτωση τμημάτων κώδικα HTML (και PHP) που θέλουμε να υπάρχουν σε κάθε σελίδα. Δημιουργία ιστοσελίδας πρότυπο για ένα Web Site Για την ενσωμάτωση ενός εξωτερικού αρχείου στο τρέχον αρχείο - include (“filename.php”); Αν δεν ενσωματωθεί το αρχείο, προκαλείται ένα warning. - require (“filename.php”); Αν δεν ενσωματωθεί το αρχείο, προκαλείται ένα fatal error. Βασικός μηχανισμός κατασκευής δομημένων σελίδων. Προγραμματισμός Εφαρμογών Διαδικτύου 32
33
Συναρτήσεις 1 Πού δηλώνονται οι συναρτήσεις ; Σε οποιοδήποτε σημείο του κώδικα. Ακόμα και σε ξεχωριστό αρχείο. Δήλωση απλής συνάρτησης - function name () { // εντολές} function printAddress() { echo “ Dept. of Informatics, AUTH ”; } Κλήση συνάρτησης με το όνομα της - printAddress(); Προγραμματισμός Εφαρμογών Διαδικτύου 33
34
Συναρτήσεις 2 Δήλωση συνάρτησης με ορίσματα - function name ($var1, $var2, …) { // εντολές} function printAddress($address) { echo “ $address ”; } Κλήση συνάρτησης $address = “Dept. of Informatics, AUTH”; printAddress ($address); Προγραμματισμός Εφαρμογών Διαδικτύου 34
35
Συναρτήσεις 3 Επιστροφή τιμής - return (value) function largest($num1, $num2) { if ($num1 > $num2) return ($num1); else return ($num2); } Επιστροφή της τιμής $x = largest(3, 5); Προγραμματισμός Εφαρμογών Διαδικτύου 35
36
Συναρτήσεις 4 Η εμβέλεια των μεταβλητών είναι τοπική - Μεταβλητές που ορίζονται μέσα σε μια συνάρτηση ή μεταβλητές παράμετροι της δεν είναι ορατές έξω από τη συνάρτηση. - Μεταβλητές που ορίζονται στο κυρίως πρόγραμμα δεν είναι ορατές μέσα σε μια συνάρτηση. Εκτός και αν δηλωθούν ως global global $varname Εξαιρούνται μεταβλητές που είναι εξ’ ορισμού καθολικές $_GET[var1], $_POST[var2] Προγραμματισμός Εφαρμογών Διαδικτύου 36
37
Πίνακες Sequential - Η αρίθμηση των στοιχείων ξεκινάει από 0. Associate - Χρησιμοποιούνται strings για την αναφορά στα στοιχεία. Προγραμματισμός Εφαρμογών Διαδικτύου 37
38
Πίνακες Sequential 1 Δημιουργία πίνακα $myarray = array (18, 12, 23) ; Ο τύπος δεδομένων των στοιχείων Μπορεί να διαφέρει από στοιχείο σε στοιχείο $myarray = array (‘one’, 12, ‘3’) ; Ανάκτηση των στοιχείων ενός πίνακας – echo $myarray[0]; // 'one' – echo $myarray[1]; // 2 – echo $myarray[2]; // '3' – $myarray[1] = 5; Προγραμματισμός Εφαρμογών Διαδικτύου 38
39
Πίνακες Sequential 2 Προσθήκη στοιχείων σε πίνακα – $myarray [3] = 5; – $myarray [6] = 15; // μη συνεχόμενα στοιχεία – $myarray [] = 23; // προσθήκη στο τέλος – echo $myarray[7]; Προγραμματισμός Εφαρμογών Διαδικτύου 39
40
Πίνακες Associative Δημιουργία πίνακα' – $person = array('name'=>'Albert', 'age'=>'124'); Ανάκτηση των στοιχείων ενός πίνακα – echo $person['name']; // Albert – $person['age'] = 105; Προσθήκη στοιχείων σε πίνακα – $person['email'] = 'albert@physics.com'; Διαγραφή στοιχείου – unset($person['firstname']); Εξακριβώνοντας την ύπαρξη ενός στοιχείου – if isset($person['age']) {echo 'has age!';} Προγραμματισμός Εφαρμογών Διαδικτύου 40
41
foreach Η εντολή foreach ($array as $value) διατρέχει όλες τις τιμές του πίνακα. Παράδειγμα <?php $flavor[] = "blue raspberry"; $flavor[] = "root beer"; $flavor[] = "pineapple"; echo "My favorite flavors are: "; foreach ($flavor as $currentvalue) { echo $currentvalue. " \n"; } ?> Προγραμματισμός Εφαρμογών Διαδικτύου 41
42
Συναρτήσεις Πινάκων count ή sizeof για πλήθος στοιχείων $my_array = array(3, 7, 5); echo count($my_array) // 3 sort ή rsort για ταξινόμηση αύξουσα ή φθίνουσα rsort($my_array); echo $my_array[0]; // 7 Προγραμματισμός Εφαρμογών Διαδικτύου 42
43
Ανακατεύθυνση Σελίδας Χρησιμοποιείται η εντολή header, η οποία στέλνει HTTP headers Θα πρέπει να εκτελεστεί πριν ξεκινήσει η σελίδα, δηλαδή πριν την ετικέτα Ανακατεύθυνση σε άλλη σελίδα header('location: http://www.auth.gr'); exit(); Ανακατεύθυνση σε ίδια σελίδα header('location: '. $_SERVER['PHP_SELF']); exit(); - Χρειάζεται αν νωρίτερα έχουμε θέσει τιμές σε κάποιες μεταβλητές και θέλουμε να ξαναφορτώσουμε τη σελίδα. Προγραμματισμός Εφαρμογών Διαδικτύου 43
44
Αποστολή Email 1 Ρύθμιση στο php.ini αρχείο. – [mail function] ; Setup for Windows systems SMTP = smtp.my.isp.net (π.χ. mail.auth.gr) sendmail_from = myemail@teithessaly.gr (το email σας) – [mail function] ; Setup for Linux systems sendmail_path = /usr/sbin/sendmail -t sendmail_from = myemail@teithessaly.gr (το email σας) Οι παραπάνω ρυθμίσεις για Win setup, έχουν δοκιμαστεί και λειτουργούν ΟΚ αλλά μόνο εντός του domain teithessaly.gr (πρέπει ο mail server να σας βλέπει εντός του TEI). Δεν λειτουργούν αν π.χ. συνδεθείτε σε Internet μέσω άλλου παροχέα (π.χ. otenet, forthnet, κτλ) Προγραμματισμός Εφαρμογών Διαδικτύου 44
45
Αποστολή Email 2 Κώδικας για την αποστολή <?php $to = ‘myemail@teithessaly.gr'; $subject = 'test'; $message = 'hello there!'; if (mail($to, $subject, $message)) { echo ' Mail sent successfully '; } else { echo ' Mail could not be sent '; } ?> Προγραμματισμός Εφαρμογών Διαδικτύου 45
46
Τέλος Ενότητας
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.