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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

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

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

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

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

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

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

ΗΥ101: Εισαγωγή στην Πληροφορική

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

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

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

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

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

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

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

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

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

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

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 8: SQL (Πρακτική Εξάσκηση 2) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7α: SQL (NULL, Διαίρεση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

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

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

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 6: SQL (Συζεύξεις, Εμφώλευση, Ομαδοποίηση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

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

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

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

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

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

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

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

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

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

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

Οικονομετρία. Πολυσυγγραμμικότητα. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

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

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

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

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

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

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

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

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

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Διανυσματικοί Χώροι (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

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

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

Αρχιτεκτονική Υπολογιστών

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 5: SQL (Απλή SELECT) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

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

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

Εισαγωγή στο περιβάλλον Code::Blocks

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

Transcript:

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

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

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

Χειρισμός Σφαλμάτων και Αποσφαλμάτωση 2

1. Τύποι Σφαλμάτων και Βασική Αποσφαλμάτωση Όταν αναπτύσσετε εφαρμογές ιστού με την PHP και τη MySQL είναι πιθανό να δημιουργηθούν λάθη σε μια από τις παρακάτω τεχνολογίες: στον κώδικα HTML, στον κώδικα PHP, στην SQL ή στην MySQL. Τα προβλήματα της HTML είναι τα λιγότερο ενοχλητικά και τα πιο εύκολα να εντοπιστούν. Συνήθως υπάρχει πρόβλημα όταν η διάταξη της ιστοσελίδας δεν έχει τη μορφή που θέλετε. Τα λάθη της PHP είναι τα πιο συνηθισμένα και διακρίνονται σε 3 κατηγορίες: 1. Συντακτικά: είναι τα πιο συνηθισμένα και διορθώνονται εύκολα. 3

συνέχεια 2. Χρόνου εκτέλεσης: (run-time errors) είναι αυτά που δε διακόπτουν την εκτέλεση του σεναρίου, όπως και τα συντακτικά, αλλά δεν αφήνουν το σενάριο να κάνει όλα όσα πρέπει να κάνει. 3. Λογικά: είναι η πιο δύσκολη κατηγορία επειδή η PHP δεν τα αναφέρει απαραίτητα. Πρόκειται για προβλήματα που δεν είναι προφανή και δε διακόπτουν την εκτέλεση του σεναρίου. Τα σφάλματα της SQL συνήθως είναι συντακτικά και αναφέρονται όταν προσπαθείτε να εκτελέσετε το ερώτημα στη MySQL. Η MySQL εκτός από την αναφορά σφαλμάτων της SQL έχει να αντιμετωπίσει και τα δικά της σφάλματα, όπως είναι η αδυναμία προσπέλασης μιας βάσης δεδομένων. 4

1.1 Βασικά Βήματα Αποσφαλμάτωσης Βεβαιωθείτε ότι έχετε τη σωστή σελίδα. Βεβαιωθείτε ότι έχετε αποθηκεύσει τις τελευταίες αλλαγές. Βεβαιωθείτε ότι φορτώνετε τις σελίδες PHP μέσω της αντίστοιχης διεύθυνσης URL. Βεβαιωθείτε ποιες εκδόσεις PHP και MySQL χρησιμοποιείτε. Δείτε ποιο διακομιστή Ιστού χρησιμοποιείτε. Δοκιμάστε να φορτώσετε τις σελίδες σε διαφορετικό φυλλομετρητή. Αν είναι δυνατό δοκιμάστε να φορτώσετε τη σελίδα σε διαφορετικό διακομιστή. 5

1.2 Αποσφαλμάτωση της HTML Η αποσφαλμάτωση της HTML είναι σχετικά εύκολη γιατί: Ο πηγαίος κώδικας είναι απευθείας προσπελάσιμος. Τα περισσότερα προβλήματα είναι προφανή. Οι προσπάθειες λύσης τους δε χειροτερεύουν τα πράγματα. Αποσφαλματώστε κώδικα HTML: Ελέγξτε τον πηγαίο κώδικα. Χρησιμοποιείστε κάποιο εργαλείο επικύρωσης. (http://validator.w3.org) Προσθέστε περιγράμματα στους πίνακες. 6

2. Εμφάνιση Σφαλμάτων της PHP Όταν δημιουργούνται σφάλματα η PHP εμφανίζει ιδιαίτερα χρήσιμα και περιγραφικά μηνύματα σφαλμάτων τα οποία όμως δεν εμφανίζονται όταν η PHP εκτελείται με την προεπιλεγμένη διευθέτησή της. Για να μπορείτε να βλέπετε τα μηνύματα της PHP πρέπει να ενεργοποιήσετε την οδηγία display_errors. Για να ενεργοποιήσετε την display_errors χρησιμοποιήστε τη συνάρτηση ini_set(). Ενεργοποιήστε την display_errors: 1.Δημιουργήστε ένα νέο έγγραφο PHP. 7

συνέχεια 2. Μετά τις αρχικές ετικέτες της PHP προσθέστε την εντολή ini_set( display_errors, 1); Από αυτό το σημείο του σεναρίου και μετά όλα τα σφάλματα θα αναφέρονται. 3. Προκαλέστε μερικά σφάλματα. foreach ($var as $v) {} $result = 1/0; Για να δοκιμάσετε τη display_errors το σενάριο πρέπει να έχει κάποιο σφάλμα. 8

συνέχεια 4. Ολοκληρώστε τη σελίδα 5. Αποθηκεύστε το αρχείο με το όνομα display_errors.php 6. Αν θέλετε αλλάξτε την πρώτη γραμμή του κώδικα PHP σε ini_set( display_errors, 0); Και μετά αποθηκεύστε και δοκιμάστε ξανά το σενάριο. 9

3. Ρύθμιση της Αναφοράς Σφαλμάτων στην PHP Αφού ρυθμίσετε την PHP ώστε να εμφανίζει τα σφάλματα που συμβαίνουν μπορείτε να προσαρμόσετε και το επίπεδο αναφοράς σφαλμάτων, το οποίο σε γενικές γραμμές είναι 3 ειδών: 1. Παρατηρήσεις (notices) που δε διακόπτουν την εκτέλεση ενός σεναρίου και δε συνιστούν απαραίτητα προβλήματα. 2. Προειδοποιήσεις (warnings), που επισημαίνουν κάποιο πρόβλημα, αλλά δε διακόπτουν την εκτέλεση του σεναρίου. 3. Σφάλματα (errors), που διακόπτουν την εκτέλεση του σεναρίου. 10

συνέχεια Πρακτικός κανόνας: Στη φάση ανάπτυξης της τοποθεσίας η PHP πρέπει να αναφέρει όλα τα σφάλματα αλλά όταν η τοποθεσία αρχίσει να λειτουργεί δε θα πρέπει να αναφέρει κάποια συγκεκριμένα είδη σφαλμάτων. Μπορείτε να ρυθμίσετε συνολικά το επίπεδο αναφοράς σφαλμάτων ή για κάθε σενάριο ξεχωριστά με τη συνάρτηση error_reporting(). Αυτή η συνάρτηση χρησιμοποιείται για τον καθορισμό του τύπου των σφαλμάτων και ως όρισμα δέχεται είτε έναν αριθμό, είτε μια σταθερά. error_reporting(0); απόκρυψη σφαλμάτων error_reporting(e_all) αναφέρονται όλα τα σφάλματα 11

συνέχεια Προσαρμόστε την αναφορά σφαλμάτων 1. Ανοίξτε το σενάριο display_errors.php 2. Αφού ρυθμίσετε την display_errors, προσθέστε την error_reporting (E_ALL); 3. Αποθηκεύστε το αρχείο με το όνομα report_errors.php 4. Αλλάξτε το επίπεδο της αναφοράς σφαλμάτων και δοκιμάστε ξανά το σενάριο. Επειδή θα χρειαστεί συχνά να κάνετε αλλαγές στις display_errors και error_reporting είναι καλύτερο να τοποθετήσετε αυτές τις γραμμές κώδικα σε ένα ξεχωριστό PHP ώστε να είναι δυνατή η συμπερίληψή τους σε άλλα σενάρια της PHP. 12

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

συνέχεια Η συνάρτηση αυτή μπορεί να γραφτεί ώστε να δέχεται μέχρι 5 ορίσματα. Με τη σειρά τα ορίσματα αυτά είναι: ένας αριθμός σφάλματος, ένα μήνυμα σφάλματος κειμένου, το όνομα του αρχείου όπου συνέβη το σφάλμα, η γραμμή όπου συνέβη και οι μεταβλητές που υπήρχαν τη στιγμή που συνέβη το σφάλμα. Ο ορισμός της συνάρτησης αυτής θα έχει την εξής μορφή 14

4.1 Δημιουργήστε το δικό σας χειριστή σφαλμάτων 1. Ανοίξτε το αρχείο report_errors.php 2. Αφαιρέστε τις γραμμές ini_set() και error_reporting(). Όταν ορίζετε τη δική σας συνάρτηση τα επίπεδα αναφοράς σφαλμάτων δεν έχουν πια σημασία. 3. Πριν το σενάριο δημιουργήσει τα σφάλματα, προσθέστε τη γραμμή: define ( LIVE, FALSE); Αυτή η σταθερά μας δείχνει αν η τοποθεσία είναι σε λειτουργία ή όχι. 4. Ξεκινήστε τον ορισμό της συνάρτησης χειρισμού σφαλμάτων 15

συνέχεια 5. Δημιουργήστε το μήνυμα σφάλματος, χρησιμοποιώντας τις τιμές που δέχεται η συνάρτηση 6. Προσθέστε στο μήνυμα σφάλματος τυχόν υπάρχουσες μεταβλητές. 16

συνέχεια 7. Τυπώστε το κατάλληλο μήνυμα ανάλογα με το αν η τοποθεσία βρίσκεται σε λειτουργία ή σε φάση ανάπτυξης. 17

συνέχεια 8. Ολοκληρώστε τη συνάρτηση και πείτε στην PHP να τη χρησιμοποιήσει. Αυτή η δεύτερη γραμμή είναι σημαντική, επειδή λέει στην PHP να χρησιμοποιήσει τη δική σας συνάρτηση χειρισμού σφαλμάτων αντί για την προεπιλεγμένη. 9. Αποθηκεύστε το αρχείο με το όνομα handle_errors.php 10. Αλλάξτε την τιμή LIVE σε TRUE, αποθηκεύστε το αρχείο και δοκιμάστε ξανά το σενάριο. 18

5. Τεχνικές Αποσφαλμάτωσης της PHP Όταν καταλάβετε την αιτία που προκαλεί το σφάλμα όσο πιο γρήγορα θα καταφέρετε να το διορθώσετε. 19

συνέχεια Για να αποφύγετε συντακτικά σφάλματα κατά τον προγραμματισμό πρέπει: Να τερματίζετε κάθε εντολή με ελληνικό ερωτηματικό. Να ταιριάζετε σωστά τα εισαγωγικά, τις παρενθέσεις, τα άγκιστρα και τις αγκύλες. Να είστε συνεπείς στη χρήση των εισαγωγικών. Να τοποθετείτε τον χαρακτήρα διαφυγής της ανάποδης καθέτου όπου χρειάζεται, πριν από τα απλά και τα διπλά εισαγωγικά μέσα σε συμβολοσειρές. Αν ένα μήνυμα σφάλματος αναφέρει λάθος πχ. στη γραμμή 12, θεωρήστε τη γραμμή αυτή ως αφετηρία παρά ως απόλυτη θέση. 20

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

5.1 Αποσφαλματώστε τα σενάριά σας Ενεργοποιήστε τη ρύθμιση display_errors. Χρησιμοποιήστε σχόλια (αποκλεισμός των προβληματικών γραμμών). Χρησιμοποιήστε τις συναρτήσεις print() και echo() (με μια εντολή echo() μπορείτε να εντοπίσετε ακριβώς το προβληματικό σημείο). Ελέγξτε τι εισαγωγικά χρησιμοποιούνται για την εκτύπωση των μεταβλητών. Παρακολουθήστε τις μεταβλητές. Τυπώστε τις τιμές πινάκων. 22

6. Τεχνικές Αποσφαλμάτωσης SQL & MySQL Τα πιο συνηθισμένα σφάλματα SQL οφείλονται στις παρακάτω αιτίες: Εισαγωγικά ή παρενθέσεις που δεν κλείνουν σωστά. Απόστροφοι χωρίς χαρακτήρα διαφυγής σε τιμές στηλών. Ανορθόγραφα ονόματα στηλών, πινάκων ή συναρτήσεων. Ασαφής αναφορά σε στήλη μιας ένωσης. Λάθος σειρά τοποθέτησης των όρων ενός ερωτήματος (WHERE, GROUP BY, ORDER BY, LIMIT). Κατά τη χρήση της MySQL μπορεί να αντιμετωπίσετε τα εξής προβλήματα: Μη αναμενόμενα ή ακατάλληλα αποτελέσματα ερωτημάτων. Αδυναμία προσπέλασης της βάσης δεδομένων. 23

6.1 Αποσφαλμάτωση κώδικα SQL 1.Τυπώστε τα ερωτήματα του σεναρίου PHP. Με την εντολή echo $query στο σενάριο PHP, μπορείτε να στείλετε στο φυλλομετρητή το ακριβές ερώτημα που εκτελείται. Μερικές φορές το βήμα αυτό είναι αρκετό για να εντοπίσετε το πρόβλημα. 2.Εκτελέστε το ερώτημα στον πελάτη mysql ή κάποιο άλλο εργαλείο. Η πιο ασφαλής μέθοδος είναι να εκτελέσετε το ερώτημα που περιλαμβάνεται στο σενάριο PHP σε μια ανεξάρτητη εφαρμογή (phpmyadmin) και αν αυτή επιστρέψει το αναμενόμενο αποτέλεσμα αλλά το σενάριο εξακολουθεί να μη λειτουργεί σωστά, τότε το πρόβλημα είναι του σεναρίου και όχι της SQL ή της MySQL. 24

συνέχεια 3.Αν και πάλι δεν μπορείτε να εντοπίσετε το πρόβλημα, ξαναγράψτε το ερώτημα στην πιο απλή του μορφή και αρχίστε να προσθέτετε στοιχεία μέχρι να βρείτε ποιος όρος δημιουργεί το πρόβλημα. 25

6.2 Αντιμετώπιση προβλημάτων σύνδεσης Τα μηνύματα άρνησης πρόσβασης (access denied) είναι το πιο συνηθισμένο πρόβλημα που αντιμετωπίζουν οι νέοι προγραμματιστές κατά την αλληλεπίδραση με τη MySQL μέσω της PHP. Μερικές από τις πιο συνηθισμένες λύσεις είναι οι εξής: Φορτώστε ξανά τη MySQL αφού αλλάξετε τα προνόμια ώστε να ισχύσουν οι αλλαγές. Ελέγξτε προσεκτικά τον κωδικό πρόσβασης. Το μήνυμα σφάλματος Can t connect to (αριθμός σφάλματος 2002) σημαίνει ότι η MySQL είτε δεν είναι σε λειτουργία είτε δε λειτουργεί στην υποδοχή (socket) ή στη θύρα TCP/IP που χρησιμοποιεί ο πελάτης. 26