TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Σχετικά έγγραφα
TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Δομημένος Προγραμματισμός

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Λειτουργικά Συστήματα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Υπολογιστικά Συστήματα

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Διαδικαστικός Προγραμματισμός

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα

Νέες Τεχνολογίες στην Εκπαίδευση

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Ειδικά Θέματα Προγραμματισμού

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Εισαγωγή στον Προγραμματισμό με C++

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Λειτουργικά Συστήματα

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

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Θεωρία Πιθανοτήτων & Στατιστική

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Πληροφορική ΙΙ Θεματική Ενότητα 8

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Προγραμματισμός ΙI (Θ)

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εισαγωγή στους Υπολογιστές

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Εργαστήριο 7. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

Δομημένος Προγραμματισμός

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Υπολογιστικά Συστήματα

Ενσωματωμένα Συστήματα

Δομημένος Προγραμματισμός

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ. Κεφάλαιο 5. Αλληλεπιδραστικές ιστοσελίδες (χρήση ετικέτας <FORM> και η τεχνική CGI)

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Η γλώσσα προγραμματισμού Strange

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

JAVASCRIPT EVENTS. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Ευφυής Προγραμματισμός

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

Εργαστήριο 8. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Τεχνικός Εφαρμογών Πληροφορικής

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αυτοματοποιημένη χαρτογραφία

Εισαγωγή στον Προγραμματισμό με C++

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 1: Εισαγωγικό Μάθημα

Προγραμματισμός Η/Υ (ΤΛ2007 )

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Αντικειμενοστρεφής Προγραμματισμός

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

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

ΣΧΕΔΙΟ ΣΤΟΝ Η/Υ. Ενότητα 5: Εντολή Array. Παπαδόπουλος Χρήστος Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Ηλεκτρονικοί Υπολογιστές

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Transcript:

TEC610 (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons 2

Δημιουργία Δυναμικών Τοποθεσιών Ιστού 2

Οι δυναμικές τοποθεσίες Ιστού (dynamic Web sites) σε αντίθεση με τις στατικές τοποθεσίες: 1. Συντηρούνται πιο εύκολα. 2. Αλληλεπιδρούν με τον χρήστη. 3. Το περιεχόμενό τους μπορεί να τροποποιηθεί ανάλογα με τις συνθήκες. Στη συνέχεια θα ασχοληθούμε με: Την χρήση εξωτερικών αρχείων Τον χειρισμό φορμών HTML Ορισμό και χρήση δικών μας συναρτήσεων 3

1. Συμπερίληψη πολλών αρχείων Η PHP μπορεί να χρησιμοποιεί εξωτερικά αρχεία, μια δυνατότητα που σας επιτρέπει να διαιρείτε τα σενάρια και τις τοποθεσίες Ιστού σε διακριτά τμήματα. Η PHP διαθέτει 4 συναρτήσεις για τη χρήση εξωτερικών αρχείων: include(), include_once(), require(), require_once() Για να τις χρησιμοποιήσετε πρέπει να υπάρχει ο παρακάτω κώδικας: include_once( filename.php ); require( /path/to/filename.html ); 4

συνέχεια Η χρήση των συναρτήσεων αυτών έχει σαν αποτέλεσμα την ενσωμάτωση όλων των περιεχομένων του αρχείου συμπερίληψης στο γονικό σενάριο (αυτό που καλεί τη συνάρτηση) στη συγκεκριμένη θέση. Δεν έχει σημασία αν το εξωτερικό αρχείο έχει προέκταση.php ή.html Για να αναφερθείτε στο αρχείο συμπερίληψης μπορείτε να χρησιμοποιήσετε είτε απόλυτη είτε σχετική διαδρομή. 5

1.1 Απόλυτες και Σχετικές Διαδρομές Η απόλυτη διαδρομή καθορίζει τη θέση του αρχείου ξεκινώντας από τον βασικό κατάλογο του υπολογιστή. Οι απόλυτες διαδρομές είναι πάντα σωστές οπουδήποτε και αν βρίσκεται το αρχείο. Παράδειγμα: include ( C:/php/includes/file. php ); include ( /usr/xyz/includes/file. php );* Αν το αρχείο file.php βρίσκεται στην καθοριζόμενη θέση, θα συμπεριληφθεί χωρίς πρόβλημα *Αυτό το παράδειγμα είναι μια απόλυτη διαδρομή του UNIX Οι απόλυτες διαδρομές ξεκινούν πάντα με κάτι όπως: C:/ ή /. 6

συνέχεια Η σχετική διαδρομή ξεκινάει από τη θέση του γονικού αρχείου (αυτού που καλεί το εξωτερικό). Για να ανεβείτε κατά ένα φάκελο στην ιεραρχία, χρησιμοποιήστε δυο τελείες (..). Για να μεταφερθείτε μέσα σε ένα φάκελο χρησιμοποιήστε το όνομά του ακολουθούμενο από μια κάθετο. Παράδειγμα: αν το σενάριό μας βρίσκεται στο φάκελο www/ex1 και θέλετε να συμπεριλάβετε ένα αρχείο που βρίσκεται στο φάκελο www/ex2 θα γράφατε: include(../ex2/file.php ); Η σχετική διαδρομή παραμένει ακριβής ακόμα και αν τα αρχεία μεταφερθούν σε άλλο διακομιστή, εφόσον διατηρηθούν οι σχετικές θέσεις των αρχείων. 7

συνέχεια Οι συναρτήσεις include() και require() συμπεριφέρονται πανομοιότυπα όταν λειτουργούν σωστά αλλά διαφορετικά όταν αποτυγχάνουν. Αν μια συνάρτηση include() δεν επιτύχει, στο φυλλομετρητή θα εμφανιστεί μια προειδοποίηση αλλά το σενάριο θα εξακολουθήσει να εκτελείται. Αν αποτύχει η require() θα εμφανιστεί ένα μήνυμα σφάλματος και το σενάριο θα διακοπεί. Οι δυο αυτές συναρτήσεις έχουν μια παραλλαγή (*_once()), που εγγυάται ότι το εξωτερικό αρχείο θα συμπεριληφθεί μόνο μια φορά, ανεξάρτητα από το πόσες φορές το σενάριο θα επιχειρήσει να το συμπεριλάβει. 8

1.2 Συμπεριλάβετε πολλά αρχεία 1.Σχεδιάστε μια σελίδα HTML. 2.Σημειώστε τα σημεία όπου θα παρεμβληθεί το ειδικό για κάθε σελίδα περιεχόμενο. Σχεδόν σε όλες τις σελίδες μιας τοποθεσίας ιστού υπάρχουν πολλά κοινά στοιχεία όπως κεφαλίδα, υποσέλιδο και μενού πλοήγησης. 3.Αντιγράψτε ολόκληρο τον κώδικα HTML από την πρώτη γραμμή μέχρι και την γραμμή πριν από το εξειδικευμένο για τη σελίδα περιεχόμενο και επικολλήστε τον σε ένα νέο έγγραφο. 4.Αλλάξτε τη γραμμή τίτλου της σελίδας σε <title><?php echo $page_title;?></title>. Ο τίτλος της σελίδας θα πρέπει να αλλάζει από σε σελίδα σε σελίδα. 9

συνέχεια 5.Αποθηκεύστε αυτό το νέο αρχείο ως header.html 6.Ακολουθήστε την ίδια διαδικασία και για το αρχείο με το όνομα footer.html 7.Ξεκινήστε ένα νέο έγγραφο <?php # Script 3.4 index.php Αφού αυτό το σενάριο θα χρησιμοποιεί κυρίως τα αρχεία συμπερίληψης ως κώδικα HTML, μπορεί να ξεκινάει και να τερματίζεται με τις ετικέτες της PHP. 8.Ορίστε τη μεταβλητή $page_title και συμπεριλάβετε το αρχείο-κεφαλίδα της HTML. $page_title = Welcome to this site! ; include ( includes/header.html ); 10

συνέχεια Η μεταβλητή $page_title περιέχει την τιμή που εμφανίζεται στην κορυφή του παραθύρου του φυλλομετρητή. Η εντολή εκτύπωσης της μεταβλητής αυτής βρίσκεται στο αρχείο header.html. Έτσι λοιπόν το αρχείο header.html θα έχει πρόσβαση στην μεταβλητή επειδή αυτή ορίζεται πριν από την εντολή συμπερίληψης του αρχείου header.html. 9.Κλείστε τις ετικέτες της PHP και προσθέστε το ειδικό περιεχόμενο της σελίδας. 10.Δημιουργήστε μια τελευταία ενότητα κώδικα php και συμπεριλάβετε το αρχείο footer.html. 11

συνέχεια 12

2. Χειρισμός Φορμών HTML Για να μπορεί η ίδια σελίδα να εμφανίζει και να χειρίζεται μια φόρμα, πρέπει να υπάρχει μια συνθήκη που αποφασίζει ποια ενέργεια πρέπει να εκτελεστεί. Για να διαπιστώσουμε αν μια φόρμα έχει υποβληθεί, ελέγχουμε αν μια μεταβλητή $_POST έχει τιμή. Έτσι η συνθήκη που ελέγχει αν έχει υποβληθεί η φόρμα είναι: if (isset($_post[ submitted ])) { // χειρισμός της φόρμας. } else { // Εμφάνιση της φόρμας. } Αν θέλετε το σενάριο να χειρίζεται μια φόρμα και να την εμφανίζει ξανά παραλείψτε τον όρο else. 13

2.1 Παράδειγμα Χειρισμού Φόρμας HTML Το σενάριο calculator.php εμφανίζει μια απλή φόρμα και χειρίζεται τα δεδομένα της: εκτελεί μερικούς υπολογισμούς και επιστρέφει τα αποτελέσματα. 1.Δημιουργήστε ένα νέο έγγραφο php. 2.Γράψτε τη συνθήκη για το χειρισμό της φόρμας. if (isset($_post[ submitted ])) { 3.Επικυρώστε τη φόρμα. if ( is_numeric($_post[ quantity ]) && is_numeric($_post[ price ]) && is_numeric($_post[ tax ]) ) { Η επικύρωση εδώ ελέγχει αν και οι 3 υποβληθείσες μεταβλητές είναι αριθμητικού τύπου. Αν δεν υπάρξει πρόβλημα θα εκτελεστούν οι υπολογισμοί αλλιώς θα ζητηθεί από το χρήστη να ξαναπροσπαθήσει. 14

συνέχεια 4.Εκτελέστε τους υπολογισμούς. $total = ($_POST[ quantity ] * $_POST[ price ]); $taxrate = ($_POST[ tax ] / 100); $total += ($total * $taxrate); 5.Τυπώστε τα αποτελέσματα 6.Ολοκληρώστε τις συνθήκες και κλείστε την ετικέτα php 15

συνέχεια 7.Εμφανίστε τη φόρμα της HTML 8.Συμπεριλάβετε το αρχείο του υποσέλιδου. 16

2.2 Παραμένουσες Φόρμες (sticky forms) Μια παραμένουσα φόρμα είναι μια τυπική φόρμα HTML που θυμάται τα δεδομένα τα οποία καταχωρίθηκαν σε αυτή. Για να ορίσετε προκαθορισμένη τιμή σε ένα πλαίσιο κειμένου χρησιμοποιήστε το χαρακτηριστικό value και για να ορίσετε αυτή την τιμή με php τυπώστε την κατάλληλη μεταβλητή με την εντολή echo(). Για να ορίσετε προκαθορισμένη τιμή για την κατάσταση ραδιοπλήκτρων ή πλαισίων ελέγχου προσθέστε τον κώδικα checked= checked στην ετικέτα εισόδου τους. 17

συνέχεια Για να ορίσετε προκαθορισμένη τιμή μιας περιοχής κειμένου (textarea), τοποθετήστε την τιμή ανάμεσα στις ετικέτες textarea. Για να προεπιλέξετε μια διαταγή από πτυσσόμενο μενού, προσθέστε τον κώδικα selected= selected στην επιλογή που θέλετε. 18

2.3 Δημιουργία Παραμένουσας Φόρμας Χρησιμοποιώντας το προηγούμενο παράδειγμα ανοίξτε το αρχείο calculator.php και αλλάξτε το πλαίσιο κειμένου για την ποσότητα ως εξής. Όπως βλέπετε έγινε η προσθήκη του χαρακτηριστικού value. Η ίδια διαδικασία επαναλαμβάνεται για την αξία και τον φόρο. 19

3. Δημιουργία των Δικών σας Συναρτήσεων Η php παρόλο που διαθέτει πολλές ενσωματομένες συναρτήσεις σας δίνει τη δυνατότητα να ορίσετε και να χρησιμοποιήσετε τις δικές σας συναρτήσεις για οποιονδήποτε σκοπό. Η σύνταξη για τη δημιουργία μιας δικής σας συνάρτησης είναι: function όνομα_συνάρτησης () { // Κώδικας συνάρτησης. } Το όνομα της συνάρτησης μπορεί να περιέχει οποιονδήποτε συνδυασμό γραμμάτων, αριθμών και του χαρακτήρα υπογράμμισης αλλά πρέπει να ξεκινάει είτε με γράμμα είτε με το χαρακτήρα υπογράμμισης. Δεν μπορείτε να χρησιμοποιείτε για συνάρτησή σας το όνομα μιας ενσωματωμένης συνάρτησης. 20

3.1 Δημιουργήστε τις δικές σας Συναρτήσεις Δημιουργήστε ένα νέο έγγραφο php και ξεκινήστε με τον ορισμό μιας νέας συνάρτησης. function make_calendar_pulldowns() { Η συνάρτησή μας θα παράγει τα πτυσσόμενα μενού της φόρμας για την επιλογή του μήνα, ημέρας και έτους. Δημιουργήστε τα πτυσσόμενα μενού μηνών, ημερών και ετών. 21

συνέχεια Δημιουργήστε τη φόρμα και καλέστε τη συνάρτηση. Αυτός ο κώδικας δημιουργεί μια ετικέτα κεφαλίδας και τις ετικέτες της φόρμας. Η κλήση της συνάρτησης make_calendar_pulldowns() δημιουργεί τον κώδικα για τα τρία πτυσσόμενα μενού. 22

3.2 Δημιουργία Συνάρτησης που δέχεται ορίσματα Όπως και οι ενσωματωμένες συναρτήσεις έτσι και αυτές που δημιουργείτε μπορούν να δέχονται ορίσματα (arguments) ή παραμέτρους (parameters). Μια συνάρτηση μπορεί να δέχεται οποιονδήποτε αριθμό ορισμάτων, αλλά η σειρά παράθεσής τους έχει σημασία. Για να χρησιμοποιήσετε ορίσματα προσθέστε μεταβλητές στον ορισμό της συνάρτησης: function print_hello ($first, $last) { // κώδικας συνάρτησης. } Τα ονόματα των μεταβλητών που χρησιμοποιείτε ως ορίσματα δεν επηρεάζουν το υπόλοιπο σενάριο, αλλά προσπαθήστε να χρησιμοποιείτε έγκυρα και περιγραφικά ονόματα. 23

συνέχεια Αφού την ορίσετε μπορείτε να καλείτε μια συνάρτηση μεταβιβάζοντάς της κυριολεκτικές τιμές ή μεταβλητές: print_hello ( Jimmy, Stewart ); $surname = Stewart ; print_hello ( Jimmy, $surname); Όπως και με οποιαδήποτε συνάρτηση της php αν δε μεταβιβάσετε το σωστό αριθμό ορισμάτων θα προκύψει σφάλμα. 24

3.2.1 Ορίστε Συναρτήσεις με Ορίσματα Ανοίξτε το αρχείο calculator.php και αφού συμπεριλάβετε το αρχείο-κεφαλίδα, ορίστε τη συνάρτηση calculate_total(). Η συνάρτηση εκτελεί τους ίδιους υπολογισμούς με προηγουμένως αλλά οι μεταβλητές των ορισμάτων της αφορούν τη συγκεκριμένη συνάρτηση και έχουν τα δικά τους ονόματα. Τα ονόματα αυτά χρησιμοποιούνται και στους υπολογισμούς και στην εκτύπωση. 25

3.3 Καθορισμός Προεπιλεγμένων Τιμών Ορισμάτων Μια άλλη δυνατότητα των δικών σας συναρτήσεων είναι να ορίζετε προεπιλεγμένες τιμές ορισμάτων. Για να γίνει αυτό αναθέστε μια τιμή στο όρισμα μέσα στον ορισμό της συνάρτησης: function greet ($name, $msg = Hello ) {echo $msg, $name! ;} Αυτό που επιτυγχάνεται όταν σε ένα όρισμα έχει καθοριστεί προεπιλεγμένη τιμή είναι ότι το όρισμα γίνεται προαιρετικό κατά την κλήση της συνάρτησης. Αν δε μεταβιβαστεί σε αυτό κάποια τιμή χρησιμοποιείται η προεπιλεγμένη. 26

συνέχεια Μπορείτε να ορίσετε προεπιλεγμένες τιμές για όσα ορίσματα θέλετε αρκεί τα ορίσματα αυτά να εμφανίζονται τελευταία στον ορισμό της συνάρτησης. Δηλαδή τα υποχρεωτικά ορίσματα πρέπει να δηλώνονται πρώτα. Βλέποντας την παραπάνω συνάρτηση δεν υπάρχει τρόπος να μεταβιβάσετε μια τιμή στη μεταβλητή $msg χωρίς να μεταβιβάσετε τιμή και στη $name. 27

3.3.1Ορίστε Προεπιλεγμένες Τιμές Ορισμάτων Ανοίξτε το αρχείο calculator.php και τροποποιήστε τη γραμμή ορισμού της συνάρτησης ώστε να απαιτούνται μόνο η ποσότητα και η αξία. Η τιμή της μεταβλητής $tax καθορίζεται τώρα στον ορισμό της συνάρτησης οπότε το όρισμα γίνεται προαιρετικό. Αλλάξτε τον κώδικα επικύρωσης της φόρμας 28

συνέχεια Αλλάξτε τη γραμμή κλήσης της συνάρτησης Αν η τιμή του φόρου έχει υποβληθεί (και είναι αριθμητική) τότε η συνάρτηση καλείται όπως και προηγουμένως με τη μεταβίβαση και του ποσοστού φόρου που έχει υποβάλει ο χρήστης. Διαφορετικά η συνάρτηση καλείται με δυο μόνο ορίσματα και για ποσοστό φόρου χρησιμοποιείται η προεπιλεγμένη τιμή. Αλλάξτε και το μήνυμα σφάλματος 29

συνέχεια Στη φόρμα μπορείτε αν θέλετε να σημειώσετε την τιμή του φόρου ως προαιρετική. 30

3.4 Επιστροφή Τιμών από Συνάρτηση Η επιστροφή τιμών από μια συνάρτηση γίνεται με την εντολή return function find_sign ($month, $day) { // Κώδικας συνάρτησης. return $sign; } Μια συνάρτηση μπορεί να επιστρέφει μια τιμή (συμβολοσειρά ή αριθμό), ή μια μεταβλητή της οποίας η τιμή δημιουργείται από τη συνάρτηση. 31

συνέχεια Όταν καλείτε μια συνάρτηση που επιστρέφει τιμή, μπορείτε να αναθέσετε το αποτέλεσμα της συνάρτησης σε μια μεταβλητή. $my_sign = find_sign ( October, 23); Επίσης μπορείτε να τη χρησιμοποιήσετε ως όρισμα κατά την κλήση μιας άλλης συνάρτησης. print find_sign ( October, 23); Η εντολή return τερματίζει την εκτέλεση του κώδικα σε εκείνο το σημείο, οπότε αν υπάρχει κώδικας μέσα στη συνάρτηση μετά από μια εκτελεσμένη εντολή return δε θα εκτελεστεί ποτέ. Αν θέλετε η συνάρτηση να επιστρέφει πολλές τιμές τότε χρησιμοποιήστε τη συνάρτηση array() όπου επιστρέφει πίνακα. 32

3.4.1 Κάντε μια Συνάρτηση να επιστρέφει τιμή Στο αρχείο calculator.php αφαιρέστε την εντολή echo() από τον ορισμό της συνάρτησης και αντικαταστήστε τη με μια εντολή return. return number_format($total, 2); Αυτή η έκδοση της συνάρτησης δεν θα τυπώνει τα αποτελέσματα αλλά θα επιστρέφει μόνο το συνολικό ποσό μορφοποιημένο με δυο δεκαδικά ψηφία. Αλλάξτε τις γραμμές κώδικα κλήσης της συνάρτησης σε 33

συνέχεια Τυπώστε τα αποτελέσματα προσθέτοντας μια εντολή echo() Αφού η συνάρτηση απλώς επιστρέφει μια τιμή στον κύριο κώδικα θα πρέπει να προστεθεί μια νέα εντολή echo(). 34