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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 10: Ανάπτυξη εφαρμογών Ιστού 311 Αποστολή ηλεκτρονικού ταχυδρομείου Συναρτήσεις ημερομηνίας και ώρας

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

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

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

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

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

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Διδάσκων: Παναγιώτης Ανδρέου

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

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

Εντολές επιλογής Επαναλήψεις (if, switch, while)

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

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

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

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

Ψευδοκώδικας. November 7, 2011

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

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

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

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

Περιεχόμενα. Πρόλογος...11

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

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

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

Εισαγωγή στην πληροφορική

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

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Προγραμματισμό για ΗΜΥ

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

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

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

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

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

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

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

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

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

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

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης

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

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

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

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

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

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

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Transcript:

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

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

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

Προγραμματισμός με την PHP 2

1. Δημιουργία Φόρμας HTML Ο χειρισμός μιας φόρμας HTML με την PHP είναι ίσως η πιο σημαντική διεργασία σε μια δυναμική τοποθεσία ιστού και αποτελείται από δύο βήματα: 1. Πρώτα δημιουργείτε την ίδια τη φόρμα HTML. 2. Μετά το σενάριο PHP που θα δέχεται και θα επεξεργάζεται τα δεδομένα της φόρμας. Μια φόρμα HTML δημιουργείται με τη χρήση ετικετών form και διαφόρων στοιχείων τα οποία δέχονται είσοδο. Οι ετικέτες form έχουν την εξής σύνταξη: <form action= script.php method= post > </form> 3

Το πιο σημαντικό χαρακτηριστικό της ετικέτας form όσον αφορά την PHP είναι το action που υπαγορεύει σε ποια σελίδα θα σταλούν τα δεδομένα της φόρμας. Το method, το δεύτερο χαρακτηριστικό της ετικέτας form, μπορεί να πάρει δυο τιμές. 1. Get: χρησιμοποιείται για τη ζήτηση πληροφοριών, όπως μια συγκεκριμένη εγγραφή βάσης δεδομένων ή τα αποτελέσματα μιας αναζήτησης (στις αναζητήσεις χρησιμοποιείται σχεδόν πάντα). 2. Post: χρησιμοποιείται όταν απαιτείται κάποια ενέργεια, όπως όταν πρέπει να ενημερωθεί μια εγγραφή βάσης δεδομένων ή να αποσταλεί ένα μήνυμα ηλεκτρονικού ταχυδρομείου (είναι αυτή που θα χρησιμοποιούμε σχεδόν πάντα). 4

1. Για τη δημιουργία της φόρμας πρώτα δημιουργήστε ένα έγγραφο PHP. 2. Προσθέτουμε την αρχική ετικέτα form: <form action= handle_form.php method= post > 3. Ξεκινήστε τη φόρμα HTML <fieldset><legend>enter your information in the form below:</legend> 5

4. Προσθέστε δύο πλαίσια κειμένου εισόδου. 5. Προσθέστε δύο ραδιοπλήκτρα: 6. Προσθέστε ένα πτυσσόμενο μενού. 6

7. Προσθέστε μια περιοχή κειμένου για σχόλια. 8. Ολοκληρώστε τη φόρμα και δημιουργήστε και το κουμπί υποβολής submit: 9. Ολοκληρώστε τη σελίδα της HTML. </body> </html> 7

Το αποτέλεσμα της φόρμας είναι το παρακάτω 8

2. Χειρισμός Φόρμας HTML Ο λόγος που η PHP είναι τόσο εύληπτη και εύχρηστη είναι η άμεση αλληλεπίδρασή της με φόρμες HTML. Τα σενάρια PHP αποθηκεύουν τις πληροφορίες που λαμβάνουν σε ειδικές μεταβλητές. Παράδειγμα: Έστω ότι έχουμε μια φόρμα με την είσοδο <input type= text name= city /> Ό, τι γράφει ο χρήστης θα είναι προσπελάσιμο μέσω μιας μεταβλητής της PHP με το όνομα $_REQUEST[ city ]. Είναι πολύ σημαντικό η ορθογραφία και η γραφή με κεφαλαία και πεζά να ταιριάζουν απόλυτα. Στο παράδειγμα που ακολουθεί είναι ένα σενάριο PHP που χειρίζεται τη φόρμα που φτιάξατε. 9

