Προγραμματισμός Εφαρμογών Διαδικτύου Ενότητα 5: PHP Μέρος 1 ο Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Advertisements

Τεχνικές Προγραμματισμού με την JavaScript Στυλιάδης Κων/νος Φλώρινα, Οκτώβριος 2004.
5η Συνάντηση Εκπαιδευτικών Πληροφορικής στη Δυτική Μακεδονία Πτολεμαΐδα, 29 Σεπτ 2005 Δημιουργία Δυναμικών Ιστοσελίδων με PHP και Dreamweaver MX Στυλιάδης.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Εισαγωγή στο MATLAB.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΕΣΔ 232: Οργάνωση δεδομένων στην Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Φόρμες Δημιουργία Περιεχομένου Ι.
ΣΥΝΑΡΤΗΣΕΙΣ.
Microsoft Excel 4.4 Τύποι και Συναρτήσεις
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 12: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Β) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 10: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Α) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
Κουλίνας Μιχαήλ Α.Μ.:774 Μπουρνάζης Χρήστος Α.Μ.:792 Ρογκάκος Γεώργιος Α.Μ.:817.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Δομές Δεδομένων και Αρχεία Ενότητα 7: Η δομή Στοίβα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.
HTML-PHP Καμπέρης Άρης Α.Μ. 763 Zaher Owda Α.Μ. 849.
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Προγραμματισμός ΗΥ Ενότητα 6: Δισδιάστατοι πίνακες.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Προγραμματισμός & Εφαρμογές Η/Υ (Θ) Ενότητα 10: Εισαγωγή στο Προγραμματισμό με το MatLab 7.x (Μέρος 1 ο ) Δρ. Β.Χ. Μούσας, Αναπληρωτής Καθηγητής Τμήμα.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Μάθημα 9 Λίγο απ’ όλα! HTML 5 Advanced PHP XML. HTML 5 Πρόκειται για μια νέα έκδοση της HTML που συμπληρώνει τις δυνατότητες της γλώσσας με κάποια Tags.
Προγραμματισμός Εφαρμογών Διαδικτύου Ενότητα 5: PHP Μέρος 2 ο Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.
Προγραμματισμός & Εφαρμογές Η/Υ (Θ) Ενότητα 11: Εισαγωγή στο Προγραμματισμό με το MatLab 7.x (Μέρος 2 ο ) Δρ. Β.Χ. Μούσας, Αναπληρωτής Καθηγητής Τμήμα.
Αξιολόγηση επενδύσεων Ενότητα 2: Απλός και σύνθετος τόκος και Εισαγωγή στο EXCEL Εργαστήριο 2 ης Εβδομάδας Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων.
ΔΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙΔΩΝ Ένας Συνοπτικός Οδηγός Καμήλαλη Δέσποινα Μαθηματικός, MSc Πληροφορικής, Υποψήφια Διδάκτωρ Χαροκοπείου Πανεπιστημίου Αθηνών.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ενότητα 12 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙI) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
Τεχνολογία και Προγραμματισμός Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός Ι
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Προγραμματισμός κινητών συσκευών
Προγραμματισμός κινητών συσκευών
Εφαρμογές Υπολογιστών
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Ενισχυτική διδασκαλία
Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι
Γενικές Διαδικασίες.
Προγραμματισμός Διαδικτύου
Προγραμματισμός ΗΥ Ενότητα 11: Header Files. Διδάσκων: Ηλίας Κ Σάββας,
Ανάπτυξη Εκπαιδευτικού Λογισμικού
Τεχνολογία και Προγραμματισμός Υπολογιστών
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ενότητα 5 : Δομές Ελέγχου της γλώσσας PHP Ιωάννης Τσούλος
Ενότητα 4 : Τελεστές της γλώσσας PHP Ιωάννης Τσούλος
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
Προγραμματισμός κινητών συσκευών
Προγραμματισμός κινητών συσκευών
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(4)
ΕνΟτητα # 8: Ms Word V CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ
Προγραμματισμός & Εφαρμογές Η/Υ (Θ)
Γλώσσα Προγραμματισμού V PHP
Προγραμματισμός κινητών συσκευών
Προγραμματισμός ΗΥ Ενότητα 12: Αρχεία Δομών. Διδάσκων: Ηλίας Κ Σάββας,
Μεταγράφημα παρουσίασης:

Προγραμματισμός Εφαρμογών Διαδικτύου Ενότητα 5: PHP Μέρος 1 ο Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί ενότητας Να περιγράφει τα βασικά χαρακτηριστικά της γλώσσας PHP. Να διακρίνει το συντακτικό της γλώσσας PHP. Να ορίζει μεταβλητές σε κώδικα PHP. Να συνάσει απλά προγράμματα σε κώδικα PHP χρησιμοποιώντας εντολές, συναρτήσεις και πίνακες. Προγραμματισμός Εφαρμογών Διαδικτύου 4

Περιεχόμενα ενότητας  Εισαγωγή. Εισαγωγή.  PHP και HTML. PHP και HTML.  Σύνταξη κώδικα PHP. Σύνταξη κώδικα PHP.  Μεταβλητές. Μεταβλητές.  Αριθμητικοί Τελεστές και Μαθηματικές Συναρτήσεις. Αριθμητικοί Τελεστές και Μαθηματικές Συναρτήσεις.  Αλφαριθμητικοί Τελεστές και Συναρτήσεις. Αλφαριθμητικοί Τελεστές και Συναρτήσεις.  Εντολές if – elseif, σύγκρισης, επανάληψης. Εντολές if – elseif, σύγκρισης, επανάληψης.  Πέρασμα μεταβλητών μέσω URL και POST. Πέρασμα μεταβλητών μέσω URL και POST.  Εξωτερικά αρχεία. Εξωτερικά αρχεία.  Συναρτήσεις. Συναρτήσεις.  Πίνακες. Πίνακες.  Αποστολή . Αποστολή . Προγραμματισμός Εφαρμογών Διαδικτύου 5

Εισαγωγή  Τι σημαίνει PHP;  Personal Home Page Tools (αρχική ονομασία το 1995)  PHP: Hypertext Preprocessor (από το 1997)  Χαρακτηριστικά της PHP – Ανάπτυξη λογισμικού στην πλευρά του Server – Δυναμική παραγωγή κώδικα HTML  Γιατί PHP; – η HTML δημιουργεί ιστοσελίδες με στατικό κείμενο και εικόνες, κάτι περιοριστικό – υπάρχει ανάγκη για δυναμικές Web εφαρμογές που έχουν να κάνουν κυρίως με την – αλληλεπίδραση με βάσεις δεδομένων  Σημερινή "stable" έκδοση της PHP: (07 Νοεμβρίου 2011) – Υπάρχουν εκδόσεις για ΟΛΑ τα λειτουργικά Συστήματα – Η χρήση της γλώσσας είναι δυνατή με διάφορους web servers (ακόμη και με τον IIS)  Home page της PHP: – Υπάρχει εκτενές documentation (on-line και off-line) Προγραμματισμός Εφαρμογών Διαδικτύου 6

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

PHP και HTML (2/2)  O web server και η PHP υποδομή βρίσκονται στον ίδιο Η/Υ. Ο database server, για λόγους επιδόσεων μπορεί να είναι και σε διαφορετικό H/Y.  Είναι δυνατό τα αρχεία *.PHP να περιέχουν μόνο κώδικα PHP:  αποθήκευση παραμέτρων σύνδεσης με βάση δεδομένων  επεξεργασία input από φόρμες και ανακατεύθυνση σε μια άλλη σελίδα του site.  συλλογή συναρτήσεων σε μορφή βιβλιοθήκη για επαναχρησιμοποίηση Προγραμματισμός Εφαρμογών Διαδικτύου 8

