ΕΣΔ516: Τεχνολογίες Διαδικτύου Προγραμματισμός διαδικτυακών εφαρμογών με PHP Ερωτήματα μέσω Περιεχόμενα Περιεχόμενα Λογισμικό για εφαρμογές Web Η τριεπίπεδη αρχιτεκτονική (3-tier architecture) Εισαγωγή στη PHP Εκτέλεση ερωτημάτων μέσω Συλλογή στοιχείων χρηστών μέσω 1
Ερωτήματα μέσω Βιβλιογραφία Βιβλιογραφία Ενότητας [Nixon 2009]: Chapter 10 [Seyed 2007]: Chapter 14 [Ullman 2007]: Chapter 7 [Forta 2005]: Chapters 16-18 PHP manual => http://www.php.net/manual/en/ Εισαγωγή Ερωτήματα μέσω Οι διαδικτυακές εφαρμογές είναι εξαιρετικά διαδεδομένες διότι: Παρέχουν ένα ενοποιημένο πλαίσιο για τοπικούς αλλά και απομακρυσμένους χρήστες Απαιτούν από την πλευρά του χρήστη μόνο την ύπαρξη ενός Web browser Υπάρχουν πολλαπλές δυνατότητες ανάπτυξης τους χωρίς κόστος πέραν του κόστους υλοποίησης (για την ανάπτυξη της εφαρμογής χρειάζεται απλά ένας Web server, ένας database server και ικανότητα προγραμματισμού) Παραδείγματα διαδικτυακών εφαρμογών: Ιστοσελίδες ηλεκτρονικού εμπορίου (αγορές / πωλήσεις μέσω του Διαδικτύου) Καταγραφή στοιχείων χρηστών (αιτήσεις, δημοσκοπήσεις, ερωτηματολόγια) Υπηρεσίες διακυβέρνησης (υποβολή φορολογικών δηλώσεων, έκδοση πιστοποιητικών, κοκ) 2
Ερωτήματα μέσω Λογισμικό για εφαρμογές Web Το λογισμικό για την ανάπτυξη διαδικτυακών εφαρμογών είναι απλό και σε πολλές περιπτώσεις διατίθεται δωρεάν. Διακρίνεται σε τρεις κατηγορίες: Υποδομή (πλευρά του server, δηλαδή του παρόχου της υπηρεσίας): Web server. Apache server η πιο διαδεδομένη περίπτωση. Ο Apache server διατίθεται δωρεάν και είναι μέρος του πακέτου XAMPP (το Α αντιστοιχεί στο Apache) Database server. MySQLκαι PostgreSQL οι πιο διαδεδομένες περιπτώσεις λόγω συμβατότητας με τον Apache server, δωρεάν διανομής και υποστήριξης της PHP. Η MySQL διατίθεται δωρεάν και είναι μέρος του πακέτου XAMPP (το Μ αντιστοιχεί στο MySQL) Προγραμματισμός (πλευρά του προγραμματιστή): HTML. HyperText Markup Language είναι η γλώσσα προγραμματισμού για την δημιουργία PHP. PHP Hypertext Preprocessor είναι μια γλώσσα προγραμματισμού για την ανάπτυξη διαδικτυακών εφαρμογών και για την επέκταση των δυνατοτήτων της HTML σε δυναμικά Web sites Χρήστης (πελάτης): Web browser Ερωτήματα μέσω Εκτέλεση διαδικτυακών εφαρμογών Στο πιο κάτω σχήμα παρουσιάζεται το υλικό, λογισμικό και η μεταξύ τους αλληλεπικοινωνία για την εκτέλεση διαδικτυακών εφαρμογών. 3
Ερωτήματα μέσω Η τριεπίπεδη αρχιτεκτονική Η υλοποίηση μιας διαδικτυακής εφαρμογής συνήθως υλοποιείται μέσω μιας τριεπίπεδης αρχιτεκτονικής (3-tier architecture) Πρώτο επίπεδο: Πελάτης (Client tier) Εξασφαλίζει τη διαπροσωπεία (interface) προς την εφαρμογή (μέσω συνήθως ενός web-browser) Δεύτερο επίπεδο: Web server, script processor (Middle tier) Περιλαμβάνει στην ουσία όλη τη λογική και φιλοσοφία της εφαρμογής Ελέγχει την πρόσβαση των χρηστών στην εφαρμογή, τον έλεγχο των δεδομένων που εισάγονται, τη διατύπωση μέσω συνδέσεων δικτύου των ερωτημάτων προς τη βάση, κ.ο.κ Ο Apache server και η PHP αποτελούν το middle tier στις εφαρμογές που αναπτύσσουμε Τρίτο επίπεδο: Database server (database tier) Παρέχει τα δεδομένα μέσω των βάσεων που έχουν σχεδιαστεί και αναπτυχθεί καθώς και το σύστημα διαχείρισης των βάσεων ώστε να επιτρέπεται εκτέλεση ερωτημάτων, εισαγωγή δεδομένων, δεικτοδότηση δεδομένων και διασφάλιση της ακεραιότητας τους Στα παραδείγματα μας ο database tier είναι ο MySQL server Ερωτήματα μέσω Παράδειγμα εκτέλεσης διαδικτυακής εφαρμογής Στο πιο κάτω σχήμα παρουσιάζεται η αναζήτηση κάποιου προϊόντος από τη ιστοσελίδα ενός διαδικτυακού τόπου που ασχολείται με διαδικτυακό εμπόριο. Η σχετική ιστοσελίδα ονομάζεται shop.php 4
Ερωτήματα μέσω Εισαγωγή στη PHP H PHP είναι μια γλώσσα προγραμματισμού που σχεδιάστηκε να ενσωματώνεται σε ιστοσελίδες html. Οκώδικαςphp σε μια ιστοσελίδα περικλείεται στο tag <?php > Υποστηρίζονται συναρτήσεις της mysql για σύνδεση στη βάση (mysql_connect), επιλογή βάσης (mysql_select_db), για την εκτέλεση ερωτημάτων (mysql_query) καθώς και όλες οι δυνατότητες μια κλασσικής γλώσσας προγραμματισμού Ορισμός μεταβλητών (οι μεταβλητές ξεκινάνε πάντα με το σύμβολο $, π.χ. $x, $result) Ανάθεση τιμών σε μεταβλητές Εκτέλεση εντολών υπό συνθήκη Εκτύπωση Ερωτήματα μέσω Ερωτήματα μέσω Για την εκτέλεση και εμφάνιση των αποτελεσμάτων ενός ερωτήματος προς τη βάση σε ένα web browser χρειαζόμαστε: 1. Να κατασκευάσουμε μια ιστοσελίδα με κατάληξη php (μόνο έτσι γίνεται αντιληπτό ότι η συγκεκριμένη ιστοσελίδα περιέχει php εκτελέσιμο κώδικα) 2. Να μορφοποιήσουμε την ιστοσελίδα κατάλληλα χρησιμοποιώντας κώδικα html 3. Να ορίσουμε περιοχή του κώδικα php 4. Να ορίσουμε κώδικα για σύνδεση με τον database server 5. Να ορίσουμε κώδικα για επιλογή της βάσης 6. Να ορίσουμε το ερώτημα 7. Να εκτελέσουμε το ερώτημα 8. Να εμφανίσουμε τα αποτελέσματα εντός της ιστοσελίδας 5
Ερωτήματα μέσω Παράδειγμα εκτέλεσης ερωτήματος μέσω ιστοσελίδας 6