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

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

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

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

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

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

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

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

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

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

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

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

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

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

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

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

Ενότητα. Επεξεργασία πινάκων

Ανοικτό Ψηφιακό Μάθημα για την κατάρτιση του προσωπικού υποστήριξης ανάπτυξης ψηφιακών μαθημάτων

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

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

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

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

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

Ενότητα. Εισαγωγή στη Microsoft Access

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

Εργαστήριο «Βάσεις Οικολογικών Δεδομένων και Εφαρμογές»

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

Τεχνολογία Πολιτισμικού Λογισμικού

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

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

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

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

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

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

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

Εισαγωγή στις Βάσεις Δεδομζνων II

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

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

ΣΚΟΠΟΙ ΒΗΜΑ 1 Ο. Θα εμφανιστεί το λογότυπο του προγράμματος.. ..και μετά από λίγο ένα παράθυρο με τίτλο Προβολές CMap Tools. [1]

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΥΠ.ΕΣ. - Δ.Μ.Η.Ε.Σ. ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΛΗΞΙΑΡΧΕΙΟΥ V 1.2

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

Σενάριο Χρήσης myschool

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Μαθηματικές Πράξεις στην Visual Basic ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

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

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

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

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

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

ΥΠ.ΕΣ. - Δ.Μ.Η.Ε.Σ. ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΛΗΞΙΑΡΧΕΙΟΥ

Βάσεις Περιβαλλοντικών Δεδομένων

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

Συνεργείο Αυτοκινήτων

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Κεφαλίδες και υποσέλιδα

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

Ψηφιακή Τεχνολογία σε Ακαδημαϊκό Περιβάλλον

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

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

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Τα συγκεντρωτικά ερωτήματα αφορούν στην ομαδοποίηση των δεδομένων και στη. χρήση συναρτήσεων ομαδοποίησης κατά την εκτέλεση ενός ερωτήματος προβολής

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

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου

ΓΕΝΙΚΟ ΝΟΣΟΚΟΜΕΙΟ ΡΟΔΟΥ ΤΜΗΜΑ ΟΡΓΑΝΩΣΗΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΑΤΟΜΙΚΩΝ ΣΥΝΤΑΓΟΛΟΓΙΩΝ ΦΑΡΜΑΚΕΙΟΥ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΕΚΔΟΣΗ 1.

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

Σχεδιασμός των Πινάκων μίας Βάσης Δεδομένων

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

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

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Εντολές κίνησης και στροφής στο προγραμματιστικό περιβάλλον Scratch. ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

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

Υποβολή Αναλώσιµων Υλικών ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Ηλεκτρονικές Υπηρεσίες. Υποβολή Αναλώσιμων Υλικών. Σελίδα 1

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

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

Με την αλλαγή των μεταβλητών σελιδοποίησης αυτόματα ρυθμίζετε το νέο όριο για τα άρθρα και τα αποτελέσματα αναζήτησης.

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

Φυσική Απογραφή & Παραστατικά Αποθήκης

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

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

Σενάριο Χρήσης Moodle

Ψηφιακή Τεχνολογία σε Ακαδημαϊκό Περιβάλλον

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

Υπολογιστικά & Διακριτά Μαθηματικά

ΑΚΑΔΗΜΑΪΚΟ PORTAL ΚΑΤΑΧΩΡΙΣΗΣ ΒΑΘΜΟΛΟΓΙΩΝ

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Βάσεις Δεδομένων Mini Project

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

Τεχνολογία Λογισμικού

Πληροφορική ΙΙ Ενότητα 1

Transcript:

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

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

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

Συνήθεις Τεχνικές Προγραμματισμού 2