PHP και HTML - σχηματικά Η Πρώτη μου PHP Σελίδα My first PHP page <?php echo " Hello world! "; ?> Προγραμματισμός Εφαρμογών Διαδικτύου 9

Σύνταξη 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

Μεταβλητές Τα ονόματα μεταβλητών ξεκινούν με τον χαρακτήρα $ Το όνομα μιας μεταβλητής - μπορεί να ξεκινά με γράμμα ή 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

Αριθμητικοί Τελεστές Συνήθεις τελεστές – Πρόσθεση " (+), αφαίρεση (–) – Πολλαπλασιασμός (*), διάιρεση (/), υπολοιπό (%) Παραδείγματα $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

Μαθηματικές Συναρτήσεις (1) Μέγιστος και Ελάχιστος αριθμός min(arg1, arg2,...), max(arg1, arg2,...) Τυχαίος ακέραιος αριθμός – Π.χ. για τυχαία επιλογή διαφημιστικού banner rand([min, max]) Μορφοποίηση number_format (αριθμός,δεκαδικά,υποδιαστολή,χιλιάδες) - μόνο η πρώτη παράμετρος υποχρεωτική. Παράδειγμα $p = ; number_format($p, 2, ".", ","); //returns 12, Προγραμματισμός Εφαρμογών Διαδικτύου 13

