Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΤΜΗΜΑ. Ζεμαδάνη Μαρία ΔΕΚΕΜΒΡΙΟΣ 2007. ΕΠΟΠΤΗΣ ΚΑΘΗΓΗΤΗΣ Βασίλειος Χατζής



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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

Βασικές Έννοιες Web Εφαρμογών

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

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

ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies)

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

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

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

XAMPP Apache MySQL PHP javascript xampp

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

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

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑΤΟΣ ΑΓΡΟΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ. Μέτρο 2.2.1


Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

Εργαλεία ανάπτυξης εφαρμογών internet Ι

ΟΓΗΓΙΕΣ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΜΗΤΡΩΟΥ ΑΠΟΒΛΗΤΩΝ. Draft version

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Vodafone Business Connect

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

6.2 Υπηρεσίες Διαδικτύου

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

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

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

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

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

6 Εισαγωγή στο Wordpress 3.x

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

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

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

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

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

ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

Στο grid διαχείρισης φακέλων εμφανίζονται οι εξής πληροφορίες:

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb)

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

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

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

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

Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου

Vodafone Business Connect

Στρατηγική ανάπτυξη δικτυακού κόμβου

Οδηγός Χρήσης ΠΣ Helpdesk για τους τελικούς χρήστες

Πλοήγηση www / Με τον Internet Explorer

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

Διαχείριση Βάσης Δεδομένων (dbadmin)

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις)

Τεχνολογίες που χρησιµοποιήθηκαν για την υλοποίηση του συστήµατος

Διαχείριση Αξιόγραφων

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Εγχειρίδιο διαχείρισης χρηστών και λιστών διανομής για τον Υπεύθυνο Φορέα του Δικτύου "Σύζευξις" -1-

Εγχειρίδιο εγκατάστασης Megasoft 2009

Το γεγονός ότι αποτελεί λογισµικό ανοικτού κώδικα το καθιστά αρκετά ευέλικτο σε συνεχείς αλλαγές και βελτιώσεις. Υπάρχει µια πληθώρα χρηστών που το χρ

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ:

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα:

Μαλούτα Θεανώ Σελίδα 1

ΠΑ-24γ Εγχειρίδιο Χρήσης Δ.Δ.Π. Του Δήμου Αιγάλεω

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Ο Οδηγός γρήγορης εκκίνησης

Α. ΓΕΝΙΚΗ ΠΕΡΙΓΡΑΦΗ Α1. Σκοπός εφαρμογής Α2. Είσοδος στην Εφαρμογή Α3. Γενικές λειτουργίες... 3 Β. ΕΠΙΛΟΓΕΣ Β1.Αιτήσεις...

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑΤΟΣ ΑΓΡΟΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ. Δράση 1.1, Δράση 1.2, Δράση 2.1, Δράση 1.4, Δράση 2.3, Δράση 4.1, Δράση 4.

ΗΛΕΚΤΡΟΝΙΚΟ ΚΑΤΑΣΤΗΜΑ

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Αναζήτησης Συνεπιβατών)

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Document Scanning System Ιανουάριος, 2014

PHP/MySQL και Project

Transcript:

Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΠΛΗΡΟΦΟΡΙΩΝ Σχεδιασμός και Ανάπτυξη Διαδικτυακής Εφαρμογής Διαχείρισης Πελατών και χρήση του Συστήματος Διαχείρισης Βάσεων Δεδομένων MySQL και των γλωσσών HTML και PHP. Ζεμαδάνη Μαρία ΔΕΚΕΜΒΡΙΟΣ 2007 ΕΠΟΠΤΗΣ ΚΑΘΗΓΗΤΗΣ Βασίλειος Χατζής Εκπονηθείσα πτυχιακή εργασία απαραίτητη για την κτήση του βασικού πτυχίου

ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος 3 Εισαγωγή 4 Κεφάλαιο 1, Τα εργαλεία της Εφαρμογής 1.1 Τι είναι HTML. 5 Ιστορικά στοιχεία. 5 HTML 6 HTML 4 και CSS. 7 XML και XHTML.. 8 Η πραγματικότητα.. 9 Μειονεκτήματα... 10 1.2 Τι είναι η ΡΗΡ 11 Ιστορία της ΡΗΡ... 12 Τι μπορεί να κάνει σήμερα... 13 Κύριοι τομείς που χρησιμοποιείται ένα PHP Script 15 Σε τι λογισμικό χρησιμοποιείται.... 15 Κύρια πλεονεκτήματα της ΡΗΡ... 15 Κύρια μειονεκτήματα 17 Τι μπορεί να κάνει. 17 1.3 Τι είναι η MySQL.. 18 Πως λειτουργεί. 18 Ιστορικά 19 Πλεονεκτήματα.... 20 Μειονεκτήματα... 20 1.4 Τι είναι Apache... 21 Iστορικά... 21 Χαρακτηριστικά 23 Χρήση 23 ΚΕΦΑΛΑΙΟ 2, Η ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Ο πίνακας usermember. 24 Ο πίνακας appointments 26 Σελ. 2 από 62

Ο πίνακας work_category... 27 Ο πίνακας gender. 27 Ο πίνακας years.... 28 Ο πίνακας times.. 28 ΚΕΦΑΛΑΙΟ 3, ΑΝΑΠΤΥΞΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ 3.1 Η εισαγωγική σελίδα.. 31 Εγγραφή νέου Χρήστη... 34 Εγγραφή νέου Μέλους.. 36 3.2 Member 36 Προβολή Ιστορικού των ραντεβού.. 37 Προβολή ραντεβού ημέρας. 40 Προβολή ραντεβού τρέχουσας εβδομάδας 42 Προβολή ραντεβού σε εκκρεμότητα 43 Προβολή πελατών. 44 Αλλαγή στοιχείων... 44 Διαγραφή Μέλους.... 45 3.3 User 46 Κλείσιμο ραντεβού 46 Ιστορικό ραντεβού.. 49 Ραντεβού σε εκκρεμμότητα. 52 3.4 Admin.. 54 Εισαγωγή/ Διαγραφή Ειδικότητας 55 Εισαγωγή/ Διαγραφή Έτους. 55 Προβολή Μελών. 56 Διαγραφή Μελών 57 Προβολή Χρηστών 58 Διαγραφή Χρηστών.. 59 Προβολή και διαγραφή μελλοντικών ραντεβού.. 60 Προβολή και διαγραφή ραντεβού... 60 ΣΥΜΠΕΡΑΣΜΑΤΑ... 61 ΒΙΒΛΙΟΓΡΑΦΙΑ.. 62 Σελ. 3 από 62

ΠΡΟΛΟΓΟΣ Ευχαριστώ την οικογένεια μου, που με στήριξε σε όλη τη διάρκεια των σπουδών μου. Ευχαριστώ τον κ. Χατζή, για την πολύτιμη βοήθεια που μου προσέφερε. Σελ. 4 από 62

ΕΙΣΑΓΩΓΗ Στην πτυχιακή εργασία αυτή, αναπτύσσεται, παρουσιάζεται και αναλύεται μια εφαρμογή, η βάση δεδομένων της οποίας βασίζεται στο Σύστημα Διαχείρισης Βάσεων Δεδομένων MySQL, το περιβάλλον λειτουργίας προγραμματίστηκε με PHP και HTML και φιλοξενείται στον Web Server Apache. Το θέμα της πτυχιακής είναι η Ανάπτυξη μιας Διαδικτυακής Εφαρμογής Διαχείρισης Πελατών, όπου λαμβάνουν μέρος πολλές οντότητες με σκοπό το κλείσιμο ραντεβού, ενός πελάτη με έναν γιατρό. Οι επιπλέον λειτουργίες της εφαρμογής την καθιστούν πιο εύχρηστη και αποδοτική. Αναλυτικά, στο πρώτο κεφάλαιο αναπτύσσονται τα εργαλεία με τα οποία δημιουργήθηκε η εφαρμογή. Στο δεύτερο, αναλύεται η δομή της βάσης δεδομένων που χρησιμοποιεί η εφαρμογή. Στο τρίτο κεφάλαιο περιγράφεται η εφαρμογή, πως λειτουργεί, πως δημιουργήθηκε και τι ελέγχει. Ακολουθούν τα συμπεράσματα. Σελ. 5 από 62

1 ΤΑ ΕΡΓΑΛΕΙΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ 1.1 Τι είναι η HTML Η HTML είναι η μια συμβολική γλώσσα που χρησιμοποιείται ακόμα και σήμερα στον Παγκόσμιο Ιστό. Δεν θεωρείται γλώσσα προγραμματισμού αλλά μπορεί να δημιουργήσει ιστοσελίδες με πολλά χρώματα, σχήματα και αντικείμενα. Όλοι οι υπολογιστές μπορούν να εμφανίσουν ιστοσελίδες στην οθόνη τους, αλλά το πώς θα φαίνονται αυτές, εξαρτάται από τον τύπο του υπολογιστή, από την οθόνη, από την ταχύτητα της σύνδεσης στο Internet και τέλος, από το λογισμικό που θα χρησιμοποιηθεί για την εμφάνιση της σελίδας: το φυλλομετρητή ή πρόγραμμα περιήγησης. Οι πιο γνωστοί φυλλομετρητές σήμερα είναι τα προγράμματα Internet Explorer, Netscape, Communicator και Opera, οι οποίοι δεν μπορούν να εμφανίσουν τις ιστοσελίδες με τον ίδιο ακριβώς τρόπο. Ουσιαστικά, το HTML έχει δημιουργηθεί για την στοιχειοθέτηση και μορφοποίηση των ηλεκτρονικών κειμένων και για την αναμετάδοση των στοιχείων αυτών στο διαδίκτυο. Ιστορικά στοιχεία Το World Wide Web ξεκίνησε τη ζωή του στο CERN, ένα Ευρωπαϊκό Εργαστήριο στην Ελβετία. Το CERN ήταν ένα σημείο συνάντησης επιστημόνων από όλο τον κόσμο, όπου εκεί αντάλλασαν ιδέες και απόψεις για διάφορα φαινόμενα της τεχνολογίας. Σελ. 6 από 62

Ο Tim Berners Lee είναι ο εφευρέτης του Web. Το 1989 δούλευε στον τομέα της πληροφορικής στο CERN. Ήταν αυτός που σκέφτηκε την ιδέα, να μπορούν ερευνητές από όλο τον κόσμο, να έχουν ένα κοινό σημείο συνάντησης και ανταλάσσουν διάφορες πληροφορίες. Στην πραγματικότητα όμως, το Web ανακαλύφθηκε στις αρχές του 1990. Η ανάπτυξη της τεχνολογιακής επικοινωνίας επέφερε ένα σύστημα που ήταν παρόμοιο με το Web. Το υπερκείμενο (hypertext) άρχισε να χρησιμοποιείται περισσότερο πλέον. Οι χρήστες του Internet αυξήθηκαν κατά πολύ, έτσι και η συνεισφορά των πληροφοριών μεγάλωσε. Τον Σεπτέμβρη του 1991 ξεκίνησαν οι online συζητήσεις στο Internet, που ήταν ιδέα και προσπάθεια του Tim. Στην άλλη άκρη της γης, τo 1992, το NSCA ενθουσιάστηκε με την ιδέα αυτή του Tim. Ο Joseph Hardin και ο Dave Thompson που εργάζονταν και οι δύο για το National Center Supercomputer Applications, καταφέρανε να συνδεθούν με τους απομακρυσμένους υπολογιστές του CERN και να κατεβάσουν αντίγραφα από Web browsers. Αφού αντιλήφθηκαν το επίτευγμά τους, αποφάσισαν να αναπτύξουν περισσότερο τους browsers. Κι έτσι στα μέσα του 1993 υλοποιήθηκε αυτό που ήθελαν και το ονόμασαν Mosaic. Το HTML, εμφανίζεται για πρώτη φορά στο World Wide Web (1993). Οι αρχικοί δημιουργοί του ήταν οι Marc Andreesen και Jim Clark. Έπειτα το HTML επιδέχθηκε πολλές αλλαγές, από διάφορους. Σελ. 7 από 62