1. Αποστολή Τιμών σε Σενάριο Εκτός από την καταχώρηση των δεδομένων σε φόρμες υπάρχουν και άλλες δυο μέθοδοι μεταβίβασης μεταβλητών και τιμών σε σενάρια PHP: 1.Η χρήση του τύπου κρυφής εισόδου της HTML Αν πληκτρολογήσετε τον παραπάνω κώδικα ανάμεσα στις ετικέτες form μιας φόρμας, η μεταβλητή $_POST[ do ] θα περιέχει την τιμή this στο σενάριο της PHP που χειρίζεται τη φόρμα (με την παραδοχή ότι η φόρμα χρησιμοποιεί τη μέθοδο POST) 3

2. Η προσάρτηση των τιμών στη διεύθυνση URL: Αυτή η τεχνική εξομοιώνει τη μέθοδο GET μιας φόρμας HTML. Στο συγκεκριμένο παράδειγμα το σενάριο page.php δέχεται μια μεταβλητή που έχει το όνομα $_GET[ do ] με τιμή this. 4

1.1 Μεταβιβάστε τιμές σε ένα σενάριο PHP 1. Ανοίξτε το αρχείο view_users.php 2. Τροποποιήστε το ερώτημα της SQL ως εξής: Στο ερώτημα έγιναν δύο αλλαγές. Πρώτον, το όνομα και το επώνυμο επιλέγονται ξεχωριστά και δεύτερον, τώρα επιλέγεται και το πεδίο user_id, επειδή η τιμή αυτή είναι απαραίτητη για τη δημιουργία των συνδέσμων. 5

3.Προσθέστε τρεις επιπλέον στήλες στον κύριο πίνακα Η στήλη του ονοματεπώνυμου διαιρέθηκε σε δύο μέρη και προστέθηκαν ακόμα δύο νέες στήλες, μία για το σύνδεσμο edit και μία για το σύνδεσμο delete. 6

4. Αλλάξτε την εντολή echo του βρόχου while ώστε να ταιριάζει με τη νέα δομή του πίνακα. Για κάθε εγγραφή που επιστρέφεται από τη βάση δεδομένων, αυτή η γραμμή κώδικα θα τυπώνει μία γραμμή με πέντε στήλες. 7

5. Αποθηκεύστε το αρχείο με το όνομα view_users.php. 6. Αν θέλετε, εμφανίστε τον πηγαίο κώδικα της HTML για να δείτε τον τρόπο που η PHP παράγει δυναμικά τους συνδέσμους. 8

2. Χρήση Κρυφών Εισόδων Φόρμας Η νέα έκδοση του σεναρίου view_users.php περιλαμβάνει συνδέσμους προς τις σελίδες edit_user.php και delete_user.php στις οποίες μεταβιβάζονται τα αναγνωριστικά των χρηστών μέσω των διευθύνσεων URL. Το σενάριο delete_user.php δέχεται το μεταβιβαζόμενο αναγνωριστικό χρήστη και επιτρέπει στο διαχειριστή να διαγράψει το συγκεκριμένο χρήστη. Για λόγους ασφάλειας πρέπει να υπάρχουν πολλά βήματα: 1. Η ιστοσελίδα πρέπει να ελέγξει αν το αναγνωριστικό χρήστη που δέχθηκε είναι αριθμητική τιμή. 2. Εμφανίζεται ένα μήνυμα που ζητάει να επιβεβαιώσουμε τη διαγραφή. 3. Το αναγνωριστικό χρήστη αποθηκεύεται σε μια κρυφή είσοδο φόρμας. 4. Με την υποβολή της φόρμας ο χρήστης διαγράφεται πραγματικά. 9

2.1 Χρησιμοποιήστε Κρυφές Εισόδους Φόρμας 1. Δημιουργήστε ένα νέο έγγραφο PHP. 2. Συμπεριλάβετε την κεφαλίδα της σελίδας. Αυτό το έγγραφο χρησιμοποιεί το ίδιο σύστημα προτύπων όπως και οι άλλες σελίδες της εφαρμογής. 10

3. Ελέγξτε την εγκυρότητα του αναγνωριστικού χρήστη. Αυτό το σενάριο βασίζεται σε ένα έγκυρο αναγνωριστικό χρήστη, που θα χρησιμοποιηθεί στον όρο WHERE του ερωτήματος DELETE. 11