Μαθηματικές Συναρτήσεις (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

Μαθηματικές Συναρτήσεις (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

Τελεστές Αλφαριθμητικών Συνένωση(.) $firstname = 'John'; $lastname = 'Smith'; $fullname = $firstname. ' '. $lastname; echo "Fullname: $fullname"; Εναλλακτικά (με χρήση εισαγωγικών) $firstname = 'John'; $lastname = 'Smith'; $fullname = "$firstname $lastname"; echo "Fullname: $fullname"; Έστω ότι θέλουμε με echo να φτιάξουμε το ακόλουθο προσυμπληρωμένο πεδίο κειμένου: ' ?> Εναλλακτικά μπορούμε να παρεμβάλουμε PHP σε HTML: "/> Προγραμματισμός Εφαρμογών Διαδικτύου 16

Συναρτήσεις Αλφαριθμητικών 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

Συναρτήσεις Αλφαριθμητικών 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

Η εντολή if / else Βασική Σύνταξη – if (condition1 operator condition2) action1; – if (condition1 operator condition2) { action1; action2; … } – if (condition1 operator condition2) action1; else action2; Προγραμματισμός Εφαρμογών Διαδικτύου 19

Τελεστές Σύγκρισης Οι τελεστές - Ισότητα (==), διάφορο (!= ή <>) - Μεγαλύτερο (>), μικρότερο (<) - Μεγαλύτερο ή ίσο (>=), μικρότερο ή ίσο (<=) - Ισότητα και ίδιοι τύποι (===) - Διάφορο ή διαφορετικοί τύποι (!==) Προγραμματισμός Εφαρμογών Διαδικτύου 20

Παραδείγματα Παράδειγμα 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

Λογικοί Τελεστές Ο τελεστής του λογικού και (&&) – if ($ctr < $max && $flag == 0) { // εντολές } Ο τελεστής του λογικού ή (||) – if ($ctr != $max || $flag == 0) { // εντολές } Ο τελεστής της λογικής άρνησης (!) – if (!$flag) { // εντολές } Προγραμματισμός Εφαρμογών Διαδικτύου 22

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

Επαναλήψεις (for) Η εντολή for – for ($num = 1; $num <= $max; $num++) { echo $num; echo “ ”; } Προγραμματισμός Εφαρμογών Διαδικτύου 24

Επαναλήψεις (while) Η εντολή while – $num = 1; while ($num <= 5) { echo $num; echo “ ”; $num = $num + 1; } Προγραμματισμός Εφαρμογών Διαδικτύου 25

Επαναλήψεις (do while) Η εντολή do while – $num = 1; do { echo $num; echo “ ”; $num = $num + 1 } while ($num <= 5); Προγραμματισμός Εφαρμογών Διαδικτύου 26

Πέρασμα Μεταβλητής σε Σελίδα Μέθοδοι -Με τη μέθοδο GET (μέσω του URL απευθείας ή με φόρμα) -Με τη μέθοδο POST (με φόρμα) -Με session -Με cookies Περισσότερα για session και cookies, σε επόμενο μάθημα. θα τα δούμε αναλυτικά σε εργαστήριο Προγραμματισμός Εφαρμογών Διαδικτύου 27

Πέρασμα Μεταβλητής μέσω URL Με Παραδείγματα Με χρήση φόρμας – Πλεονεκτήματα και Μειονεκτήματα + Η σελίδα μπορεί να γίνει bookmark -Οι χρήστες βλέπουν τα ονόματα των μεταβλητών και τιμών Ακατάλληλη μέθοδος για πέρασμα ευαίσθητων δεδομένων Οι χρήστες μπορεί να βάλουν δικές τους τιμές και να ανακτήσουν παλιά ή κρυφά δεδομένα. Εξειδίκευμένη ανάκτηση μεταβλητής – $_GET[‘όνομα_μεταβλητής’] Προγραμματισμός Εφαρμογών Διαδικτύου 28

Πέρασμα Μεταβλητής με POST Απαίτηση η χρήση φόρμας – Πλεονεκτήματα και Μειονεκτήματα + κατάλληλη μέθοδος για πέρασμα ευαίσθητων δεδομένων - Η σελίδα δεν μπορεί να γίνει bookmark -Οι χρήστες βλέπουν τα ονόματα των μεταβλητών και τιμών Εξειδικευμένη ανάκτηση μεταβλητής – $_GET[‘όνομα_μεταβλητής’] Προγραμματισμός Εφαρμογών Διαδικτύου 29

Παράδειγμα 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

Εξωτερικά Αρχεία Κώδικα Χρήση εξωτερικών αρχείων Για ενσωμάτωση συχνά χρησιμοποιούμενων τμημάτων κώδικα PHP σε ένα αρχείο. Για ενσωμάτωση τμημάτων κώδικα HTML (και PHP) που θέλουμε να υπάρχουν σε κάθε σελίδα. Δημιουργία ιστοσελίδας πρότυπο για ένα Web Site Για την ενσωμάτωση ενός εξωτερικού αρχείου στο τρέχον αρχείο - include (“filename.php”); Αν δεν ενσωματωθεί το αρχείο, προκαλείται ένα warning. - require (“filename.php”); Αν δεν ενσωματωθεί το αρχείο, προκαλείται ένα fatal error. Βασικός μηχανισμός κατασκευής δομημένων σελίδων. Προγραμματισμός Εφαρμογών Διαδικτύου 32

Συναρτήσεις 1 Πού δηλώνονται οι συναρτήσεις ; Σε οποιοδήποτε σημείο του κώδικα. Ακόμα και σε ξεχωριστό αρχείο. Δήλωση απλής συνάρτησης - function name () { // εντολές} function printAddress() { echo “ Dept. of Informatics, AUTH ”; } Κλήση συνάρτησης με το όνομα της - printAddress(); Προγραμματισμός Εφαρμογών Διαδικτύου 33

Συναρτήσεις 2 Δήλωση συνάρτησης με ορίσματα - function name ($var1, $var2, …) { // εντολές} function printAddress($address) { echo “ $address ”; } Κλήση συνάρτησης $address = “Dept. of Informatics, AUTH”; printAddress ($address); Προγραμματισμός Εφαρμογών Διαδικτύου 34

Συναρτήσεις 3 Επιστροφή τιμής - return (value) function largest($num1, $num2) { if ($num1 > $num2) return ($num1); else return ($num2); } Επιστροφή της τιμής $x = largest(3, 5); Προγραμματισμός Εφαρμογών Διαδικτύου 35

Συναρτήσεις 4 Η εμβέλεια των μεταβλητών είναι τοπική - Μεταβλητές που ορίζονται μέσα σε μια συνάρτηση ή μεταβλητές παράμετροι της δεν είναι ορατές έξω από τη συνάρτηση. - Μεταβλητές που ορίζονται στο κυρίως πρόγραμμα δεν είναι ορατές μέσα σε μια συνάρτηση. Εκτός και αν δηλωθούν ως global global $varname Εξαιρούνται μεταβλητές που είναι εξ’ ορισμού καθολικές $_GET[var1], $_POST[var2] Προγραμματισμός Εφαρμογών Διαδικτύου 36

Πίνακες Sequential - Η αρίθμηση των στοιχείων ξεκινάει από 0. Associate - Χρησιμοποιούνται strings για την αναφορά στα στοιχεία. Προγραμματισμός Εφαρμογών Διαδικτύου 37

Πίνακες 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

Πίνακες Sequential 2 Προσθήκη στοιχείων σε πίνακα – $myarray [3] = 5; – $myarray [6] = 15; // μη συνεχόμενα στοιχεία – $myarray [] = 23; // προσθήκη στο τέλος – echo $myarray[7]; Προγραμματισμός Εφαρμογών Διαδικτύου 39

Πίνακες Associative Δημιουργία πίνακα' – $person = array('name'=>'Albert', 'age'=>'124'); Ανάκτηση των στοιχείων ενός πίνακα – echo $person['name']; // Albert – $person['age'] = 105; Προσθήκη στοιχείων σε πίνακα – $person[' '] = Διαγραφή στοιχείου – unset($person['firstname']); Εξακριβώνοντας την ύπαρξη ενός στοιχείου – if isset($person['age']) {echo 'has age!';} Προγραμματισμός Εφαρμογών Διαδικτύου 40

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

Συναρτήσεις Πινάκων count ή sizeof για πλήθος στοιχείων $my_array = array(3, 7, 5); echo count($my_array) // 3 sort ή rsort για ταξινόμηση αύξουσα ή φθίνουσα rsort($my_array); echo $my_array[0]; // 7 Προγραμματισμός Εφαρμογών Διαδικτύου 42

Ανακατεύθυνση Σελίδας Χρησιμοποιείται η εντολή header, η οποία στέλνει HTTP headers Θα πρέπει να εκτελεστεί πριν ξεκινήσει η σελίδα, δηλαδή πριν την ετικέτα Ανακατεύθυνση σε άλλη σελίδα header('location: exit(); Ανακατεύθυνση σε ίδια σελίδα header('location: '. $_SERVER['PHP_SELF']); exit(); - Χρειάζεται αν νωρίτερα έχουμε θέσει τιμές σε κάποιες μεταβλητές και θέλουμε να ξαναφορτώσουμε τη σελίδα. Προγραμματισμός Εφαρμογών Διαδικτύου 43

Αποστολή 1 Ρύθμιση στο php.ini αρχείο. – [mail function] ; Setup for Windows systems SMTP = smtp.my.isp.net (π.χ. mail.auth.gr) sendmail_from = (το σας) – [mail function] ; Setup for Linux systems sendmail_path = /usr/sbin/sendmail -t sendmail_from = (το σας) Οι παραπάνω ρυθμίσεις για Win setup, έχουν δοκιμαστεί και λειτουργούν ΟΚ αλλά μόνο εντός του domain teithessaly.gr (πρέπει ο mail server να σας βλέπει εντός του TEI). Δεν λειτουργούν αν π.χ. συνδεθείτε σε Internet μέσω άλλου παροχέα (π.χ. otenet, forthnet, κτλ) Προγραμματισμός Εφαρμογών Διαδικτύου 44

Αποστολή 2 Κώδικας για την αποστολή <?php $to = $subject = 'test'; $message = 'hello there!'; if (mail($to, $subject, $message)) { echo ' Mail sent successfully '; } else { echo ' Mail could not be sent '; } ?> Προγραμματισμός Εφαρμογών Διαδικτύου 45

Τέλος Ενότητας