HTML 3.2 Ο οργανισμός W3C ήταν αυτός που πρώτος προσπάθησε να προτυποποιήσει τις ιδιωτικές επεκτάσεις, καθώς η εξάπλωση του Παγκόσμιου Ιστού ήταν πολύ μεγάλη και διαδεδομένη. Ταυτόχρονα, οι εταιρείες παραγωγής φυλλομετρητών Ιστού προσπάθησαν να υποστηρίξουν τις επίσημες προδιαγραφές της HTML όσο το δυνατό καλύτερα, έτσι ώστε μια ιστοσελίδα γραμμένη σύμφωνα με τα νέα πρότυπα να συμπεριφέρεται με τον ίδιο τρόπο σε όλους τους φυλλομετρητές. HTML 4 KAI CSS Η παλιά έκδοση της γλώσσας HTML συνδύαζε το περιεχόμενο, τη δομή, και τις οδηγίες μορφοποίησης σε ένα μόνο έγγραφο, κάτι που απλοποιούσε τα πράγματα αλλά δεν παρείχε και πολλές δυνατότητες. Έτσι η W3C σκέφτηκε τη δημιουργία ενός νέου συστήματος στο οποίο οι οδηγίες μορφοποίησης θα αποθηκευόταν χωριστά από το περιεχόμενο και τη δομή, έτσι ώστε να μπορούν να εφαρμοστούν, όχι μόνο σε μια παράγραφο ή σε μια ιστοσελίδα, αλλά και σε μία ολόκληρη τοποθεσία Ιστού αν το επιθυμούσε ο σχεδιαστής της. Η νέα έκδοση 4 της HTML θα είχε πλέον τη δυνατότητα να αφαιρούνται τα περισσότερα στοιχεία μορφοποίησης από τις προδιαγραφές. Δηλαδή, ο οργανισμός πλέον συνειδητοποίησε ότι τα στοιχεία αυτά της μορφοποίησης δεν ήταν απόλυτα ικανοποιητικά, και συνιστούσε την αποφυγή στη χρήση τους. Ταυτόχρονα δημιούργησαν ένα νέο σύστημα μορφοποίησης τα φύλλα επάλληλων στυλ (Cascading Style Sheets, CSS)- προκειμένου να καλύψουν το κενό. Σελ. 8 από 62

Οι αρχικές προδιαγραφές των φύλλων επάλληλων στυλ περιοριζόταν κυρίως στην επανάληψη των παλιών εφέ της HTML. Ωστόσο το 1998 δημοσιεύθηκε το δεύτερο επίπεδο του συστήματος CSS στο οποίο προστέθηκαν νέες δυνατότητες, με σημαντικότερη τη δυνατότητα τοποθέτησης στοιχείων σε μια ιστοσελίδα με μεγάλη ακρίβεια. Σε αυτή την έκδοση της HTML, το σύστημα CSS κατόρθωσε, όχι μόνο να αντικαταστήσει τα παλιά στοιχεία μορφοποίησης της HTML, αλλά και να δώσει στους σχεδιαστές ιστοσελίδων τη δυνατότητα να δημιουργούν διατάξεις «επαγγελματικού επιπέδου». Παρόλα αυτά, οι περισσότεροι φυλλομετρητές εξακολουθούσαν να είναι συμβατοί «προς τα πίσω» ώστε να μπορούν να εμφανίζουν και «περίεργες» ιστοσελίδες, πάντα με λίγο διαφορετικό τρόπο ο καθένας, γεγονός που χειροτέρευε την κατάσταση ακόμη περισσότερο. Επίσης, εξακολουθούσε να μην υπάρχει κάποιο πρότυπο σύστημα για την προσθήκη νέων δυνατοτήτων. Δηλαδή η γλώσσα HTML δεν αποτελούσε και τόσο ισχυρή βάση για τη δόμηση ιστοσελίδων. Έτσι, ο οργανισμός W3C αποφάσισε ότι αυτό που χρειαζόταν σε όλους ήταν περισσότερη δομή. Η απάντηση ήταν η γλώσσα ΧML (Extensible Markup Language, Επεκτάσιμη Γλώσσα Σήμανσης). ΧML και ΧΗΤML Γενικά,η ΧML μοιάζει πολύ με την ΗΤML, αφού και αυτή διαθέτει ετικέτες, ιδιότητες και τιμές. Στην ουσία όμως ΧML είναι μια γλώσσα δημιουργίας άλλων γλωσσών. Χρησιμοποιείται περισσότερο για σχεδιασμό προσαρμοσμένων γλωσσών σήμανσης, περισσότερο για μορφοποιήσεις εγγράφων. Η γλώσσα σήμανσης περιέχει διάφορες ετικέτες οι οποίες περιγράφουν τα δεδομένα που περιέχουν. Σελ. 9 από 62

Επειδή κάθε ετικέτα χαρακτηρίζει τα δεδομένα που περιέχει, αυτά τα δεδομένα γίνονται διαθέσιμα και για άλλες λειτουργείες, την δουλειά αυτή την κάνει η ΧML. Για παράδειγμα, υπάρχει δυνατότητα σχεδίασης ενός προγράμματος λογισμικού ώστε να εξαχθούν πληροφορίες χρήσιμες, και να συνδυαστούν με δεδομένα άλλης πηγής, και τέλος να εξαχθεί το αποτέλεσμα συνδυασμένο και από τις δύο πηγές και με κάποια άλλη μορφή. Έτσι οι πληροφορίες βρίσκονται σε εμφανή σημείο και μπορούν να χρησιμοποιηθούν ανά πάσα στιγμή. Ωστόσο η ΧML όμως διαθέτει και κάποια σημαντικά μειονεκτήματα σε σχέση με την HTML. Τα πεζών και κεφαλαίων γραμμάτων, των εισαγωγικών, των ετικετών κλεισίματος και όλα τα άλλα που χρησιμοποιούνται μέσα στον κώδικα πρέπει να χρησιμοποιούνται με μεγάλη προσοχή, γιατί έχουν σημαντικό ρόλο στην εξαγωγή του αποτελέσματος. Η ΗΤML ξαναγράφτηκε στην ΧML. Έτσι η νέα γλώσσα που δημιουργήθηκε, ΧΗΤML διαθέτει όλες της δυνατότητες της ΗΤML και γι αυτό το λόγο είναι πλέον κατανοητή από όλους τους φυλλομετρητές που υπάρχουν σήμερα. Ολόκληρο το λεξικό προέρχεται από την ΗΤML ενώ χρησιμοποιείται η σύνταξη, η ευελιξία, και η βάση για τη χρήση φύλλων επάλληλων επάλληλων στυλ (CSS). Η πραγματικότητα Παρά το γεγονός ότι η γλώσσα XHTML και η CSS ανταποκρίθηκαν στις προσδοκίες των δημιουργών τους, αντιμετωπίζουν ένα πρόβλημα, σε ότι αφορά την υποστήριξη τους από τους φυλλομετρητές. Κανένας από τους φυλλομετρητές του Ιστού που κυκλοφορούν σήμερα, δεν ανταποκρίνεται απόλυτα στις προδιαγραφές της XHTML και της CSS. Ταυτόχρονα όμως, οι φυλλομετρητές δεν παύουν να καλύπτουν τις πάρα πολλές απαιτήσεις των γλωσσών. Σελ. 10 από 62

Σήμερα, θεωρείται ότι ο φυλλομετρητής Netscape 6 προσφέρει την καλύτερη υποστήριξη της τεχνολογίας CSS. Είναι πλήρως αναμορφωμένος σε ότι αφορά την επέκτασή του. Το πρόγραμμα Opera 6 αν και λιγότερο γνωστό, είναι ένας γρήγορος και απλός φυλλομετρητής με εξαιρετική υποστήριξη των CSS. Αυτή τη στιγμή όμως, ο πιο διαδεδομένος φυλλομετρητής είναι ο Internet Explorer 6, αν και ακόμη εξακολουθεί να ταλανίζεται από ορισμένα προφανή σφάλματα. Αν και σήμερα οι φυλλομετρητές του Ιστού υποστηρίζουν τελικά το μεγαλύτερο μέρος της τεχνολογίας CSS, πολλοί χρήστες δεν χρησιμοποιούν σύγχρονους φυλλομετρητές. Είναι αξιοσημείωτο ότι ένα ποσοστό γύρω στο 10% των χρηστών που χρησιμοποιούν το Διαδίκτυο, χρησιμοποιούν φυλλομετρητές που οριακά υποστηρίζουν την τεχνολογία CSS.[10] Μειονεκτήματα Η γλώσσα HTML μπορεί να περιορίζει το μήκος των πεδίων σε καθορισμένο αριθμό χαρακτήρων, να εμπεριέχει κρυφά δεδομένα και να καθορίζει μεταβλητές που πρέπει να παρέχονται στα CGI scripts. Παρ' όλα αυτά, δεν πρέπει τα CGI scripts να εξαρτούνται από αυτούς τους περιορισμούς, μια και οποιοδήποτε CGI script μπορεί να εκτελεστεί άμεσα μέσω της URL του. Οι επιτιθέμενοι δεν είναι υποχρεωμένοι να προσπελάσουν το script μέσω της παρεχόμενης HTML φόρμας. Τα ακόλουθα παραδείγματα επιδεικνύουν: Η τιμή που επιστρέφεται από το πεδίο εισόδου μιας λίστας επιλογής, δεν θα ταιριάζει απαραίτητα με τις επιτρεπτές τιμές που έχουν προκαθοριστεί. Σελ. 11 από 62