1. Δημιουργήστε ένα έγγραφο PHP. 2. Προσθέστε την ετικέτα ανοίγματος της PHP και δημιουργήστε σύντομα ονόματα για τις μεταβλητές της φόρμας δεδομένων. 3. Τυπώστε τις τιμές ονόματος, διεύθυνσης ηλ. ταχυδρομείου και σχολίων. 4. Ολοκληρώστε τη σελίδα της HTML. 10

11

3. Συνθήκες και Τελεστές Οι τρεις κυριότερες εντολές για τη δημιουργία συνθηκών στην PHP είναι οι if, else και elseif (που μπορεί να γραφτεί και με δυο λέξεις, ως else if). Κάθε συνθήκη ξεκινάει με τον όρο if: if (συνθήκη) {// κάνε κάτι} Η εντολή if μπορεί να έχει και έναν όρο else: if (συνθήκη) {// κάνε κάτι} else {// κάνε κάτι άλλο} Ο όρος elseif σας επιτρέπει να προσθέσετε και άλλες συνθήκες: if (συνθήκη1) {// κάνε κάτι} elseif (συνθήκη2) {κάνε κάτι άλλο} else {//κάνε κάτι διαφορετικό} 12

Αν μια συνθήκη αληθεύει εκτελείται ο κώδικας μέσα στα άγκιστρα {} που ακολουθούν. Αν όχι συνεχίζεται η εκτέλεση του κώδικα της PHP. Αν υπάρχει και δεύτερη συνθήκη ελέγχεται αν είναι αληθής και η διαδικασία συνεχίζεται μέχρι η PHP να συναντήσει έναν όρο else που θα εκτελεστεί αυτόματα σε εκείνο το σημείο ή μέχρι η συνθήκη να ολοκληρωθεί χωρίς else. Για αυτό το λόγο ο όρος else είναι σημαντικό να τοποθετείται στο τέλος. 13

Η συνάρτηση isset() ελέγχει αν μια συνάρτηση έχει τιμή ορισμένη, δηλαδή διαφορετική από NULL. Για να δημιουργήσετε πιο σύνθετες παραστάσεις μπορείτε να χρησιμοποιείτε τους τελεστές σύγκρισης και τους λογικούς τελεστές που ακολουθούν. 14

1. Ανοίξτε ένα αρχείο handle_form.php 2. Πριν από την echo() προσθέστε μια συνθήκη που δημιουργεί τη μεταβλητή $gender: If (isset($_request[ gender ])) {$gender = $_REQUEST[ gender ];} else { $gender = NULL;} Αυτός είναι ένας αποτελεσματικός τρόπος να επικυρώσετε ένα στοιχείου εισόδου φόρμας. 15

3. Μετά την εντολή echo() προσθέστε ακόμα μια συνθήκη που τυπώνει ένα μήνυμα ανάλογα με την τιμή της μεταβλητής $gender Αυτή η συνθήκη if-else-elseif εξετάζει την τιμή της μεταβλητής $gender και τυπώνει ένα διαφορετικό μήνυμα για κάθε περίπτωση. 16

17

Η συνθήκη switch ταιριάζει καλύτερα στη θέση μιας μεγάλης συνθήκης if-then-else. Η σύνταξή της είναι η εξής: Η συνθήκη switch συγκρίνει την τιμή της $variable με τις τιμές των case. Όταν βρει μια ταύτιση, εκτελείται ο κώδικας που ακολουθεί μέχρι τον όρο break, αν δε βρεθεί ταύτιση εκτελείται ο κώδικας default αν αυτός υπάρχει. 18

4. Επικύρωση Δεδομένων Φόρμας Η επικύρωση των δεδομένων μιας φόρμας απαιτεί τη χρήση συνθηκών, συναρτήσεων, τελεστών και παραστάσεων. Μια συνάρτηση που χρησιμοποιείται είναι η isset() που ελέγχει αν μια μεταβλητή έχει τιμή. Το πρόβλημα με αυτή είναι ότι η κενή συμβολοσειρά επιστρέφει τιμή TRUE, που σημαίνει ότι δεν είναι αποτελεσματική για την επικύρωση των εισόδων και των πλαισίων κειμένου μιας φόρμας HTML. Η συνάρτηση empty() ελέγχει αν μια μεταβλητή έχει κενή (empty) τιμή: κενή συμβολοσειρά, 0, NULL ή FALSE. 19

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

1. Δημιουργήστε ένα αρχείο handle_form.php 2. Μέσα στην ετικέτα head της HTML προσθέστε λίγο κώδικα CSS. <style type= text/css title= text/css media= all >.error { font-weight: bold; color: #C00 } Με αυτό τον τρόπο ορίζουμε μια κλάση CSS με το όνομα error. Όλα τα στοιχεία HTML με αυτό το όνομα κλάσης θα μορφοποιηθούν με έντονα γράμματα και κόκκινο χρώμα. 21

3. Ελέγξτε αν καταχωρήθηκε το όνομα χρησιμοποιώντας τη συνάρτηση empty(). Αν η μεταβλητή $_REQUEST[ name ] έχει τιμή διαφορετική από κενή συμβολοσειρά, 0, NULL, ή FALSE, υποθέτουμε ότι καταχωρήθηκε ένα όνομα και η τιμή αυτή ανατίθεται σε μια συντομευμένη μεταβλητή. Αν η μεταβλητή $_REQUEST[ name ] είναι κενή, στη μεταβλητή $name ανατίθεται η τιμή NULL και τυπώνεται ένα μήνυμα σφάλματος, το οποίο χρησιμοποιεί την κλάση CSS. 22

4. Επαναλάβετε την ίδια διεργασία για τη διεύθυνση ηλεκτρονικού ταχυδρομείου και για τα σχόλια. Ο χειρισμός και των δύο μεταβλητών είναι ίδιος με της μεταβλητής $_REQUEST[ name ] που είδαμε στο προηγούμενο βήμα. 23

5. Ξεκινήστε την επικύρωση της μεταβλητής του φύλλου. Πρώτα με τη συνάρτηση isset() ελέγχουμε αν η μεταβλητή έχει τιμή ή όχι. Έτσι ξεκινάει η κύρια συνθήκη if-else. 6. Συγκρίνετε τη μεταβλητή $gender με συγκεκριμένες τιμές. 24

Μέσα στον όρο if για το φύλλο υπάρχει μια ένθετη δομή ifelseif-else που ελέγχει αν η τιμή της μεταβλητής είναι ίδια με κάποια από τις αποδεκτές. Αυτό είναι το δεύτερο βήμα της επικύρωσης της μεταβλητής του φύλλου. Αν το φύλλο δεν καταλήξει με μια από τις τιμές M ή F, υπάρχει πρόβλημα και τυπώνεται μήνυμα σφάλματος και στη μεταβλητή $gender ανατίθεται η τιμή NULL, επειδή η τιμή της δεν είναι αποδεκτή. 7. Ολοκληρώστε την κύρια συνθήκη if-else για το φύλλο. 25

Ο κώδικας αυτού του όρου else εκτελείται αν η μεταβλητή $_REQUEST[ gender ] δεν έχει τιμή. 8. Αν όλοι οι έλεγχοι ολοκληρωθούν χωρίς πρόβλημα, τυπώστε το μήνυμα. 26

Αυτή η κύρια συνθήκη είναι αληθής μόνο αν όλες οι μεταβλητές έχουν αληθή τιμή. Κάθε μια από τις μεταβλητές θα έχει αληθή τιμή αν έχει περάσει τον έλεγχο και τιμή NULL αν όχι. Αν όλες οι μεταβλητές έχουν τιμή η φόρμα έχει συμπληρωθεί οπότε θα τυπωθεί το ευχαριστήριο μήνυμα Thank you. Αν κάποια από τις μεταβλητές έχει τιμή NULL θα τυπωθεί το δεύτερο μήνυμα. 27

28

5. Εισαγωγή στους Πίνακες Οι πίνακες είναι ένας τύπος μεταβλητών όπου σε αντίθεση με τις συμβολοσειρές και τις αριθμητικές μεταβλητές μπορούν να αποθηκεύουν πολλές ξεχωριστές πληροφορίες. Περιλαμβάνει μια λίστα τιμών κάθε μια από τις οποίες μπορεί να είναι συμβολοσειρά, αριθμός ή ακόμα και ένας άλλος πίνακας. Οι πίνακες έχουν τη δομή μιας σειράς ζευγών κλειδιούτιμής, όπου κάθε ζεύγος αποτελεί ένα στοιχείο του πίνακα. Σε κάθε στοιχείο του πίνακα αντιστοιχεί ένα κλειδί ή αριθμοδείκτης. 29

Η PHP υποστηρίζει δύο είδη πινάκων: 1. Αριθμοδεικτών: (indexed) που χρησιμοποιούν αριθμούς ως κλειδιά 2. Συνειρμικούς: (associative) που χρησιμοποιούν ως κλειδιά συμβολοσειρές 30

Στους πίνακες με αριθμοδείκτες ο πρώτος αριθμοδείκτης είναι το μηδέν 0. Τα ονόματα των πινάκων ακολουθούν τους ίδιους κανόνες με τα ονόματα των υπολοίπων μεταβλητών. Για να αναφερθείτε σε μια τιμή ενός πίνακα γράφετε πρώτα το όνομα του πίνακα και δίπλα το κλειδί σε αγκύλες: echo $artists[2]; // Wilco echo $states[ MD ]; // Maryland Τα κλειδιά χρησιμοποιούνται όπως και οι άλλες τιμές της PHP δηλαδή οι αριθμοί (2) δεν έχουν ποτέ εισαγωγικά, ενώ οι συμβολοσειρές (MD) πρέπει να έχουν. 31

Επειδή οι πίνακες χρησιμοποιούν διαφορετική σύνταξη από τις άλλες μεταβλητές η εκτύπωσή τους μπορεί να είναι πιο δύσκολη. Η εκτύπωση της τιμής ενός μεμονωμένου στοιχείου πίνακα αριθμοδεικτών είναι απλή: echo The first artist is $artists[0]. ; Αν ο πίνακας χρησιμοποιεί συμβολοσειρές ως κλειδιά τότε τα εισαγωγικά που περικλείουν το κλειδί μπερδεύουν τη σύνταξη και για αυτό πρέπει να είστε προσεκτικοί. echo IL is {$states[ IL ]}. ; 32

5.1 Χρησιμοποιήστε Πίνακες 1.Ξεκινήστε ένα νέο σενάριο PHP 2.Εκτελέστε κάποια βασική επικύρωση φόρμας. Αυτή η συνθήκη ελέγχει ότι και τα τρία πλαίσια κειμένου δεν είναι κενά. Με τη χρήση του τελεστή και (&&), ολόκληρη η συνθήκη είναι αληθής αν κάθε μία από τις τρεις υπο-συνθήκες είναι αληθής. 33

3. Τυπώστε το μήνυμα Κατά την εκτύπωση ενός στοιχείου πίνακα που χρησιμοποιεί ως κλειδί συμβολοσειρά, χρησιμοποιήστε άγκιστρα για να αποφύγετε τα σημαντικά λάθη. 4. Ολοκληρώστε τη συνθήκη που ξεκινήσατε στο βήμα 2 αν κάποια από τις τρεις υποσυνθήκες του βήματος 2 δεν είναι αληθής τότε εκτελείται ο όρος else και τυπώνεται μήνυμα σφάλματος 34

5. Ολοκληρώστε τον κώδικα PHP και HTML?> </body> </html> 35

5.2 Δημιουργία Πινάκων Υπάρχουν δυο βασικοί τρόποι δημιουργίας πινάκων. Πρώτον, μπορείτε να δημιουργήσετε έναν πίνακα προσθέτοντας ένα στοιχείο τη φορά. $band[] = Jemaine ; $band[] = Bret ; $band[] = Murray ; Το στοιχείο $band[0] έχει τιμή Jemaine, το $band[1] έχει την τιμή Bret και το $band[2] έχει τιμή Murray. Εναλλακτικά μπορείτε να καθορίζετε το κλειδί όταν προσθέτετε ένα στοιχείο. Αν καθορίσετε ένα κλειδί και υπάρχει ήδη μια τιμή που έχει ως αριθμοδείκτη αυτό το κλειδί, η νέα τιμή θα αντικαταστήσει την παλιά. 36

Αντί να προσθέτετε τα στοιχεία ένα-ένα μπορείτε να χρησιμοποιήσετε τη συνάρτηση array(), για να δημιουργήσετε ολόκληρο τον πίνακα σε ένα βήμα: $states = array ( IA => Iowa, MD, => Maryland ); Μπορείτε να χρησιμοποιήσετε αυτή τη συνάρτηση είτε ορίσετε ρητά το κλειδί είτε όχι: $artists = array ( Clem Snide, Shins, Eels ); Ή αν ορίσετε το πρώτο αριθμητικό κλειδί στις υπόλοιπες τιμές του πίνακα θα αντιστοιχιστούν τα επόμενα κλειδιά με τη σειρά: $days = array (1 => Sun, Mon, Tue ); 37

Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση array() για να δώσετε αρχικές τιμές σε έναν πίνακα πριν αναφερθείτε σε αυτόν: $tv = array(); $tv[] = Flight of the Conchords ; *Η απόδοση αρχικών τιμών σε έναν πίνακα κάνει πιο σαφή τον κώδικά σας χωρίς όμως να είναι απαραίτητη. Αν θέλετε να δημιουργήσετε έναν πίνακα με διαδοχικούς αριθμούς μπορείτε να χρησιμοποιήσετε τη συνάρτηση range(). $ten = range (1, 10); 38

5.3 Προσπέλαση Πινάκων Για να προσπελάσετε όλα τα στοιχεία ενός πίνακα χρησιμοποιήστε το βρόχο foreach. foreach ($array as $value) Ο βρόχος foreach διατρέχει ένα-ένα τα στοιχεία του πίνακα $array και αναθέτει την τιμή καθενός στη μεταβλητή $value. foreach ($array as $value => $value) { echo The value at $key is $value. ;} 39

5.4 Δημιουργήστε και Προσπελάστε Πίνακες 1. Ξεκινήστε ένα νέο έγγραφο PHP 2. Δημιουργήστε έναν πίνακα για τους μήνες. $months = array (1 => January, February, March, April, May, June, July, August, September, October, November, December ); Αυτός ο πίνακας θα χρησιμοποιεί ως κλειδιά τους αριθμούς 1 έως 12 αφού η τιμή του πρώτου κλειδιού είναι καθορισμένη. Οι επόμενες θα έχουν αυξανόμενους κατά ένα αριθμοδείκτες 40

3. Δημιουργήστε τους πίνακες για τις ημέρες του μήνα και τα έτη χρησιμοποιώντας τη συνάρτηση range που δημιουργεί εύκολα πίνακες αριθμών. $days = range (1, 31); $years = range (2008, 2018); 4. Δημιουργήστε το πτυσσόμενο μενού των μηνών Ο βρόχος foreach μπορεί να δημιουργήσει γρήγορα ολόκληρο τον κώδικα HTML. Κάθε εκτέλεση του βρόχου δημιουργεί μια γραμμή κώδικα παρόμοια με τη γραμμή <option value= 1 >January</option> 41

5. Δημιουργήστε τα πτυσσόμενα μενού των ημερών και των ετών. Αυτά θα μενού θα χρησιμοποιούν το ίδιο πράγμα για την τιμή και την ετικέτα option (έναν αριθμό). $days = range (1, 31); $years = range (2008, 2018); 6. Κλείστε τον κώδικα PHP, την ετικέτα form και τη σελίδα HTML. 42

5.5 Πολυδιάστατοι Πίνακες Ένας πίνακας ο οποίος αποτελείται από άλλους πίνακες λέγεται Πολυδιάστατος Πίνακας (multidimensional array). Παράδειγμα: Ας ξεκινήσουμε με έναν πίνακα πρώτων αριθμών $primes = array (2, 3, 5, 7, ); Στη συνέχεια δημιουργούμε έναν πίνακα (sphenic) με αριθμούς που προκύπτουν από το γινόμενο τριών διαφορετικών πρώτων αριθμών $sphenic = array (30, 42, 66, 70, ); Αυτούς τους 2 πίνακες τους συνδυάζουμε σε έναν πολυδιάστατο πίνακα ως εξής: $numbers = array ( Primes => $primes, Sphenic => $sphenic); 43

5.5.1 Χρησιμοποιήστε Πολυδιάστατους Πίνακες 1. Ξεκινήστε ένα νέο έγγραφο PHP 2. Δημιουργήστε έναν πίνακα με τις Μεξικάνικες πολιτείες 3. Δημιουργήστε τον δεύτερο και τον τρίτο πίνακα 4. Συνδυάστε όλους τους πίνακες σε έναν. $n_america = array( Mexico => $mexico, United States => $us, Canada => $canada); 44

5. Ξεκινήστε τον κύριο βρόχο foreach. foreach ($n_america as $country => $list) { echo <h2>$country</h2><ul> ; Ο βρόχος αυτός θα προσπελάσει κάθε στοιχείο του πίνακα $n_america και σε κάθε επανάληψη στη μεταβλητή $country αποθηκεύεται το κλειδί του πίνακα $n_america και στην μεταβλητή $list αποθηκεύεται η τιμή του στοιχείου του πίνακα ($mexico, $us και $canada). 6. Δημιουργήστε ένα δεύτερο βρόχο foreach foreach ($list as $k => $v) { echo <li>$k - $v</li>\n ; Αυτός ο πίνακας διατρέχει κάθε υποπίνακα και σε κάθε επανάληψη του βρόχου στην μεταβλητή $k αποθηκεύεται η σύντμηση και στην μεταβλητή $v το πλήρες όνομα. 45

7. Ολοκληρώστε τον εξωτερικό βρόχο foreach. Echo </ul> ; } // Τέλος του κύριου βρόχου. 46

5.6 Πίνακες και Συμβολοσειρές Επειδή οι πίνακες και οι συμβολοσειρές χρησιμοποιούνται πολύ, η PHP διαθέτει δύο συναρτήσεις μετατροπής από το ένα στο άλλο. $array = explode (οριοθέτης, $string); $string = implode (συνδετικό, $array); 47

5.7 Ταξινόμηση Πινάκων Ένα πλεονέκτημα των πινάκων σε σχέση με τις άλλες μεταβλητές είναι η δυνατότητα ταξινόμησής τους. Η PHP διαθέτει αρκετές συναρτήσεις ταξινόμησης πινάκων οι οποίες εφαρμόζουν 3 είδη ταξινόμησης. 1. Ταξινόμηση πίνακα ως προς τις τιμές του με τη συνάρτηση sort(). Εδώ πρέπει να ξέρετε ότι τα κλειδιά θα αλλάξουν τιμές μετά την ταξινόμηση. 2. Ταξινόμηση πίνακα ως προς τις τιμές του διατηρώντας τα κλειδιά με τη συνάρτηση asort(). 3. Ταξινόμηση πίνακα ως προς τα κλειδιά με τη συνάρτηση ksort(). 48

1.Ξεκινήστε ένα έγγραφο PHP 2. Δημιουργήστε ένα πίνακα HTML. (8-12) 3. Πληκτρολογήστε την ετικέτα ανοίγματος της PHP και δημιουργήστε ένα νέο πίνακα(13-23). Αυτός ο πίνακας χρησιμοποιεί ως τιμές του τους τίτλους των ταινιών και ως κλειδιά τους τις αντίστοιχες βαθμολογίες. 49

4. Τυπώστε τον πίνακα όπως είναι. (26-30) 5. Ταξινομήστε τον πίνακα αλφαβητικά κατά τίτλο και τυπώστε. (32-38) 6. Ταξινομήστε τον πίνακα αριθμητικά κατά βαθμολογία σε φθίνουσα σειρά και τυπώστε.(40-46) 7. Ολοκληρώστε τον κώδικα PHP, τον πίνακα και τον κώδικα της HTML.(48-51) 50

Οι διάφοροι τρόποι ταξινόμησης. 51

5.8 Βρόχοι for και while Ο βρόχος while έχει την παρακάτω σύνταξη: While (συνθήκη) { // κάνε κάτι. } Ο βρόχος θα εκτελείται όσο η συνθήκη είναι αληθής. Όταν η συνθήκη γίνει ψευδής ο βρόχος θα διακοπεί. Αν η συνθήκη δεν είναι ποτέ αληθής ο βρόχος δεν θα εκτελεστεί καθόλου. Χρησιμοποιείται κυρίως για τη λήψη αποτελεσμάτων από μια βάση δεδομένων. 52

Ο βρόχος for έχει την παρακάτω σύνταξη: For (αρχική παράσταση; συνθήκη; Τελική παράσταση) { // Κάνε κάτι. } Όταν ξεκινάει ο βρόχος εκτελείται η αρχική παράσταση. Στη συνέχεια ελέγχεται η συνθήκη και αν είναι αληθής εκτελούνται οι εντολές που περιέχει ο βρόχος. Κατόπιν εκτελείται η τελική παράσταση και ελέγχεται ξανά η συνθήκη. Αυτή η διαδικασία συνεχίζεται μέχρι η συνθήκη να είναι ψευδής. Χρησιμοποιείται όταν το πλήθος των επαναλήψεων είναι γνωστό από πριν. 53