4. Συμπεριλάβετε το σενάριο σύνδεσης της MySQL Και οι δύο λειτουργίες του σεναρίου (εμφάνιση της φόρμας και χειρισμός της) απαιτούν σύνδεση με μία βάση δεδομένων οπότε αυτή η γραμμή κώδικα τοποθετείται έξω από την κύρια συνθήκη υποβολής. 5. Ξεκινήστε την κύρια συνθήκη υποβολής της φόρμας. 6. Αν πρέπει, διαγράψτε τον χρήστη. Η φόρμα ζητάει απ τον χρήστη να επιλέξει ένα ραδιοπλήκτρο για να επιβεβαιώσει τη διαγραφή. 12

7. Ελέγξτε αν έγινε η διαγραφή και εμφανίστε το κατάλληλο μήνυμα. Η συνάρτηση mysqli_affected_rows() ελέγχει αν το ερώτημα DELETE επέδρασε σε ακριβώς μία γραμμή. Αν ναι, εμφανίζεται ένα χαρούμενο μήνυμα, αν όχι, εμφανίζεται ένα μήνυμα σφάλματος. 13

8. Ολοκληρώστε τη συνθήκη $_POST[ sure ]. Αν ο χρήστης δεν επιλέξει σαφώς το ραδιοπλήκτρο Yes, η εγγραφή δεν θα διαγραφεί. 9. Ξεκινήστε τον όρο else της κύριας συνθήκης υποβολής. 14

10. Ανακτήστε τις πληροφορίες του χρήστη που πρόκειται να διαγραφεί. Η συνθήκη που ελέγχει αν επιστράφηκε μία μόνο γραμμή, εξασφαλίζει ότι μεταβιβάστηκε ένα έγκυρο αναγνωριστικό χρήστη. 15

11. Εμφανίστε τη φόρμα. 16

12. Ολοκληρώστε τη συνθήκη mysqli_num_rows(). Αυτό το μήνυμα εμφανίζεται εφόσον το ερώτημα SELECT δεν επέστρεψε εγγραφή (επειδή υποβλήθηκε μη έγκυρο αναγνωριστικό). 17

13. Ολοκληρώστε τη σελίδα της PHP. Το τελικό άγκιστρο ολοκληρώνει την κύρια συνθήκη υποβολής. Στη συνέχεια, κλείνει η σύνδεση με τη mysql και συμπεριλαμβάνεται το υποσέλιδο. 18

14. Αποθηκεύστε το αρχείο με το όνομα delete_user.php (πρέπει να βρίσκεται στον ίδιο φάκελο με το αρχείο view_users.php). 15. Εκτελέστε το σενάριο πατώντας σε έναν σύνδεσμο Delete της σελίδας view_users.php. 19

3. Επεξεργασία Εγγραφών Σε τοποθεσίες που αλληλεπιδρούν με βάσεις δεδομένων, συνηθίζεται να υπάρχει ένα σύστημα εύκολης επεξεργασίας των εγγραφών. Το παράδειγμα σεναρίου που ακολουθεί καλείται με ένα σύνδεσμο Edit (επεξεργασία) της σελίδας view_users.php. Το σενάριο εμφανίζει μια φόρμα με τις τρέχουσες πληροφορίες του χρήστη και επιτρέπει την τροποποίησή τους. Κατά την υποβολή της φόρμας, αν τα δεδομένα περάσουν όλους τους ελέγχους επικύρωσης, θα εκτελείται ένα ερώτημα UPDATE που θα ενημερώνει τη βάση δεδομένων. 20

3.1 Επεξεργαστείτε μια Υπάρχουσα Εγγραφή 1. Δημιουργήστε ένα νέο έγγραφο PHP. 2. Ελέγξτε αν η τιμή του αναγνωριστικού χρήστη είναι έγκυρη. 21

3.Συμπεριλάβετε το σενάριο σύνδεσης στη MySQL και ξεκινήστε την κύρια συνθήκη υποβολής. Όπως και τα σενάρια εγγραφής και αυτό το σενάριο χρησιμοποιεί ένα μητρώο για την παρακολούθηση των σφαλμάτων. 22