Το μέγιστο μήκος των μεταβλητών πιθανότατα δεν θα τηρείται. Οι τιμές που παρέχονται για μεταβλητές των scripts μπορεί να περιέχουν ειδικούς χαρακτήρες. Ο χρήστης μπορεί να καταφέρει να δει κρυφά δεδομένα. 1.2 Τι είναι η PHP; H PHP είναι ένα εργαλείο για τη δημιουργία δυναμικών ιστοσελίδων (dynamic web pages). Η παρουσία της είναι αόρατη στον τελικό χρήστη. Η PHP είναι εύκολη και στην εκμάθηση και στην ανάπτυξή της. Η διαφορά της PHP με τις άλλες τεχνολογίες που δημιουργούν δυναμικά εφέ στις ιστοσελίδες, όπως είναι η JavaScript, η Java, το Flash κ.ά., είναι ότι οι τεχνολογίες αυτές βασίζονται στη δυνατότητα του φυλλομετρητή του τελικού χρήστη να εμφανίσει τα εφέ. Αυτό αποκαλείται client-side scripting, όπου οι ιστοσελίδες στέλνονται μέσω του web server στον φυλλομετρητή του χρήστη και τα scripts αρχίζουν να εκτελούνται αφότου φορτωθούν. Επειδή ο κώδικας που δημιουργεί αυτές τις αλληλεπιδράσεις στέλνεται απευθείας στον φυλλομετρητή, είναι ανοικτός στο κοινό και σίγουρα όχι η καλύτερη λύση σ όλες τις περιπτώσεις. Για παράδειγμα, ένα σύστημα αυθεντικοποίησης ή αναγνώρισης χρήστη, θα ήταν αναποτελεσματικό καθώς ο κώδικας που χειρίζεται τη διαδικασία σύνδεσης (login) θα ήταν τελείως ορατός και συνεπώς ανασφαλής.[2] Η PHP, όμως, εργάζεται μ έναν τελείως διαφορετικό τρόπο. Μια ιστοσελίδα που περιέχει κάποιον κώδικα σε PHP υφίσταται προεπεξεργασία από τη μηχανή της PHP, που αποκαλείται διερμηνευτής (interpreter), και τα αποτελέσματα αυτής της επεξεργασίας στέλνονται πίσω στον web server και από εκεί στον Σελ. 12 από 62

φυλλομετρητή του χρήστη της ιστοσελίδας. Ο κώδικας PHP μπορεί να θέσει ερωτήματα σε βάσεις δεδομένων, να δημιουργήσει εικόνες, να διαβάσει και να γράψει αρχεία, να συνδεθεί με απομακρυσμένους υπολογιστές, κ.ο.κ. Σε γενικές γραμμές οι δυνατότητες που μας δίνει είναι απεριόριστες. Tα αποτελέσματα της επεξεργασίας του PHP κώδικα είναι τα μόνα που στέλνονται στον φυλλομετρητή, ο κώδικας που τα δημιούργησε παραμένει κρυφός και συνεπώς πολύ πιο ασφαλής. Αυτό το είδος της προεπεξεργασίας αποκαλείται server-side scripting και ενώ δεν παρέχει το ίδιο είδος δυναμικών εφέ όπως η JavaScript, οι PHP σελίδες αποκαλούνται δυναμικές. Παρόμοιες γλώσσες προγραμματισμού της τεχνολογίας php είναι η asp (Active Server Pages) από την Microsoft, η cfml (ColdFusion Markup Language) της εταιρείας Allaire και jsp (JavaServer Pages) της εταιρείας Sun. Η php στηρίζεται στο μεγαλύτερο μέρος της σύνταξης στην C, στην Java και στην Perl, αλλά έχει και μερικά δικά της μοναδικά χαρακτηριστικά. Ιστορία της PHP Η PHP σχεδιάσθηκε για ανάπτυξη ανεξάρτητου περιβάλλοντος. Έχει τη δυνατότητα να εκτελείται σε πολλούς διαφορετικούς web servers και σε πολλά διαφορετικά λειτουργικά συστήματα. Είναι ένα εργαλείο εύκολο στην εκμάθηση και πολύ ευέλικτο στην ανάπτυξη. Δημιουργήθηκε από μια σειρά από σενάρια (scripts) της Perl που γράφτηκαν από τον Rasmus Lerdorf το 1995. Η PHP αποτελείτο αρχικά από δύο ανεξάρτητα εργαλεία (tools). Το Personal Home Page Tools γράφτηκε Σελ. 13 από 62

απλά και μόνο για να καταγράφει τον αριθμό των επισκέψεων σ' ένα site.[16] Για να αυξηθεί η απόδοση και για να υπάρχει μεγαλύτερη σταθερότητα, αυτά τα scripts ξαναγράφτηκαν σύντομα σε C. Η λειτουργικότητά τους σύντομα τράβηξε το ενδιαφέρον και άλλων προγραμματιστών που χρησιμοποιούσαν τον ίδιο web server. Ο Rasums επέτρεψε σ αυτούς τους προγραμματιστές να έχουν πρόσβαση στα δικά του scripts, το οποίο αποδείχθηκε τόσο δημοφιλές ώστε σύντομα άρχισε να λαμβάνει αιτήματα για επιπλέον χαρακτηριστικά (δυνατότητες). Ο Rasmus ενδιαφερόταν επίσης για τη χρήση των βάσεων δεδομένων όπου ήταν αυτό δυνατό και είχε αναπτύξει μια ακόμη σειρά από scripts της Perl με το όνομα Form Interpreter (FI). Αυτά τα scripts επεξεργάζονταν τις αιτήσεις προς τις βάσεις δεδομένων και δρομολογούσαν τις πληροφορίες πίσω σε μια ιστοσελίδα, ώστε να δημιουργούνται αλληλεπιδραστικές και δυναμικές φόρμες. Σύντομα, η PHP και το FI συγχωνεύθηκαν σ ένα μόνο εργαλείο, το οποίο ονομάσθηκε PHP/FI v2 και αποτέλεσε τον προπομπό της PHP με τη μορφή που την γνωρίζουμε σήμερα. Το 1997, καθώς συνεχιζόταν ανάπτυξη του PHP/FI, έγινε φανερό ότι το όλο σχέδιο γινόταν μεγαλύτερο απ όσο μπορούσε να χειρισθεί ένας μόνο άνθρωπος και η ανάπτυξη της PHP δόθηκε σε μια ομάδα από προγραμματιστές. Δύο τα μέλη αυτής της ομάδας, ο Zeev Suraski και ο Andi Gutmans ανέλαβαν την ευθύνη να ξαναγράψουν από την αρχή τον κώδικα του πυρήνα της PHP, που έμεινε γνωστό ως η μηχανή του Zend. Αυτή η μηχανή καθόρισε την αρχιτεκτονική και τη λειτουργικότητα για όλες τις μελλοντικές εκδόσεις της PHP. Σελ. 14 από 62

Στην πορεία άλλαξε και το ακρωνύμιο της PHP και σήμαινε πλέον Hypertext Preprocessor. Η ισχύς και η ευελιξία που προσέφερε η PHP 3 τράβηξε το ενδιαφέρον των επαγγελματιών του web και η PHP ανέλαβε κυρίαρχο ρόλο. Εξαιτίας αυτής της τεράστιας αύξησης της δημοτικότητας, η μηχανή Zend ξαναγράφτηκε άλλη μια φορά και αποτελεί τη βάση της έκδοσης 4 της PHP. Τον Ιούλιο του 2004 διατέθηκε η έκδοση 5, ενώ αυτή τη στιγμή έχουν ήδη διατεθεί και οι πρώτες δοκιμαστικές εκδόσεις της επερχόμενης PHP 6. Οι περισσότεροι ιστότοποι επί του παρόντος χρησιμοποιούν κυρίως τις εκδόσεις 4 και 5 της PHP. [14] Tι μπορεί να κάνει σήμερα Στη σημερινή έκδοση της php υπάρχει η δυνατότητα επεξεργασίας δεδομένων από μία φόρμα, δημιουργία δυναμικού περιεχομένου σε ιστοσελίδες, αλλά και αποστολή και λήψη cookies. Ο κύριος στόχος της γλώσσας είναι να επιτρέπει σε web developers να γράφουν δυναμικά παραγόμενες σελίδες (webpages) γρήγορα. Οι δυνατότητες της PHP συμπεριλαμβάνουν την εξαγωγή εικόνων, αρχείων PDF, ακόμη και ταινίες Flash παράγονται αμέσως. Μπορεί επίσης να εξάγει εύκολα οποιοδήποτε κείμενο όπως XHTML, HTML και οποιοδήποτε άλλο XML αρχείο. Η PHP μπορεί να δημιουργεί αυτόματα αυτά τα αρχεία και να τα αποθηκεύει στο σύστημα αρχείων, αντί να τα εκτυπώνει, αποτελώντας έτσι μια server-side cache για το δυναμικό σας περιεχόμενο. [5] Σελ. 15 από 62

Κύριοι τομείς που χρησιμοποιείται ένα PHP script. Server-side scripting. Είναι το πιο παραδοσιακό και το κύριο πεδίο για την PHP. Χρειάζονται τρία πράγματα για να δουλέψει αυτό. Τον PHP μεταγλωττιστή (parser) (CGI ή server module), ένα webserver (εξυπηρετητή σελίδων) και ένα web browser ("φυλλομετρητή"). Πρέπει να τρέξει ο webserver, με μια συνδεδεμένη εγκατάσταση της PHP. Μπορούν να προσπελαθούν τα αποτελέσματα του PHP προγράμματος με ένα web browser, βλέποντας την σελίδα PHP μέσα από τον server. Command line scripting. Μπορεί να φτιαχτεί ένα PHP script και να τρέξει χωρίς server ή browser. Χρειάζεται μόνο ο PHP μεταγλωττιστής για να χρησιμοποιηθεί με αυτό τον τρόπο. Αυτός ο τύπος είναι ιδανικός για script που εκτελούνται συχνά με τη χρήση της cron (σε *nix ή Linux) ή με τον Task Scheduler (στα Windows). Αυτά τα script μπορούν επίσης να χρησιμοποιηθούν για απλές εργασίες επεξεργασίες κειμένου. Εγγραφή client-side GUI εφαρμογών (Γραφικά περιβάλλοντα χρηστών). Η PHP ίσως να μην είναι η πιο καλή γλώσσα για να γράψει κανείς παραθυριακές εφαρμογές, αλλά μπορούν να χρησιμοποιηθούν κάποια προχωρημένα χαρακτηριστικά της PHP σε client-side εφαρμογές, μπορεί επίσης να χρησιμοποιηθεί το PHP-GTK για αυτού του είδους τα προγράμματα. Υπάρχει επίσης η δυνατότητα να γραφούν crossplatform εφαρμογές με αυτό τον τρόπο. Το PHP-GTK είναι μια επέκταση της PHP και δεν συμπεριλαμβάνεται στην κύρια διανομή. [15] Σε τι λογισμικό μπορεί να χρησιμοποιηθεί Η PHP μπορεί να χρησιμοποιηθεί σε όλα τα κύρια λειτουργικά συστήματα, συμπεριλαμβανομένου του Linux, πολλών εκδοχών του Unix (HP-UX, Solaris και OpenBSD), Microsoft Windows, Mac OS X, Σελ. 16 από 62

RISC OS και πιθανώς σε άλλα. Η PHP υποστηρίζει επίσης τους Apache, Microsoft Internet Information Server, Personal Web Server, Netscape και iplanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, και πολλούς άλλους webserver. Για την πλειοψηφία των server η PHP έχει ένα module, για τους υπόλοιπους η PHP μπορεί να λειτουργήσει ως ένας CGI επεξεργαστής. Έτσι με την PHP υπάρχει η ελευθερία επιλογής ενός λειτουργικού συστήματος και ενός web server. Επιπλέον, μπορεί να χρησιμοποιηθεί συναρτησιακό (procedural) ή αντικειμενοστρεφή (object oriented) προγραμματισμό ή μια ανάμειξη τους. Κυριότερα πλεονεκτήματα της PHP Η PHP έχει πολλά πλεονεκτήματα σε σχέση με άλλες γλώσσες scripting. Μερικά από τα πιο σημαντικά, είναι τα εξής: Θεωρείται ότι είναι η ταχύτερη από τις γλώσσες scripting. Η ταχύτητα είναι αισθητή στην εφαρμογή γραφικών στο διαδίκτυο. Επίσης, έχει μεγάλη ταχύτητα και στην σύνδεση με την βάση της, και στην λήψη στοιχείων από αυτή. Eίναι ανοιχτού κώδικα. Αυτό σημαίνει ότι έχει δοθεί στους χρήστες μια ελεύθερη άδεια σε remodel η recode PHP, συμφώνα με τις επιθυμίες τους. Συνεργάζεται αρμονικά με μία ευρεία γκάμα από βάσεις δεδομένων όπως η Mysql, Oracle, Solid, Unix dbm, msql, InterBase, Empress, FilePro, dbase, Sybase, Velocis. Επίσης υποστηρίζει τα πρωτόκολλα Σελ. 17 από 62

HTTP, IMAP, SNMP, NNTP και POP3, προσφέροντάς μας τη δυνατότητα συνομιλίας. Συντάσσεται με αρκετά εύκολο κώδικα. Είναι παρόμοιος με αυτό της γλώσσα C. H PHP ενσωματώνεται πολύ εύκολα μέσα στην HTML απ ότι σε άλλες γλώσσες. Η PHP υποστηρίζεται σε πολλά λειτουργικά συστήματα: Windows, Linux, BSD, Mac OS X, Solaris, αλλά και σε άλλα λειτουργικά συστήματα σε αντίθεση με άλλες γλώσσες προγραμματισμού. Είναι αξιόπιστη και σας την προτείνουν να την χρησιμοποιήσετε οι δημιουργοί του Apache Server, του πιο δημοφιλή server στον κόσμο. Υπάρχουν εκατομμύρια εικονικές κοινότητες στο Internet που προσφέρουν βοήθεια στην PHP, αλλά και ηλεκτρονικές λίστες επικοινωνίας. Είναι εύκολο να εντοπιστούν τα σφάλματα. Η PHP, έχει ένα ενσωματωμένο σύστημα που κατά την εκτέλεση του script, αν βρει κάποιο σφάλμα στον κώδικα σας, σάς το εμφανίζει στην οθόνη, κάτι που βοηθάει να κάνετε τα προγράμματά σας πιο ασφαλή όπως επίσης βοηθάει στην αποσφαλμάτωση (debugging). Είναι δωρεάν, πολύ δημοφιλής και υποστηρίζεται από τους περισσότερους web servers. Σελ. 18 από 62

Mειονεκτήματα Όταν πρόκειται για λάθος χειρισμό, θεωρείται ότι η PHP έχει πολύ φτωχή ικανότητα, στην αναγνώριση τους. Δεν υπάρχει ακόμα Native Unicode support. Δεν μπορεί ακόμα να υποστηρίξει namespaces. H ονομασία των συναρτήσεων δεν είναι συνεπής, για παράδειγμα strops ( ) και str_replace ( ). Τι μπορεί να κάνει Στο πιο βασικό επίπεδο, η PHP μπορεί να κάνει ό,τι και τα άλλα προγράμματα της τεχνολογίας CGI, όπως επεξεργασία των δεδομένων μιας φόρμας, δημιουργία δυναμικού περιεχομένου ιστοσελίδων ή αποστολή και λήψη cookies. Ίσως το δυνατότερο και πιο σημαντικό χαρακτηριστικό της PHP είναι η υποστήριξη που παρέχει σε μια ευρεία γκάμα από βάσεις δεδομένων. Έτσι, το να δημιουργήσουμε μια ιστοσελίδα που να παρέχει υποστήριξη σε βάσεις δεδομένων είναι απίστευτα απλό. Η PHP είναι εύκολη στην εκμάθηση και μπορεί κάποιος να φτιάξει εφαρμογές για το Internet με δυναμικό περιεχόμενο, πολύ εύκολα, χρησιμοποιώντας Βάσεις Δεδομένων με τις προκαθορισμένες συναρτήσεις και εντολές. Επίσης είναι εύχρηστη διότι χρησιμοποιεί εντολές φυσικής γλώσσας (Αγγλικά). Φυσικά, δεν είναι απαραίτητο να είναι κάποιος γνώστης Αγγλικών, απλά πρέπει να έχει εξοικείωση με τους όρους του προγραμματισμού. Σελ. 19 από 62

1.3 Τι είναι η MySQL MySQL είναι ένα Σύστημα Διαχείρισης Σχεσιακής Βάσης Δεδομένων (RDBMS) που αλληλεπιδρά με τον SQL (Structured Query Language), ένα εργαλείο που χρησιμοποιείται για την επεξεργασία δεδομένων και την πρόσβαση σε μια βάση δεδομένων. Είναι ένα πολύ γρήγορο και δυνατό, σύστημα διαχείρισης βάσεων δεδομένων. Μια βάση δεδομένων επιτρέπει αποθήκευση, αναζήτηση, ταξινόμηση και ανάκληση δεδομένων. Ο MySQL διακομιστής ελέγχει την πρόσβαση στα δεδομένα, για να μπορούν να δουλεύουν πολλοί χρήστες ταυτόχρονα, για να παρέχει γρήγορη πρόσβαση και να διασφαλίζει ότι μόνο πιστοποιημένοι χρήστες μπορούν να έχουν πρόσβαση. Συνεπώς η MySQL είναι ένας πολυνηματικός διακομιστής πολλαπλών χρηστών. Χρησιμοποιεί την SQL ( Structured Query Language ) την τυπική γλώσσα ερωτημάτων για βάσεις δεδομένων, παγκόσμια. Πως λειτουργεί H MySQL αποτελείται από τον MySQL server, από κάποια προγράμματα που βοηθούν στην διαχείριση των βάσεων δεδομένων της και από άλλο λογισμικό υποστήριξης του MySQL server O MySQL server είναι ο διαχειριστής του συστήματος της βάσης δεδομένων. Χειρίζεται όλες τις εντολές της βάσης. Για να δεχθεί εντολές ο MySQL server πρέπει να τρέχει και να περιμένει αιτήσεις. Γι αυτό το λόγο ο MySQL server συνήθως ρυθμίζεται να ξεκινά όταν ο υπολογιστής που τον φιλοξενεί ξεκινά. Όλη η αλληλεπίδραση με τη βάση δεδομένων γίνεται στέλνοντας μήνυμα στον MySQL server. Ένας συνήθης τρόπος αποστολής μηνυμάτων στον MySQL server είναι μέσω της ΡΗΡ. Η ΡΗΡ χρησιμοποιεί συγκεκριμένο τρόπο για να στείλει εντολές στον MySQL Σελ. 20 από 62

server. Ο MySQL server πρέπει να μπορεί να καταλάβει τις εντολές που δέχεται. Η επικοινωνία γίνεται με τη χρήση της SQL (Structured Query Language) η οποία είναι μια γλώσσα που καταλαβαίνει πολλά συστήματα διαχείρισης βάσεων δεδομένων (RDBMS). Η ΡΗΡ δεν καταλαβαίνει την SQL και αυτό επειδή δεν χρειάζεται να καταλαβαίνει. Η ΡΗΡ απλά δημιουργεί μια σύνδεση με τον MySQL server για να στείλει ένα μήνυμα SQL. Ο MySQL server ερμηνεύει το μήνυμα SQL και ακολουθεί τις οδηγίες. Έπειτα στέλνει απάντηση στέλνοντας ένα μήνυμα δηλώνοντας την κατάσταση του και τι ενέργειες έκανε ή αναφέρει κάποιο λάθος στην περίπτωση που δεν μπόρεσε να καταλάβει και να ακολουθήσει τις οδηγίες.[2] Ιστορικά Η ιστορία της MySQL ξεκινάει το 1979, όταν ο Michael Monty Widenious δημιούργησε μια βάση δεδομένων που λεγόταν unireg, για τη σουηδική εταιρία TcX DataKonsultAB. Η unireg δεν δούλευε για την TcX με την απόδοση που απαιτούνταν, έτσι η TcX άρχισε να ψάχνει εναλλακτικές λύσεις. Δοκίμασαν τις msql που δημιουργήθηκαν από τον David Hughes, αλλά και αυτή η προσπάθεια δεν επέφερε το επιθυμητό αποτέλεσμα. Έτσι ο Widenious αποφάσισε να δημιουργήσει έναν νέο server βάσεων δεδομένων, παραμετοποιημένο σύμφωνα με τις απαιτήσεις του, των οποίο βάσισε επάνω στον msql. Αυτό το σύστημα κυκλοφόρησε τον Μάιο του 1996 ως MySQL L1.0. Μερικούς μήνες αργότερα η MySQL 1.11 κυκοφόρησε ως διανομή για Solaris. Καθώς η MySQL κέρδησε σε δημοτικότητα, η TcX έκανε τη MySQL AB μια ιδιωτική εταιρία που σήμερα της ανήκει ο πηγαίος κώδικαςτου MySQL Server και είναι υπεύθυνη για τη συντήρηση, προώθηση και την επιπλέον ανάπτυξη του. Σελ. 21 από 62

Πλεονεκτήματα Η MySql είναι πιο κατανοητή και πιο εύχρηστη σε σύγκριση με τα άλλα συστήματα βάσεων δεδομένων. Μπορεί να υποστηρίξει μεγάλες βάσεις δεδομένων, περισσότερο από 50 εκατομμύρια γραμμές. Είναι συμβατή με την πλειοψηφία των λειτουργικών συστημάτων (Linux, Unix, Windows κλπ.). Είναι ελεύθερα διαθέσιμη από την GNU GPL (General Public Licence) και μπορεί να προσαρμοστεί στις ατομικές ανάγκες του χρήστη, σύμφωνα με τους όρους της άδειας Είναι σχετικά εύκολη στη χρήση της. Μειονεκτήματα Από την κατασκευή της η MySQL σχεδιάστηκε με σκοπό την ανάκτηση πληροφοριών με πολύ γρήγορους ρυθμούς. Αυτός ο σχεδιασμός εμφάνισε κάποια μειονεκτήματα που την έκαναν να μοιάζει με φτωχή επιλογή για κάποιους προγραμματιστές. Μια βάση δεδομένων χρησιμοποιείται για δύο κυρίως ενέργειες, την εισαγωγή / τροποποίηση δεδομένων και ανάκτηση πληροφοριών από υπάρχοντα δεδομένα. Οι δημιουργοί της, εστίασαν σε μια αρχιτεκτονική που θυσιάζει την ταχύτητα στην διαδικασία εισαγωγής / τροποποίησης ώστε να αυξηθεί η ταχύτητα κατά τη διάρκεια της ανάκτησης. Σελ. 22 από 62