4. Επικυρώστε το μικρό όνομα. Τα δεδομένα της φόρμας μπορούν να επικυρωθούν με τις ίδιες τεχνικές που εφαρμόσαμε και στα σενάρια εγγραφής. Τα επικυρωμένα δεδομένα περικόπτονται με τη συνάρτηση trim() και μετά περνούν από τη συνάρτηση mysqli_real_escape() για λόγους ασφαλείας. 23

5. Επικυρώστε το επώνυμο και τη διεύθυνση ηλεκτρονικού ταχυδρομείου. 6. Αν δεν προέκυψαν σφάλματα, ελέγξτε αν η υποβαλλόμενη ηλεκτρονική διεύθυνση χρησιμοποιείται ήδη. Η ακεραιότητα της βάσης και της εφαρμογής εξαρτώνται κατά ένα μέρος από την ύπαρξη μοναδικών τιμών διευθύνσεων ηλ. ταχυδρομείου στον πίνακα users. 24

7. Ενημερώστε τη βάση δεδομένων. Το ερώτημα ενημερώνει και τα τρία πεδία (όνομα, επώνυμο, διεύθυνση ηλ. ταχυδρομείου) χρησιμοποιώντας τις τιμές που υποβάλλονται μέσω της φόρμας. Αν στη φόρμα αλλάξετε μόνο μια τιμή, αυτή η τιμή ενημερώνεται στη βάση και «ενημερώνονται» και οι τιμές που έμειναν ίδιες. Αυτό το σύστημα είναι πιο απλό από το να προσπαθείτε να προσδιορίσετε ποιες τιμές άλλαξαν στη φόρμα ώστε να ενημερώσετε μόνο αυτές στη βάση δεδομένων. 25

8. Αναφέρετε τα αποτελέσματα του ερωτήματος 9. Ολοκληρώστε τη συνθήκη ελέγχου της διεύθυνσης ηλ. ταχυδρομείου. 26

10. Ολοκληρώστε τη συνθήκη που ελέγχει αν υπάρχουν σφάλματα, και τη συνθήκη που ελέγχει αν υποβλήθηκε η φόρμα. 27

11. Ανακτήστε τις πληροφορίες του χρήστη που επεξεργάζεστε. Η συνθήκη που ελέγχει αν επιστράφηκε μια μόνο γραμμή εξασφαλίζει τη μεταβίβαση ενός έγκυρου αναγνωριστικού χρήστη. 28

12. Εμφανίστε τη φόρμα. 29

13. Ολοκληρώστε τη συνθήκη mysqli_num_rows(). Αν δεν επιστράφηκε καμία εγγραφή από τη βάση δεδομένων επειδή δεν υποβλήθηκε έγκυρο αναγνωριστικό χρήστη, θα εμφανιστή αυτό το μήνυμα. 14. Ολοκληρώστε τη σελίδα PHP 30

15. Αποθηκεύστε το αρχείο με το όνομα edit_user.php στον ίδιο φάκελο με το αρχείο view_users.php 16. Εκτελέστε το σενάριο, πατώντας σε ένα σύνδεσμο Edit της σελίδας view_users.php 31

4. Σελιδοποίηση των Αποτελεσμάτων Όταν χρησιμοποιείτε μια μηχανή αναζήτησης όπως το Google, αυτή εμφανίζει τα αποτελέσματα ως μια σειρά σελίδων και όχι ως μια μεγάλη λίστα. Η σελιδοποίηση των αποτελεσμάτων ενός ερωτήματος κάνει εκτεταμένη χρήση του όρου LIMIT της SQL. Ο όρος LIMIT καθορίζει ποιο υποσύνολο των εγγραφών θα επιστραφεί. 32