Παρ όλα αυτά, η MySQL σήμερα προσφέρει πολλές επιλογές παραμετροποίησης που δίνουνε τη δυνατότητα να επιλεχθούν, δυνατότητα για μεγάλη ταχύτητα στην ανάκτηση των πληροφοριών ν όταν η εισαγωγή / τροποποίηση είναι περιορισμένη ή για επιλογή κάποιας παραμετροποίησης που βελτιστοποιεί την εισαγωγή / τροποποίηση. 1.4 Τι είναι ο Apache Ο Apache HTTP Server, γνωστός απλά και ως Apache είναι ένας Web Server που έχει παίξει έναν πολύ σημαντικό ρόλο στην ανάπτυξη του World Wide Web. Ο Apache αναπτύσσεται και συντηρείται από μια Κοινότητα Προγραμματιστών κάτω από την επίβλεψη του Apache Software Foundation. Η εφαρμογή είναι διαθέσιμη για έναν μεγάλο αριθμό λειτουργικών συστημάτων, Linux, Unix, Solaris, Novel Netware και Microsoft Windows. Κυκλοφορεί ως εφαρμογή ανοιχτού κώδικα. Ιστορικά Η πρώτη έκδοση του Apache φτιάχτηκε από τον Robert McCool ο οποίος συμμετείχε στην ανάπτυξη του Web Server του Εθνικού Κέντρου Εφαρμογών Υπολογιστών (NCSA) γνωστού ως NCSA HTTPd. Όταν ο Robert McCool έφυγε από το NSCA, το 1994, η ανάπτυξη του HTTPd σταμάτησε. Ο Robert McCool Βοηθήθηκε από διάφορους άλλους προγραμματιστές με τους δημιούργησε το αρχικό World Wide Web Group Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters και Nicolas Pioch. Σελ. 23 από 62

Η δεύτερη έκδοση του World Wide Web ήταν ουσιαστικά η γραφή του κώδικα του World Wide Web, εστιάζοντας περισσότερο στην καλύτερη άρθρωση του και στην ανάπτυξη ενός layer φορητότητας του World Wide Web portable runtime. Η έκδοση 2 του πυρήνα του World Wide Web έχει αρκετά σημαντικές βελτιώσεις σε σχέση με την έκδοση 1χ. αυτές συμπεριλαμβάνουν την υποστήριξη σε UNIX καλύτερη υποστήριξη και για άλλες πλαφόρμες εκτός από UNIX (όπως η Microsoft Windows) και υποστήριξη για IPv6. Η έκδοση 2.2 εισήγαγε ένα νέο ΑΡΙ εξουσιοδότησης το οποίο επιτρέπει μεγαλύτερη ευελιξία. Χαρακτηριστικά Ο World Wide Web υποστηρίζει μια ποικιλία δυνατοτήτων πολλά από τα οποία εφαρμόζονται σαν σύνθετες υπομονάδες που επεκτείνουν την λειτουργικότητα του πυρήνα. Αυτές μπορεί να είναι από γλώσσες προγραμματισμού στην πλευρά του Server έως και σχήματα αυθεντικοποίησης. Μερικές διαδεδομένες γλώσσες που υποστηρίζονται είναι οι mod_perl, mod_python, Tcl και php. Οι υπομονάδες αυθεντικοποίησης συμπεριλαμβάνουν τις mod_access, mod_auth και mod_digest. Κάποιες από τις άλλες δυνατότητες είναι η υποστήριξη SSL και TLS, παραμετροποιήσιμων αρχείων καταγραφής συμβάντων και υποστήριξη filtering. H λειτουργία virtual hosting επιτρέπει μία εγκατάσταση Apache να εξυπηρετεί πολλές διαφορετικές ιστοσελίδες. Ο Apache παρέχει παραμετροποιήσιμα μηνύματα λαθών και υποστηρίζεται από πολλά Γραφικά Περιβάλλοντος (GUI)) τα οποία επιτρέπουν ευκολότερη παραμετροποίηση του server. Σελ. 24 από 62

Χρήση Ο Apache κυρίως χρησιμοποιείται για να εξυπηρετεί ιστοσελίδες και στατικού και δυναμικού περιεχόμενου. Πολλές εφαρμογές σχεδιάστηκαν βασισμένες στα χαρακτηριστικά του περιβάλλοντος που παρέχει ο Apache. Επίσης διανέμεται ως μέρος διάφορων πακέτων λογισμικού όπως τις βάσεις δεδομένων Oracle και του Web Sphere Application Server της ΙΒΜ. Ο Apache συμπεριλαμβάνεται και στο Novell Netware 6.5 όπου είναι ο προεπιλεγμένος Web Server. Ο Apache χρησιμοποιείται σε πολλές άλλες εργασίες όπου το περιεχόμενο πρέπει να είναι διαθέσιμο σε ένα ασφαλές και αξιόπιστο περιβάλλον, παράδειγμα αυτού είναι η Διανομή Αρχείων από τ ένα PC στο Internet. Οι προγραμματιστές που αναπτύσσουν εφαρμογές Web, συχνά χρησιμοποιούν μια τοπική εγκατάσταση του Apache για να ελέγχουν τον κώδικα όσο τον αναπτύσσουν. Σελ. 25 από 62

2 Η ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ H εφαρμογή βασίζεται σε μια βάση δεδομένων, στην οποία μπορούν να καταχωρηθούν και να συλλεχθούν στοιχεία. Η βάση δεδομένων περιέχει πέντε οντότητες για διαφορετικές χρήσεις η καθεμία. Ο πίνακας USERMEMBER: Στον πίνακα USERMEMBER αποθηκεύονται όλες οι πληροφορίες των member και των user. Ο πίνακας αυτός επιδέχεται εισαγωγή, τροποποίηση, διαγραφή και από τα τρία μέλη του συστήματος (admin, member, user). Τις πληροφορίες τις παίρνεις από τις σελίδες insertuser.html και insertmember.html. Οι αλλαγές που επιδέχεται γίνονται από τις σελίδες member_view_change.php και user_view_change.php. Αναλυτικά στο κάθε πεδίο αποθηκεύεται: id: Στο πεδίο αυτό αποθηκεύεται ένας αύξων αριθμός, νέος για κάθε εγγραφή member, user ή admin. Το id δεν το εισάγει ο χρήστης, με Σελ. 26 από 62

κάθε νέα εγγραφή εισάγεται από το σύστημα. Το πεδίο αυτό έχει οριστεί πρωτεύον κλειδί. username: Το πεδίο αυτό εισάγεται από τον χρήστη. Χρησιμοποιείται για την εισαγωγή ενός χρήστη στο σύστημα (login.html). Αποτελεί μοναδική εγγραφή για οποιονδήποτε (admin, user, member). password: Επιλέγεται και εισάγεται από τον χρήστη. Χρησιμοποιείται για την εισαγωγή ενός χρήστη στο σύστημα. email: Εισάγεται το email του χρήστη. name: Εισάγεται το όνομα του χρήστη. surname: Εισάγεται το επώνυμο του χρήστη. address: Εισάγεται η διεύθυνση του χρήστη. zip: Εισάγεται ο ταχυδρομικός κώδικας του χρήστη. city: Εισάγεται η πόλη διαμονής του χρήστη. country: Εισάγεται η χώρα διαμονής του χρήστη. telephone: Εισάγεται ο αριθμός τηλεφώνου του χρήστη. date: Εισάγεται η ημερομηνία γεννήσεως του μόνο για τον user. cat_id: Το πεδίο αυτό συμπληρώνεται μόνο από τους member και είναι ένας αριθμός id ο οποίος διασταυρώνεται με το πεδίο cat_id του πίνακα work_category. Ο αριθμός αυτός είναι ο αύξων αριθμός των ειδικοτήτων των member. work: Εισάγεται το επάγγελμα του χρήστη, μόνο για τους users. Για τους member χρησιμοποιείται η προηγούμενη στήλη. gender: Εισάγεται το φύλο του χρήστη. regdate: Εισάγεται από το σύστημα η ημερομηνία εγγραφής των member ή user. access_level: Το πεδίο αυτό παίρνει από το σύστημα μόνο τις τιμές 0, 1, 2. Οι αριθμοί αυτοί είναι τα επίπεδα πρόσβασης των χρηστών. Το 0 αντιστοιχεί στον admin, το 1 στο member και το 2 στον user. Ο πίνακας αυτός ενημερώνει τον πίνακα appointments, με τα id από το αντίστοιχο ονοματεπώνυμο του user και το ονοματεπώνυμο του member, που αφορούν ένα ραντεβού. Σελ. 27 από 62

Ο πίνακας APPOINTMENTS: Στον πίνακα αυτόν αποθηκεύονται όλες οι πληροφορίες σχετικά με τα ραντεβού. Επιδέχεται εισαγωγή και διαγραφή. Την εισαγωγή μπορεί να την κάνει ο χρήστης από την σελίδα user_add_app.php και ο admin από τις σελίδες admin_show_all_app.php και admin_show_all_prev_app.php. Αναλυτικά στο κάθε πεδίο αποθηκεύονται: A_ID: Στο πεδίο αυτό αποθηκεύεται από το σύστημα αύξων αριθμός, μοναδικός για κάθε εγγραφή. Έχει ορισθεί πρωτεύον κλειδί. date: Αποθηκεύεται η ημερομηνία για την οποία έχει ορισθεί το ραντεβού, με τη μορφή 0000-00-00(yyyy-mm-dd). time: Αποθηκεύεται η ώρα που ορίζει το ραντεβού ο user. work : Αποθηκεύεται η ειδικότητα που ανήκει ο member με τον οποίο ορίζει το ραντεβού ο user. notes : Αποθηκεύονται οι διάφορες σημειώσεις του user που αφορούν την επίσκεψη του για το συγκεκριμένο ραντεβού. user : Αποθηκεύεται το id του user που κλείνει το ραντεβού, μετά από ενημέρωση από τον πίνακα usermember. member: Αποθηκεύεται το όνομα του member που ορίσθηκε για το ραντεβού. date_added: Αποθηκεύεται η ημερομηνία που έγινε η εγγραφή του συγκεκριμένου ραντεβού. Σελ. 28 από 62

Ο πίνακας WORK_CATEGORY Ο πίνακας αυτός διαχειρίζεται μόνο από τον admin, ο οποίος μπορεί να εισάγει ή να διαγράψει μία ειδικότητα, από την σελίδα admin_insdel_category.php. Συνδέεται με τον πίνακα usermember. Στον πίνακα usermember και στο κελί cat_id αποθηκεύεται ο αύξων αριθμός της κατηγορίας που αντιστοιχεί σε κάθε member. Αναλυτικά τα πεδία: cat_id: Ορίζει την μοναδικότητα της κάθε εγγραφής, έχει ορισθεί πρωτεύον κλειδί. work: Αποθηκεύεται η περιγραφή (το όνομα) της ειδικότητας. Ο πίνακας GENDER Ο πίνακας αυτός δεν επιδέχεται τροποποιήσεις, εισαγωγή και διαγραφή από το πρόγραμμα. Υπάρχουν δύο στήλες, η g_id και η gender. Στην πρώτη αποθηκεύεται το id του φύλου, όπου στον πίνακα usermember και στην στήλη gender υπάρχει αυτός ο κωδικός. Το 0 είναι Άνδρας και το 1 η Γυναίκα. Σελ. 29 από 62

Ο πίνακας YEARS Ο πίνακας Years επιδέχεται εισαγωγή και διαγραφή μόνο από τον admin, από την σελίδα admin_insert_year.php. Χρησιμοποιείται όμως από τους users, στην εισαγωγή ημερομηνίας γέννησης, στην σελίδα Εγγραφής νέου Χρήστη (insertuser1.php). Στην εισαγωγή ημερομηνίας ο user εισάγει με drop down list, την ημέρα, τον μήνα και το έτος, όπου η μέρα και ο μήνας αντλούν πληροφορίες από την σελίδα insertuser1.php ενώ το έτος αντλεί πληροφορίες από τον πίνακα αυτόν. Ο πίνακας TIMES Ο πίνακας times περιέχει δύο στήλες, όπου στην πρώτη αποθηκεύεται ένας αριθμός id (t_id) και στην δεύτερη στήλη οι ώρες των ραντεβού(time). H δεύτερη στήλη τροποποιείται από την σελίδα user_add_appo.php. Η λειτουργία του περιγράφεται αναλυτικά στην σελίδα user_add_ap.php. Σελ. 30 από 62

3 ΑΝΑΠΤΥΞΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ Η εφαρμογή που αναλύεται παρακάτω έχει σκοπό την δέσμευση ραντεβού ενός user με ένα member. Ο καθένας από αυτούς έχει διαφορετικό επίπεδο πρόσβασης (admin 0, member 1, user 2), επειδή ο καθένας από αυτούς μπορεί να κάνει διαφορετικά πράγματα από τους υπόλοιπους. Όλοι κάνουν login από την ίδια σελίδα, που είναι και η αρχική σελίδα του προγράμματος. Ο διαχωρισμός όμως γίνεται κατά την εγγραφή. Από εκεί και πέρα, ανάλογα με το επίπεδο πρόσβασης του καθενός του εμφανίζεται άλλη σελίδα. Αφού κάποιος είναι εγγεγραμμένος στη βάση δεδομένων, μπορεί να χρησιμοποιήσει τις λειτουργίες του συστήματος. Ο user, μπορεί να κλείσει ραντεβού με οποιονδήποτε member, όπου ο ίδιος επιλέγει την ειδικότητα, έπειτα το όνομα του γιατρού, την ημερομηνία και τέλος την ώρα. Από εκεί και πέρα υπάρχουν και άλλες δυνατότητες γι αυτόν όπως να δει τα παρελθοντικά του ραντεβού, αυτά που είναι σε εκκρεμότητα κτλ. Μπορεί επίσης να κάνει αλλαγές, στα στοιχεία που έχει εισάγει ο ίδιος στη βάση δεδομένων, ακόμα και να διαγράψει τον λογαριασμό του. Ο member, έχει τη δυνατότητα να δει τα ραντεβού του είτε αυτά που είναι σε εκκρεμότητα, παρελθοντικά κτλ. Ακόμη, μπορεί να δει τα στοιχεία όλων των πελατών το που είναι εγγεγραμμένοι στη βάση δεδομένων. Τέλος μπορεί και αυτός να κάνει αλλαγές στα στοιχεία που έχει καταχωρήσει στη βάση δεδομένων και να διαγράψει τον λογαριασμό του. Σελ. 31 από 62

Ο admin έχει τις πιο ζωτικές δυνατότητες για την εφαρμογή. Οι δυνατότητες του χωρίζονται σε τρεις κατηγορίες, όπου στην πρώτη μπορεί να εισάγει και να διαγράψει τις ειδικότητες των member, το ίδιο και για τα έτη που χρησιμοποιούνται στην εφαρμογή. Στη δεύτερη, μπορεί να δει τα στοιχεία όλων των member και user, και να διαγράψει τον καθένα από αυτούς. Και στην τρίτη μπορεί να δει και να διαγράψει όλα τα παρελθοντικά και μελλοντικά ραντεβού που υπάρχουν στον πίνακα appointments. 3.1 Η Εισαγωγική σελίδα Η login.html είναι η σελίδα εισαγωγής του προγράμματος. Από εδώ γίνεται η εισαγωγή των member, user και admin, για τους ήδη καταγεγραμμένους. Στο πλαίσιο «Όνομα Χρήστη / Μέλους» οι χρήστες εισάγουν το username που έχουν επιλέξει οι ίδιοι. Στο πλαίσιο Σελ. 32 από 62

«Κωδικός» εισάγεται το password που έχουν επιλέξει επίσης οι ίδιοι. Μόλις εισαχθούν τα στοιχεία αυτά, από την σελίδα login.php διασταυρώνονται τα στοιχεία με τον πίνακα usermember. $get_user_id = MYSQL_QUERY("SELECT * from usermember WHERE username='$username'") or die ("Δεν βρέθηκε το όνομα χρήστη"); Στη μεταβλητή $get_user_id αποθηκεύεται το αποτέλεσμα της εντολής της mysql. Στην εντολή αυτή επιλέγουμε όλα τα στοιχειά που αντιστοιχούν στο username που δόθηκε από τον χρήστη. Από τον πίνακα usermember και από το πεδίο access_level ελέγχεται αν το Όνομα Χρήστη/Μέλους αντιστοιχεί σε member(member_login.php), σε user(user_login.php) ή στον admin(admin_login.php), και ανοίγει η αντίστοιχη σελίδα για τον καθένα. Αν το Όνομα Χρήστη/Μέλους ή ο κωδικός πρόσβασης είναι λάθος εμφανίζεται το παρακάτω μήνυμα. Ο έλεγχος γίνεται με την εντολή: $getinfo = MYSQL_QUERY("SELECT * from usermember WHERE username='$username'and password='$password'") or die ("Δεν βρέθηκε ο συνδυασμός ονόματος χρήστη και κωδικού πρόσβασης"); $worked = mysql_fetch_array($getinfo); Σελ. 33 από 62

Με το link ΕΠΑΝΑΛΗΨΗ, ο χρήστης μεταφέρεται ξανά στην εισαγωγική σελίδα. Η λειτουργία του προγράμματος βασίζεται σε session. Στην σελίδα login.php αποθηκεύεται για πρώτη φορά το παρακάτω: session_start(); session_register ("id"); $HTTP_SESSION_VARS ["id"] = $id; session_register ("username"); $HTTP_SESSION_VARS ["username"] = $username; $username session_register ("password"); $HTTP_SESSION_VARS ["password"] = $_POST["password"]; Στην πρώτη σειρά δημιουργείται το session, το οποίο έχει τη δυνατότητα να μεταφέρει στις επόμενες σελίδες, ορισμένες μεταβλητές που χρησιμοποιούνται εδώ []. Έπειτα δημιουργείται μία session μεταβλητή με όνομα id για να ενημερώνεται ο πίνακας των ραντεβού με τον χρήστη που τα δημιουργεί, στις επόμενες σελίδες. Ομοίως και οι session μεταβλητές username και password. Για νέες εγγραφές στη βάση, οι χρήστες χρησιμοποιούν τα link «Εγγραφή νέου Χρήστη» και «Εγγραφή νέου Μέλους». Σελ. 34 από 62

Από τη σελίδα «Εγγραφή νέου χρήστη», γίνεται η εισαγωγή νέου user. Εδώ συμπληρώνονται τα προσωπικά του στοιχεία και περνάνε στον πίνακα usermember. Η εντολή που εισάγει τα δεδομένα στον πίνακα βρίσκεται στη σελίδα insertuser.php και είναι η εξής: $result= MYSQL_QUERY("INSERT INTO usermember ( username, password, country, gender, email, name, surname, work, address, date, zip, city, telephone, regdate, access_level)". "VALUES ( '$username', '$password', '$country', '$gender', '$email', '$name', '$surname', '$work', '$address','$date', '$zip', '$city', '$telephone', '$regdate', '2')"); Στο πεδίο access_level καταχωρείται η τιμή 2 που είναι το επίπεδο πρόσβασης για τους user. Τα πεδία που έχουν αστερίσκο (*) πρέπει να Σελ. 35 από 62

συμπληρωθούν απαραίτητα, αλλιώς το σύστημα βγάζει μηνύματα λάθους, όπως: Παρόμοια μηνύματα εμφανίζονται σε περίπτωση που είναι κενά και τα υπόλοιπα υποχρεωτικά πεδία. Το πεδίο «Φύλο» συμπληρώνεται με drop down list, όπου τα στοιχεία (ΑΝΔΡΑΣ, ΓΥΝΑΙΚΑ) συλλέγονται από τον πίνακα gender. Στο «Επιθυμητό όνομα χρήστη» και στον «Κωδικό πρόσβασης» ο user εισάγει τα στοιχεία που επιθυμεί, με τα οποία μπορεί να κάνει login από την αρχική σελίδα του συστήματος, και να χρησιμοποιήσει το πρόγραμμα. Αν το Όνομα Χρήστη που εισάγει ο χρήστης, υπάρχει ήδη καταχωρημένο στη βάση για κάποιον άλλον, τότε το σύστημα βγάζει μήνυμα λάθους. Όσον αφορά την ημερομηνία γεννήσεως, υπάρχει κώδικας που ελέγχει την ορθότητα της: If(!checkdate($month,$day,$year)). Η ημέρα και ο μήνας, παίρνουν τιμές από την αντίστοιχη σελίδα, ενώ το έτος παίρνει τιμές από τον πίνακα years. Επίσης στη σελίδα αυτή ελέγχεται και η ορθότητα των email, με τον παρακάτω κώδικα: if($email) { if (preg_match('/^[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00- \x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f- \xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+$/i', $_POST['email'])) Σελ. 36 από 62

Στη σελίδα αυτή γίνεται η εγγραφή του member. Η λειτουργία της σελίδας είναι η ίδια με τη προηγούμενη. Tα πεδία Όνομα, Επίθετο, Χώρα, Διεύθυνση, Τηλέφωνο, Πόλη, Τ.Κ, Διεύθυνση email, Φύλο, Επιθυμητό Όνομα Χρήστη και ο Κωδικός Χρήστης συμπληρώνονται και καταχωρούνται με τον ίδιο τρόπο. Το πεδίο Ειδικότητα είναι drop down list και διαβάζει πληροφορίες από τον πίνακα work_category, στον οποίο μπορεί να εισάγει δεδομένα μόνο ο admin. Στον πίνακα usermember και στο πεδίο cat_id καταχωρείται ο αντίστοιχος αριθμός cat_id της ειδικότητας από τον πίνακα work_category, και όχι το όνομα της ειδικότητας. Και στο πεδίο access_level καταχωρείται η τιμή 1. 3.1 MEMBER Aφού πλέον υπάρχουν τα στοιχεία του χρήστη, μπορεί να κάνει login από την εισαγωγική σελίδα και να χρησιμοποιήσει το πρόγραμμα. Το Σελ. 37 από 62

επίπεδο πρόσβασης του member από τον πίνακα usermember είναι 1. Αν το Όνομα Χρήστη/Μέλους και ο Κωδικός είναι έγκυρα τότε εμφανίζεται η εισαγωγική σελίδα του member: Στον πρώτο πίνακα αναγράφεται το όνομα του χρήστη που έχει κάνει την εισαγωγή και η κατάσταση με την οποία είναι συνδεδεμένος. Στον επόμενο εμφανίζονται όλα τα link που αφορούν πληροφορίες των ραντεβού που έχουν ορισθεί για τον member. Ο τελευταίος πίνακας περιέχει τα link που αφορούν την διαχείριση λογαριασμού του member. Σελ. 38 από 62

Αναλυτικά: Προβολή ιστορικού των ραντεβού, έστω τρέχουσα ημερομηνία 25-11- 2007: Στη σελίδα αυτή (member_show_prev_app.php) εμφανίζονται όλα τα ραντεβού, οποιασδήποτε παρελθοντικής ημερομηνίας, από οποιοδήποτε user, έχουν κλειστεί με το συγκεκριμένο member. Με session συγκρατείται ο member, για να ληφθούν τα στοιχεία από τον πίνακα usermember και appointments: session_start(); $id = $_SESSION['id']; $username = $_SESSION["username"]; Με το session['id'] δίνεται η δυνατότητα να γνωρίζουμε το id του χρήστη που έχει κάνει εισαγωγή, και χρησιμεύει για να τραβηχτούν στοιχεία που τον αφορούν από τους πίνακες. Η εντολή που επιλέγει τα στοιχεία για να εμφανισθούν είναι η εξής: $result = mysql_query("select appointments.date, appointments.time, usermember.surname, usermember.name, Σελ. 39 από 62

appointments.date_added, appointments.notes FROM appointments AS appointments LEFT JOIN usermember AS usermember ON appointments.user = usermember.id WHERE appointments.member = '$username' AND appointments.date<'$today' ORDER BY appointments.date, appointments.time"); while($row = mysql_fetch_array( $result )) { echo "<tr><td>"; echo date("d-m-y",strtotime($row['date'])); echo "</td><td>"; echo $row['time']; echo "</td><td>"; echo $row['surname']; echo "</td><td>"; echo $row['name']; echo "</td><td>"; echo date("d-m-y",strtotime($row['date_added'])); echo "</td><td>"; echo $row['notes']; echo "</td></tr>"; } Με την εντολή mysql_fetch_array( $result ), αποθηκεύονται τα περιεχόμενα κάθε γραμμής του πίνακα που έχει ορισθεί στην select, ώστε να υπάρχει η δυνατότητα τα στοιχεία που τραβιούνται για ένα ραντεβού να εμφανίζονται στον πίνακα που βλέπει ο χρήστης ως μία εγγραφή. Με τα echo δημιουργείται ο πίνακας που φαίνεται παραπάνω. Το strtotime που χρησιμοποιείται στο row['date_added'] περιέχει μία αγγλική μορφή ημερομηνίας και προσπαθεί να αναλύσει την κανονική μορφή της ημερομηνίας σε ένα UNIX timestamp, που είναι ο αριθμός Σελ. 40 από 62

των δευτερόλεπτων από τον Ιανουάριο του 1070 00:00:00, σε σχέση με την τρέχουσα ώρα, επομένως και ημερομηνία. Στην σελίδα αυτή (member_show_cur_app.php) ο member μπορεί να δει τα ραντεβού που έχουν ορισθεί για την τρέχουσα ημέρα. Η σελίδα αυτή λειτουργεί όμοια με την παραπάνω. Για να μπορεί το σύστημα να γνωρίζει την τρέχουσα ημερομηνία έχει ορισθεί η παρακάτω μεταβλητή: $today = date("y-m-d"); Όπου μετά χρησιμοποιείται σε μία εντολή της mysql για να τραβήξει τα ραντεβού της συγκεκριμένης ημερομηνίας που παίρνει η μεταβλητή: $result = mysql_query("select * FROM appointments WHERE member='$username' and date = '$today' order by time") or die(mysql_error()); Οπότε και συλλέγονται στοιχεία που αφορούν τον συγκεκριμένο member ($username) με την συγκεκριμένη ημερομηνία ($today). Σελ. 41 από 62

Η σελίδα member_show_month_app.php χρησιμοποιείται για την εμφάνιση των εβδομαδιαίων ραντεβού ενός member και λειτουργεί όμοια με τις παραπάνω. Η επιλογή της τρέχουσας εβδομάδας γίνεται με την εντολή: $today=date("h:i:s d-m-y",strtotime("now")); $nextweek=date("y-m-d",strtotime("+7 days")); Η μέτρηση επτά ημερών στο σύστημα απαιτεί την αποθήκευση της ημερομηνίας σε τύπο timestamp. Για να μπορεί να γίνει η πρόσθεση, στην σελίδα αυτή πρέπει να μετατραπεί και η τρέχουσα ημερομηνία σε timestamp, όπου και γίνεται στην μεταβλητή today. Έτσι στην επόμενη μεταβλητή nextweek μπορεί πλέον να γίνει η πρόσθεση των επτά ημερών και να συλλεχθούν τα στοιχεία από τον πίνακα με την εντολή: $sql="select appointments.date, appointments.time, usermember.surname, usermember.name, appointments.date_added, appointments.notes FROM appointments AS appointments LEFT JOIN usermember AS usermember ON appointments.user = usermember.id WHERE appointments.member = '$username' AND appointments.date > cast(now() as date) AND appointments.date < cast('$nextweek' as date) ORDER BY appointments.date, appointments.time"; Σελ. 42 από 62

Προβολή ραντεβού σε εκκρεμότητα, έστω τρέχουσα ημερομηνία 25-11- 2007: Στην σελίδα member_show_ cur_app.php εμφανίζονται όλα τα μελλοντικά ραντεβού, ακόμα και αυτά που βρίσκονται στην ίδια εβδομάδα. Ο τρόπος λειτουργίας της σελίδας είναι παρόμοιος με τον παραπάνω, αλλά η συνθήκη με την οποία επιλέγονται οι ημερομηνίες είναι appointments.date>'$today' Με αποτέλεσμα να εμφανίζονται όλες οι ημερομηνίες που είναι μεγαλύτερες από την τρέχουσα. Εδώ (member_show_clients.php) εμφανίζονται όλοι οι πελάτες που έχουν κλείσει έστω και μία φορά ραντεβού με τον συγκεκριμένο member. H συλλογή αυτών των στοιχείων γίνεται με την εντολή: $result = mysql_query ("SELECT DISTINCT usermember.name, usermember.id, appointments.user, usermember.surname, usermember.email, usermember.address, usermember.city, usermember.zip, usermember.telephone, gender.gender, usermember.work, usermember.regdate FROM usermember JOIN Σελ. 43 από 62

gender JOIN appointments ON usermember.gender = gender.g_id ON appointments.user = usermember.id WHERE access_level='2' AND appointments.member='$appmember' ORDER BY usermember.id"); Στο ΟΝ φαίνεται η συσχέτιση που πρέπει να έχουν οι πίνακες, δηλαδή: από τον πίνακα usermember και η στήλη gender πρέπει να αντιστοιχεί με τη στήλη g_id του πίνακα gender. Στην συνθήκη ορίζεται ότι τα αποτελέσματα που θέλουμε πρέπει να έχουν επίπεδο πρόσβασης 2 (user) και ο member που έχει κάνει την εισαγωγή ($appmember) να ισοδυναμεί με το όνομα που είναι εγγεγραμμένο στη στήλη member. ΑΛΛΑΓΗ ΣΤΟΙΧΕΙΩΝ Στην σελίδα (member_view_change.php) αυτή ο member έχει τη δυνατότητα να δει τα στοιχεία που έχει καταχωρήσει ο ίδιος στη βάση. Επίσης υπάρχει δυνατότητα να αλλάξει τα στοιχεία αυτά. Με το button Σελ. 44 από 62

ΕΝΗΜΕΡΩΣΗ καταχωρούνται τα νέα δεδομένα που έχει εισάγει. Αφού γίνεται η καταχώρηση στη βάση εμφανίζεται το μήνυμα: Οπότε πλέον, έχουν αλλάξει τα στοιχεία του member στη βάση. O member έχει τη δυνατότητα να διαγράψει το λογαριασμό του από τη βάση. Το Όνομα Μέλους είναι γνωστό από την εισαγωγική σελίδα με session, η εισαγωγή του κωδικού του και μόνο, είναι αρκετή για την διαγραφή του, αφού το Όνομα Μέλους είναι μοναδικό μέσα στη βάση. Αν ο member εισάγει άλλον κωδικό από αυτόν που αντιστοιχεί στο Όνομά του τότε δεν μπορεί να διαγραφεί ο λογαριασμός του, και εμφανίζεται το παρακάτω μήνυμα: Σελ. 45 από 62

Ενώ αν είναι σωστός ο κωδικός, επιτυγχάνεται η διαγραφή και εμφανίζεται το παρακάτω μήνυμα: 3.2 USER Η αρχική σελίδα του user, αφού έχει κάνει login στο σύστημα, είναι η παρακάτω: Σελ. 46 από 62

Η διάταξη της σελίδας (user_login.php) είναι όμοια με αυτή της σελίδας εισαγωγής του member. Aναλυτικά: ΚΛΕΙΣΙΜΟ ΡΑΝΤΕΒΟΥ Για το κλείσιμο ενός ραντεβού, χρειάζονται τα στοιχεία: όνομα user, ειδικότητα, όνομα member, ημερομηνία και ώρα. Η σελίδα αυτή είναι η user_add_ap.php. Από εδώ ο κάθε user επιλέγει αρχικά την ειδικότητα που τον ενδιαφέρει. Αφού επιλέξει την ειδικότητα θα πρέπει να εμφανιστούν στην δεξιά λίστα, οι αντίστοιχοι member που είναι εγγεγραμμένοι στη βάση με την ειδικότητα που έχει επιλεχθεί. Για να επιτευχθεί αυτό χρησιμοποιείται το παρακάτω javascript: function reload(form) { var val=form.cat.options[form.cat.options.selectedindex].value; self.location='user_add_ap.php?cat=' + val ; } Με αυτό γίνεται δυναμική δέσμευση των δεδομένων και έτσι όταν ξαναφορτώνεται η σελίδα έχει πλέον τα νέα δεδομένα στη δεξιά στήλη, που αφορούν την ειδικότητα που επιλέχθηκε. Σελ. 47 από 62

Αφού έχει επιλεχθεί και ο member που επιθυμεί ο user, τα νέα στοιχεία που αντλήθηκαν (ειδικότητα και όνομα γιατρού) περνάνε στην επόμενη σελίδα user_add_app.php: Τα στοιχεία που εμφανίζονται στον επάνω πίνακα, είναι αυτά που εισήγαγε ο user και εμφανίζονται με ένα απλό echo και με τη βοήθεια του session. Στον δεύτερο πίνακα ο user πρέπει να εισάγει την ημερομηνία που θέλει να κλείσει το ραντεβού. Οι ημερομηνίες εμφανίζονται με drop down list και οι αριθμοί είναι αποθηκευμένοι στην σελίδα user_add_app.php με μορφή html. Η ορθότητα της σελίδας αυτής ελέγχεται αφού πατηθεί το button ΕΠΟΜΕΝΟ και μεταφερθεί το πρόγραμμα στην επόμενη σελίδα (user_add.appo.php). Στην σελίδα user_add.appo.php γίνονται πέντε διαφορετικοί έλεγχοι για την ορθότητα της ημερομηνίας που εισήχθη, από τους οποίους αν κάποιος από αυτούς ισχύει εμφανίζεται και το αντίστοιχο μήνυμα λάθους: 1. Αν δεν εισαχθεί ημέρα. 2. Αν δεν εισαχθεί ο μήνας. 3. Αν δεν εισαχθεί το έτος. 4. Αν η ημερομηνία δεν ανταποκρίνεται στην πραγματικότητα (π.χ. 30/02). Σελ. 48 από 62

5. Αν η ημερομηνία είναι παλαιότερη της τρέχουσας. Ωστόσο εάν η ημερομηνία είναι σωστή τότε εμφανίζεται η παρακάτω σελίδα (user_add_ap.php) από την οποία μπορεί να κλείσει το ραντεβού: Ο επάνω πίνακας είναι ενημερωτικός. Στις διαθέσιμες ώρες εμφανίζονται μόνο οι ώρες που είναι διαθέσιμες για τη συγκεκριμένη ημερομηνία και με τον συγκεκριμένο γιατρό. Αυτό κατορθώνεται με τον παρακάτω κώδικα: $query1=mysql_query("delete FROM times"); $query2=mysql_query("insert INTO times (time)"." VALUES ('08:00'), ('09:00'), ('10:00'), ('11:00'), ('12:00'), ('13:00'), ('14:00'), ('15:00'), ('16:00'), ('17:00'), ('18:00'), ('19:00'), ('20:00')"); $query="select time FROM appointments WHERE date='$appdate' AND member='$appmember'"; $gettime=mysql_query($query); Σελ. 49 από 62

while ($do_query = mysql_fetch_array($gettime)){ $temptime=$do_query['time']; $querytime="delete FROM times WHERE time='$temptime'"; $deltime=mysql_query($querytime); } $query5=mysql_query("select DISTINCT time,t_id FROM times order by time"); echo "<form method=post name=appointment action='user_add_appointment.php'>"; echo "<select name='time'><option value='t'>ωρα</option>"; while($noticia2 = mysql_fetch_array($query5)) { echo "<option value='$noticia2[time]'>$noticia2[time]</option>"; Ο παραπάνω κώδικας ασχολείται με τον πίνακα times. Όταν τρέχει, με την πρώτη εντολή διαγράφεται ότι υπάρχει μέσα στον πίνακα(ότι απομένει από την τελευταία φορά που έτρεξε η σελίδα). Στη μεταβλητή $query2 εκχωρούνται όλες οι ώρες στις οποίες μπορεί να ορισθεί κάποιο ραντεβού. Στην επόμενη μεταβλητή ($query) επιλέγονται και αποθηκεύονται όλες οι ώρες από τον πίνακα appointments που αντιστοιχούν στον member και στην ημερομηνία που επέλεξε ο user. Με την while γίνεται αναζήτηση στον πίνακα times για να βρεθούν οι ώρες που συλλέχθηκαν για την ημερομηνία και τον member που δόθηκαν και να σβηστούν οι όμοιες, ώστε να εμφανίζονται στο drop down list μόνο οι ώρες που δεν έχουν δεσμευτεί ($query5). Ιστορικό των ραντεβού, έστω τρέχουσα ημερομηνία 25-11-2007: Σελ. 50 από 62

Η σελίδα αυτή είναι η user_show_prev_app.php. Εμφανίζονται τα ραντεβού του έκαστου user για παρελθοντικά ραντεβού, ως και μια μέρα πριν από την τρέχουσα. Τα αποτελέσματα που εμφανίζονται στη σελίδα αυτή, συλλέγονται με ένα απλό mysql_query: $result = mysql_query("select appointments.date, appointments.time, work_category.work, appointments.member, appointments.date_added, appointments.notes FROM appointments AS appointments LEFT JOIN work_category AS work_category ON appointments.work = work_category.cat_id WHERE appointments.user = '$id' AND appointments.date<'$today' ORDER BY appointments.date"); Όσον αφορά την ημερομηνία, στην αρχή του προγράμματος χρησιμοποιείται μία μεταβλητή για την αποθήκευση της τρέχουσας ημερομηνίας: $today = date("y-m-d"); Οπότε μέσα στο query χρησιμοποιείται η συνθήκη appointments.date<'$today' και με βάση την τρέχουσα ημερομηνία συλλέγονται από τον πίνακα appointments όλες ημερομηνίες που είναι μικρότερες από αυτήν. Ραντεβού σε εκκρεμότητα, έστω τρέχουσα ημερομηνία 25-11-2007: Σελ. 51 από 62

Στον user δίνεται η δυνατότητα να δει τα μελλοντικά ραντεβού που έχει δεσμεύσει. Η σελίδα αυτή (user_show_curr_app.php) λειτουργεί όμοια με την παραπάνω, δηλώνεται πάλι η τρέχουσα ημερομηνία σε μια μεταβλητή, αλλά στο query βρίσκεται η παρακάτω συνθήκη appointments.date>='$today' οπότε και συλλέγονται από τον πίνακα appointments οι ημερομηνίες που είναι μεγαλύτερες ή ίσες με την τρέχουσα. Τα δύο τελευταία link της εισαγωγική σελίδας του user ΠΡΟΒΟΛΗ/ΑΛΛΑΓΗ ΣΤΟΙΧΕΙΩΝ ΧΡΗΣΤΗ και ΔΙΑΓΡΑΦΗ ΧΡΗΣΤΗ λειτουργούν με τον ίδιος ακριβώς τρόπο όπως και οι αντίστοιχες σελίδες του member. H πρώτη σελίδα υποστηρίζεται από την user_view_change.php και η δεύτερη από τις delete_usermember.php και delete_usermember.html. 3.3 ΑDMIN Ο admin είναι ο διαχειριστής της εφαρμογής. Αυτός εισάγει και διαγράφει ειδικότητες όταν χρειαστεί, εισάγει και διαγράφει τα έτη που χρησιμοποιούνται στην ημερομηνία γεννήσεως του user, έχει τη δυνατότητα να δει όλους τους user και member που υπάρχουν καταχωρημένοι στη βάση δεδομένων και να διαγράψει οποιονδήποτε από αυτούς, και τέλος μπορεί να δει όλα τα ραντεβού που υπάρχουν στη βάση δεδομένων, παρελθοντικά και μελλοντικά, και να τα διαγράψει. Σελ. 52 από 62

Ο admin δεν μπορεί να κάνει εγγραφή όπως ο user και ο member, δεν υπάρχει σελίδα εγγραφής που να δίνει access_level 0, που αντιστοιχεί στον member. Μπορεί να εισάγει εγγραφή όμως, μέσα από την βάση. Αναλυτικά οι λειτουργίες του admin: Η εισαγωγική σελίδα του admin είναι η εξής: και επιμέρους για το κάθε link: -Στη Συντήρηση Προγράμματος ο διαχειριστής έχει τις παρακάτω δυνατότητες: Σελ. 53 από 62

ΕΙΣΑΓΩΓΗ / ΔΙΑΓΡΑΦΗ ΕΙΔΙΚΟΤΗΤΑΣ Στο link Εισαγωγή/ Διαγραφή ειδικότητας μπορεί να εισάγει μια νέα ειδικότητα που δεν είναι καταχωρημένη στη βάση δεδομένων, όπως επίσης και να διαγράψει, οποιαδήποτε είναι καταχωρημένη. Στο link αυτό εμφανίζεται η παρακάτω σελίδα: Στον επάνω πίνακα ο admin έχει τη δυνατότητα να δει τις ειδικότητες που υπάρχουν ήδη καταχωρημένες στη βάση, ταξινομημένες αλφαβητικά. Η σελίδα αυτή ενημερώνει και ενημερώνεται από τον πίνακα work_category της βάσης. Η διαγραφή ειδικότητας υποστηρίζεται από την σελίδα admin_del_work_category.php. Εάν επιτευχθεί η διαγραφή της νέας ειδικότητας τότε εμφανίζεται το ακόλουθο μήνυμα: Σελ. 54 από 62

Στην εισαγωγή ειδικότητας ο admin εισάγει την ειδικότητα που θέλει. Το πλαίσιο αυτό υποστηρίζεται από την admin_ins_work_category.php. Το πρόγραμμα πριν καταχωρήσει τη νέα υπηρεσία, γίνεται έλεγχος αν υπάρχει ήδη καταχωρημένη στον πίνακα work_category,αν υπάρχει εμφανίζεται το παρακάτω μήνυμα: Ενώ αν δεν υπάρχει η υπηρεσία, το πρόγραμμα συνεχίζει κανονικά την καταχώρηση και μετά την ολοκλήρωση εμφανίζεται και το ανάλογο μήνυμα: Στο link Εισαγωγή/ Διαγραφή Έτους ο διαχειριστής έχει τη δυνατότητα να εισάγει ή να διαγράψει κάποιο έτος. Σελ. 55 από 62

Όπου η λειτουργία της σελίδας αυτής είναι παρόμοια με την Διαγραφή και Εισαγωγή Ειδικοτήτων. Η σελίδα αυτή είναι η admin_insert_year.php και υποστηρίζεται από την admin_insdel_year.php. Διαγράφει δεδομένα και ενημερώνει τον πίνακα Years. Χρησιμοποιείται για την εισαγωγή της Ημερομηνίας Γεννήσεως των user, για το πλαίσιο έτος (σελίδα insertuser1.php). Σελ. 56 από 62

Στο link Διαχείριση Μελών/Χρηστών υπάρχει το παρακάτω μενού: ΠΡΟΒΟΛΗ ΜΕΛΩΝ Στην Προβολή Μελών ο admin έχει τη δυνατότητα να δει όλους τους member που είναι καταχωρημένοι στη βάση δεδομένων. Η σελίδα αυτή δείχνει όλα τα στοιχεία που αφορούν τον κάθε member. Στην πρώτη στήλη εμφανίζεται το Όνομα Χρήστη, που είναι το username από τον πίνακα usermember, και χρησιμεύει για την διαγραφή των member. Σελ. 57 από 62

Στην admin_del_member.html που υποστηρίζεται από την admin_del_member.php μπορεί να διαγραφεί ένα οποιοδήποτε μέλος γνωρίζοντας μόνο το Όνομα Χρήστη. Για να αποφευχθεί η τυχόν διαγραφή ενός user, στον κώδικα και στην εντολή που ψάχνει εγγραφή στη βάση με το username που δόθηκε, υπάρχει συνθήκη access_level=1. Εάν υπάρχει στη βάση το όνομα που πληκτρολογήθηκε και το access_level=1 τότε η διαγραφή επιτυγχάνεται και εμφανίζεται το παρακάτω μήνυμα: Ενώ εάν το Όνομα Χρήστη δεν υπάρχει μέσα στη βάση, εμφανίζεται το μήνυμα για ανεπιτυχή διαγραφή του member. ΠΡΟΒΟΛΗ ΧΡΗΣΤΩΝ Η Προβολή Χρηστών είναι η σελίδα admin_show_all_users.php και η λειτουργικότητα της είναι ίδια με αυτή της ΠΡΟΒΟΛΗ ΜΕΛΩΝ. Όπως Σελ. 58 από 62

επίσης και η ΔΙΑΓΡΑΦΗ ΧΡΗΣΤΩΝ έχει την ίδια λειτουργία με την ΔΙΑΓΡΑΦΗ ΜΕΛΩΝ και είναι η σελίδα admin_del_user.html που υποστηρίζεται από την σελίδα admin_del_user.php. ΔΙΑΧΕΙΡΙΣΗ ΡΑΝΤΕΒΟΥ ΠΡΟΒΟΛΗ ΚΑΙ ΔΙΑΓΡΑΦΗ ΜΕΛΛΟΝΤΙΚΩΝ ΡΑΝΤΕΒΟΥ Ο admin στη σελίδα αυτή (admin_show_all_app.php) μπορεί να δει όλα τα ραντεβού από οποιονδήποτε user για οποιονδήποτε member που υπάρχουν καταχωρημένα στον πίνακα appointments. Έστω τρέχουσα ημερομηνία 12-11-2007. Σελ. 59 από 62