Για τη σελιδοποίηση των αποτελεσμάτων που επιστρέφει ένα ερώτημα, κάθε σελίδα θα εκτελεί το ίδιο ερώτημα χρησιμοποιώντας διαφορετικές παραμέτρους στον όρο LIMIT. Επομένως, η πρώτη σελίδα θα ζητάει τις πρώτες χ εγγραφές, η δεύτερη τις επόμενες χ κ.ο.κ. Για το σκοπό αυτό πρέπει να μεταβιβάζεται από σελίδα σε σελίδα μία ένδειξη των εγγραφών που πρέπει να εμφανίζει κάθε μία, μέσω της διεύθυνσης URL, όπως το αναγνωριστικό χρήση που μεταβιβάζει η σελίδα view_users.php. Μπορείτε να προγραμματίσετε την εμφάνιση των γραμμών του πίνακα, κάθε επιστρεφόμενης εγγραφής, με εναλλασσόμενο χρώμα φόντου. 33

4.1 Σελιδοποιήστε τα Αποτελέσματα του Σεναρίου view_users.php 1. Ξεκινήστε ένα νέο έγγραφο php. 34

2. Καθορίστε το πλήθος των εγγραφών που θα εμφανίζονται ανά σελίδα. Αναθέτοντας αυτή την τιμή σε μια μεταβλητή εδώ, θα μπορείτε αργότερα να αλλάξετε εύκολα, αν χρειαστεί, το πλήθος των εγγραφών που θα εμφανίζονται ανά σελίδα. 35

3. Ελέγξτε αν έχει καθοριστεί το πλήθος των σελίδων που απαιτούνται για την εμφάνιση όλων των εγγραφών. Για να μπορεί το σενάριο να εμφανίζει τους χρήστες σε πολλές σελίδες, πρέπει να ξέρει πόσες θα χρειαστούν συνολικά για τα αποτελέσματα. Την πρώτη φορά που εκτελείται το σενάριο πρέπει να υπολογιστεί το πλήθος των σελίδων. 36

4. Μετρήστε το πλήθος των εγγραφών της βάσης δεδομένων. 37

5. Υπολογίστε με μαθηματικό τρόπο πόσες σελίδες χρειάζονται. Για να υπολογίσουμε τον ακριβή αριθμό σελίδων, διαιρούμε το πλήθος εγγραφών με τις εγγραφές ανά σελίδα και στρογγυλοποιούμε στο μεγαλύτερο ακέραιο - με τη συνάρτηση ceil() 38

6. Προσδιορίστε από ποια θέση στη βάση δεδομένων θα ξεκινήσει η λήψη των εγγραφών. Η δεύτερη παράμετρος που θα μεταβιβάζεται στο σενάριο (σε επόμενες προσπελάσεις της ιστοσελίδας) είναι η εγγραφή αφετηρίας. 39

7. Γράψτε το ερώτημα με τον όρο LIMIT. Ο όρος LIMIT καθορίζει από ποια εγγραφή θα ξεκινήσει η ανάκτηση ($start) και πόσες εγγραφές θα ανακτηθούν ($display) από κει και πέρα. 40

8. Δημιουργήστε την επικεφαλίδα HTML του πίνακα. 41

9. Δώστε αρχική τιμή στη μεταβλητή του χρώματος φόντου. Για να έχει κάθε γραμμή το δικό της χρώμα φόντου, θα χρησιμοποιήσουμε μια μεταβλητή για την αποθήκευση του χρώματος. Αρχικά, στη μεταβλητή $bg ανατίθεται η τιμή #eeeeee, δηλαδή ανοιχτό γκρίζο. Αυτό το χρώμα θα εναλλάσσεται με το λευκό (#ffffff). 42

10. Ξεκινήστε το βρόχο while που ανακτά μία-μία τις εγγραφές. 11. Τυπώστε τις εγγραφές σε μια γραμμή πίνακα. 43

12. Ολοκληρώστε το βρόχο while και τον πίνακα, αποδεσμεύστε τους πόρους των αποτελεσμάτων του ερωτήματος και κλείστε τη σύνδεση με τη βάση δεδομένων. 44

13. Ξεκινήστε μία ενότητα κώδικα που θα εμφανίζει τους συνδέσμους προς τις άλλες σελίδες, αν χρειάζεται. Αν το σενάριο χρειάζεται πολλές σελίδες για να εμφανίσει όλες τις γραμμές, πρέπει να διαθέτει τους κατάλληλους συνδέσμους στο κάτω μέρος της οθόνης. Για να δημιουργήσουμε τους συνδέσμους πρώτα προσδιορίζουμε την τρέχουσα σελίδα. Για το σκοπό αυτό, διαιρούμε τον αριθμό της εγγραφής αφετηρίας με το πλήθος των εγγραφών που εμφανίζονται ανά σελίδα και προσθέτουμε 1. 45

14. Δημιουργήστε τους αριθμητικούς συνδέσμους. 46

15. Δημιουργήστε ένα σύνδεσμο Next (επόμενη). Ο σύνδεσμος Next θα εμφανίζεται εφόσον η τρέχουσα σελίδα δεν είναι η τελευταία. 47

16. Ολοκληρώστε τη σελίδα. 17. Αποθηκεύστε το αρχείο με όνομα view_users.php. 48

5. Ταξινόμηση των Αποτελεσμάτων Όπως είναι τώρα η λίστα χρηστών εμφανίζεται ταξινομημένη ως προς την ημερομηνία εγγραφής. Τι γίνεται όμως αν θέλουμε να είναι ταξινομημένη αλφαβητικά κατά επώνυμο; Από τη σκοπιά της ΜySQL αυτό γίνεται τροποποιώντας τον όρο ORDER BY. Άρα το μόνο που έχουμε να κάνουμε είναι να προσθέσουμε στο σενάριο τον κατάλληλο κώδικα PHP που θα τροποποιήσει τον όρο ORDER BY. Το πιο λογικό είναι να συνδέσουμε τις επικεφαλίδες των στηλών έτσι ώστε το πάτημα σε αυτές να αλλάζει τη σειρά εμφάνισής τους. Αυτό περιλαμβάνει τη χρήση της μεθόδου GET για να μεταβιβάσουμε στη σελίδα μία παράμετρο που θα δείχνει την προτιμώμενη σειρά ταξινόμησης. 49

5.1 Δημιουργήστε Συνδέσμους Ταξινόμησης 1. Ανοίξτε το σενάριο view_users.php. 2. Αφού προσδιορίσετε την αφετηρία, δηλώστε τη μεταβλητή $short. Η μεταβλητή $short θα χρησιμοποιηθεί για τον προσδιορισμό της σειράς ταξινόμησης των αποτελεσμάτων του ερωτήματος. 50

3. Προσδιορίστε τη σειρά ταξινόμησης των αποτελεσμάτων. Η δομή switch συγκρίνει τη μεταβλητή $short με διάφορες αναμενόμενες τιμές. 51

4. Συμπεριλάβετε στο ερώτημα τη νέα μεταβλητή $order_by. Σε αυτό το σημείο του κώδικα, η μεταβλητή $order_by έχει μία τιμή που δηλώνει τη σειρά ταξινόμησης των επιστρεφόμενων αποτελεσμάτων, οπότε μπορεί άνετα να προστεθεί στο ερώτημα. 52

5. Τροποποιήστε την εντολή echo που εμφανίζει τις επικεφαλίδες στηλών του πίνακα, για να δημιουργήσετε τους συνδέσμους.. 53

6. Τροποποιήστε την εντολή echo() που δημιουργεί το σύνδεσμο Previous ώστε να μεταβιβάζεται και η σειρά ταξινόμησης. Προσθέστε άλλο ένα ζευγάρι όνομα=τιμή στο σύνδεσμο Previous ώστε η σειρά ταξινόμησης να μεταβιβάζεται και σε κάθε σελίδα αποτελεσμάτων. 54

7. Επαναλάβετε το Βήμα 6 για τις αριθμημένες σελίδες και για το σύνδεσμο Next. 8. Αποθηκεύστε το αρχείο με το όνομα view_users.php 55