ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ανάπτυξη δικτυακού χώρου για την υλοποίηση των εφαρμογών δημόσιας συζήτησης, και συζήτησης χρηστών σε πραγματικό χρόνο



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

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

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

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

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

Συλλογή και Επεξεργασία Δεδομένων με Φόρμες

2. ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΓΙΩΡΓΟΣ ΓΙΑΝΝΑΚΑΚΗΣ, ΜΑΝΩΛΗΣ ΤΣΙΚΝΑΚΗΣ

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

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

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

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

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

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

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

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

Εργαστήριο 9. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας

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

Η γλώσσα προγραμματισμού C

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην HTML. Άννα Κεφάλα Παναγιώτα Μιχόλια

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

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

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

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

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

Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο

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

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

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

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

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

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

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

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

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

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

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

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

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

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

ιαχείριση Πληροφοριών στο ιαδίκτυο

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

Πτυχιακή Εργασία. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Καβάλας ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ. «Ηλεκτρονική Εφαρμογή e-hotel»

databases linux - terminal (linux / windows terminal)

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

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

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, PIRCH 32 v0.92b

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

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

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

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ. Κεφάλαιο 5. Αλληλεπιδραστικές ιστοσελίδες (χρήση ετικέτας <FORM> και η τεχνική CGI)

Οδηγίες αρθρογράφησης στην ιστοσελίδα του 2ου ΓΕΛ Καματερού

ΚΕΦΑΛΑΙΟ Web Services

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

Κεφάλαιο 11: Εισαγωγή στην HTML. Εφαρμογές Πληροφορικής Κεφ. 11 Καραμαούνας Πολύκαρπος

Σχεδιασμός Βάσεων Δεδομένων

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

Edmodo Σύντομος οδηγός για εκπαιδευτικούς

ΟΝΟΜΑ : ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΩΝΥΜΟ : ΚΟΚΟΛΟΓΟΣ Α.Μ. : Ε11060 ΕΞΑΜΗΝΟ : ΕΠΙ ΠΤΥΧΙΟ ΤΜΗΜΑ : ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ : ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΕΦΑΡΜΟΓΗ

Ετικέτες HTML. <!-->: Τα σχόλια χρησιμοποιούνται για να γράφουμε σημειώσεις μέσα στον

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 2

Οδηγίες Χρήσης της MySQL

Άσκηση 6 Επαναληπτική Άσκηση HTML

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

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

Συνοπτικός οδηγός χρήσης της πλατφόρμας ασύγχρονης τηλεεκπαίδευσης. Καθηγητή

XAMPP Apache MySQL PHP javascript xampp

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

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

PRISMA Win POS Sync Merge Replication

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

Εργαστήριο Βάσεων Δεδομένων

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


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

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

Lexicon Software Pachutzu

Οδηγός Χρήστη. Καλώς ήλθατε στο Ηλεκτρονικό Περιβάλλον Μάθησης.

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

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer

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

ΙΙ ΙΛ ΧΙΛΚΗ ΕΡΓΑΣΙΑ. Ανάπτυξη όικτυακού /ιόρου για την υλοποίηση των εφαρμογίόν δημόσιας συζήτησης. και συζήτησης /ρηστιόν σε πραγματικό /ρόνο"

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

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

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form>

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

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

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος

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

Επαναληπτική Άσκηση ΕΤΙΚΕΤΕΣ HTML

Περιεχόμενα. Δημιουργία σύνδεσης ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ Γνωριμία με μια ιστοσελίδα:... 38

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

Transcript:

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

ΕΥΧΑΡΙΣΤΙΕΣ Ολοκληρώνοντας τις σπουδές μου στο Τμήμα Διαχείρισης Πληροφοριών και συγκεκριμένα παρακολουθώντας τα μαθήματα «Διαχείριση Πληροφοριών στο Διαδίκτυο» και «Διαχείριση Βάσεων Δεδομένων στο Διαδίκτυο» προέκυψε το ενδιαφέρον μου για τέτοιου είδους εφαρμογές. Θέλω να ευχαριστήσω τον καθηγητή μου κ. Βασίλειο Μαρδύρη που δέχτηκε να εισηγηθεί την πτυχιακή μου εργασία, τις πολύ χρήσιμες συμβουλές που μου έδωσε κατά τη διάρκεια του εξαμήνου και γενικότερα για τη καλή συνεργασία που είχαμε όλο αυτό το διάστημα. Επίσης θέλω να ευχαριστήσω τους σπουδαστές του Τμήματος Διαχείρισης Πληροφοριών: τον φίλο μου Βασίλειο Ανανιάδη για την βοήθειά του στο κώδικα της εφαρμογής και τον αδελφό μου Αχιλλέα Μιχαηλίδη στη μορφοποίηση (design) της εφαρμογής μου.

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ..1 ΚΕΦΑΛΑΙΟ 1 Ο 1.1 HTML 3 1.1.1 Τι είναι η HTML.3 1.1.2 Εκδόσεις HTML 3 1.1.3 Δημιουργία αρχείων HTML.4 1.1.4 Κατασκευή σελίδων με κώδικα HTML..4 1.1.5 Το Μοντέλο Αντικειμένων της Δυναμικής HTML ( DHTML ).6 1.2 TCL...7 1.2.1 Τι είναι η TCL 7 1.2.2 Χαρακτηριστικά της TCL.7 1.2.3 Πλεονεκτήματα TCL...7 1.2.4 Λάθη στη TCL..8 1.2.4.1 Τι συμβαίνει μετά από ένα λάθος..8 1.2.5 Η HTML μέσα σε αρχείο TCL 9 1.3 Βάση δεδομένων..10 1.3.1 MySQL.10 1.3.2 Ιστορικά στοιχεία 11 1.4 Apache...11 1.4.1 Τι είναι Apache...11 1.4.2 Ιστορικά στοιχεία για την ονομασία Apache..11 1.4.3 CGI Scripting...11 1.5 JavaScript..14 1.5.1 Τι είναι η JavaScript.. 14 1.5.2 Ιστορικά στοιχεία της JavaScript..14 1.5.3 Τοποθέτηση του κώδικα JavaScript 14 ΚΕΦΑΛΑΙΟ 2 Ο 2.1 Σχεδιασμός και περιγραφή Βάσης Δεδομένων 16 2.1.1 Δομή της Βάσης Δεδομένων..16 2.1.1.1 Σχέσεις μεταξύ πινάκων..16 2.1.2 Περιγραφή της Βάσης Δεδομένων...17 2.2 Περιγραφή σελίδων και οι τρόποι υλοποίησής τους...22 2.2.1 Σκοπός και λειτουργία. 22 2.2.2 Σχεδιασμός σελίδων 22 2.2.3 Κατασκευή της εφαρμογής.22 2.2.4 Περιγραφή σελίδων και του κώδικα.. 23 ΠΑΡΑΡΤΗΜΑ. 40 ΒΙΒΛΙΟΓΡΑΦΙΑ, INTERNET...96

ΕΙΣΑΓΩΓΗ Ένα από τα σημαντικότερα στάδια στη πορεία ενός σπουδαστή των ΤΕΙ είναι η πτυχιακή του εργασία στην οποία παρουσιάζει την μελέτη που έχει κάνει για ένα συγκεκριμένο θέμα. Η πτυχιακή μου εργασία ασχολείται με μια εφαρμογή που ο σκοπός της είναι να δίνει τη δυνατότητα στους σπουδαστές του τμήματος Διαχείριση Πληροφοριών να επικοινωνούν μεταξύ τους είτε μέσω του forum στο οποίο μπορούν να θέσουν ερωτήσεις (απορίες) και να λάβουν τις αντίστοιχες απαντήσεις για κάποιο συγκεκριμένο θέμα, είτε μέσω μιας ζωντανής συνομιλίας μεταξύ τους (chat). Chat σημαίνει να κρατάς μια ζωντανή συζήτηση, χρησιμοποιώντας το πληκτρολόγιο, με άλλα άτομα μέσα στο Internet. Δηλαδή, κάποιος πληκτρολογεί ένα μήνυμα στον υπολογιστή του και άλλα άτομα στο Internet μπορούν να το διαβάσουν στον δικό τους υπολογιστή άμεσα. Μπορείτε δηλαδή να συνομιλήσετε με πολλά άτομα ταυτόχρονα σε ολόκληρο τον κόσμο. Υπάρχουν πολλοί διαθέσιμοι τρόποι να συνομιλήσει κανείς στο Internet, αλλά ο πιο δημοφιλής ονομάζεται IRC (Internet Relay Chat). Κάθε μέρα χιλιάδες άνθρωποι σε όλο τον κόσμο συνομιλούν χρησιμοποιώντας το chat. Επίσης μπορείτε να κάνετε συνομιλία με ένα άτομο ανεξάρτητα. Με το IRC διευκολύνονται οι επικοινωνίες κατά την διάρκεια φυσικών καταστροφών, πολέμων και άλλων κρίσεων. Απτό παράδειγμα το 1993, κατά την πτώση του Σοβιετικού καθεστώτος, όταν οι ρώσοι ταμπουρώθηκαν μέσα στο κτίριο του κοινοβουλίου, δημιουργήθηκε ένα ειδησεογραφικό κανάλι IRC για την αναμετάδοση των γεγονότων σε πραγματικό χρόνο. Το IRC ακολουθεί το μοντέλο client/server, που σημαίνει ότι πρέπει να υπάρχουν και τα δύο προγράμματα, client και server, για να το χρησιμοποιήσετε. Πολλοί IRC clients υπάρχουν διαθέσιμοι για κάθε τύπο υπολογιστή, οπότε είτε έχετε μηχάνημα με Windows, Unix ή Macintosh θα μπορέσετε να το χρησιμοποιήσετε χωρίς πρόβλημα. Ο δικός σας IRC client επικοινωνεί με έναν IRC server στο Internet. Forum είναι ένας τύπος Bulletin Board και είναι ειδικά διαμορφωμένος χώρος στο internet όπου χρηστές από διάφορα μέρη του κόσμου θέτουν ερωτήσεις για διάφορα θέματα στα οποία έχουν απορίες με σκοπό να λάβουν απαντήσεις από τους άλλους χρήστες του forum. Αυτός ο τρόπος επικοινωνίας θεωρείται πολύ δημοφιλής καθώς όλο και περισσότεροι χρήστες δείχνουν μεγάλο ενδιαφέρον σ αυτό τον τρόπο επικοινωνίας. 1

Η εφαρμογή με την οποία ασχολήθηκα υλοποιεί τους δύο παραπάνω τρόπους επικοινωνίας χρηστών (forum και chat) για τους οποίους χρησιμοποίησα (HTML, TCL, το σύστημα διαχείρισης βάσεων δεδομένων MySQL, JavaScript και Apache Server, CGI Scripting). 2

ΚΕΦΑΛΑΙΟ 1 ο 1.1 HTML 1.1.1 Τι είναι η HTML; H HTML είναι το ακρωνύμιο των λέξεων Hyper Text Markup Language (γλώσσα μορφοποίηση υπερκειμένου) και είναι η βασική γλώσσα δόμηση σελίδων του World Wide Web (ή απλά ιστού: Web). Χρησιμοποιείται για να σημαίνει ένα τμήμα κειμένου και να το κάνει να εμφανίζεται καλύτερα. Επιτρέπει την ενσωμάτωση ήχου και εικόνων στις web σελίδες. Αρχικά είχε κατασκευασθεί με σκοπό μόνο την μορφοποίηση κειμένου, αλλά μεγάλωσε και ενσωμάτωσε σχεδιαστικές τεχνικές κ.α. Η γλώσσα χρησιμοποιεί ένα αριθμό από tags για την μορφοποίηση κειμένου, για την δημιουργία συνδέσμων (links) μετάβασης ανάμεσα των σελίδα, για την εισαγωγή εικόνων, ήχου κ.α. Όταν ένας Web Browser ανοίγει ένα αρχείο HTML τα στοιχεία (tags) μεταφράζονται σε κατάλληλα χαρακτηριστικά με αποτελέσματα στην εμφάνιση και στην λειτουργικότητα της συγκεκριμένης σελίδας. Tag ονομάζουμε μία οδηγία γραμμένη σε HTML, την οποία πρέπει να αναγνωρίσει και ερμηνεύσει ο browser. Τα tags βρίσκονται πάντοτε μεταξύ των συμβόλων < και >. Π.χ. η οδηγία για να γίνει ένα κείμενο bold είναι: <b>το κείμενο που θα είναι bold </b>. 1.1.2 Εκδόσεις HTML Το 1990 ο Tim Berners-Lee από το Cern, το εργαστήριο φυσικής της Γενεύης, δημιούργησε ένα νέο πρωτόκολλο με το οποίο θα μπορούσαν να μεταφέρονται κάθε είδος αρχείων και αντικειμένων μέσα από το Internet. Το πρωτόκολλο αυτό ονομάστηκε HTTP (HyperText Transfer Protocol) και σηματοδότησε την αρχή του WWW όπως το ξέρουμε σήμερα. Οι σελίδες που ήταν η βάση του WWW ήτας γραμμένες στην πρώτη έκδοση της γλώσσα HTML. Το 1994 αναπτύσσεται το πρότυπο HTML 2.0 από ένα διεθνή οργανισμό (Internet Engineering Task Forse). H επόμενη έκδοση η 3.0 δεν έγινε αποδεκτή από τις Microsoft και Netscape οπότε γρήγορα αντικαταστάθηκε από την έκδοση 3.2 (1996). Η τελευταία περιελάμβανε πολλές από τις σημάνσεις (tags) που είχαν εισάγει οι δύο εταιρίες. Η έκδοση 4.0 παρουσιάστηκε τον Ιούνιο του 1997. 3

1.1.3 Δημιουργία αρχείων HTML Η δημιουργία αρχείων HTML είναι πολύ απλή. Αρκεί να τρέξουμε έναν οποιοδήποτε διορθωτή κειμένου text, όπως το Notepad των Windows ή το EditPlus, να γράψουμε τον κώδικα HTML που επιθυμούμε και να το αποθηκεύσουμε (σώσουμε) σε ένα αρχείο με κατάληξη.htm ή.html. Συνήθως αποθηκεύουμε με επέκταση.html όταν θα δημοσιεύσουμε τα αρχεία μας σε διακομιστή Unix. Αντίθετα ο εξυπηρετητής Windows NT καταλαβαίνει τα αρχεία και σαν.htm και σαν.html. Γράφοντας αυτό τον παρακάτω κώδικα και αποθηκεύοντας το με όνομα.html έχουμε δημιουργήσει ένα αρχείο html. <html> <head> </head> <body> </body> </html> 1.1.4 Κατασκευή σελίδων με κώδικα HTML Ο χρυσός κανόνας της μηχανικής αναφέρει πως "ό,τι κερδίζουμε σε δρόμο το χάνουμε σε δύναμη". Με άλλα λόγια, αν δεν θέλουμε να χρησιμοποιήσουμε μεγάλη δύναμη, θα πρέπει να καταβάλουμε προσπάθεια για μεγαλύτερο χρονικό διάστημα, ενώ αν θέλουμε να μειώσουμε το χρόνο υλοποίησης θα πρέπει να αφιερώσουμε περισσότερη ισχύ ή πόρους στο έργο. Ανάλογα διλήμματα συναντούμε σε πολλές ανθρώπινες δραστηριότητες και η κατασκευή web σελίδων δεν αποτελεί εξαίρεση μια και η δημιουργία τους μπορεί να επιτευχθεί με δύο πολύ διαφορετικούς τρόπους: Ο εύκολος: Δηλαδή, να χρησιμοποιηθεί ένα αυτόματο πρόγραμμα όπως το Frontpage για να σχεδιαστεί η σελίδα με τρόπο ανάλογο της δημιουργίας ενός εγγράφου στο word. Ο δύσκολος: Δηλαδή, να δημιουργηθούν τα πάντα από το μηδέν με τη χρήση κώδικα HTML. Τα πλεονεκτήματα του εύκολου τρόπου είναι: Ταχύτητα εκμάθησης - Ο χρήστης μπορεί να δημιουργήσει τις πρώτες του σελίδες μέσα σε μερικές ώρες. Ταχύτητα λειτουργίας - Ένα site μπορεί να κατασκευαστεί σε πολύ μικρό χρονικό διάστημα. 4

Ταχύτητα ανανέωσης - Το πρόγραμμα φροντίζει για την αυτόματη ενημέρωση των web σελίδων του server με όλες τις αλλαγές που έχουν γίνει μετά την τελευταία ανανέωση. Τα πλεονεκτήματα του δύσκολου τρόπου είναι: Σελίδες που φορτώνουν πιο γρήγορα - Τα αυτόματα προγράμματα τοποθετούν συχνά άχρηστο κώδικα που μπερδεύει τον browser και καθυστερεί την εμφάνιση της σελίδας. Εξυπνότερη σχεδίαση - Μας είναι ευκολότερο να δημιουργήσουμε σελίδες που θα προσαρμόζονται αυτόματα στις ιδιαιτερότητες της οθόνης κάθε χρήστη (π.χ. χρησιμοποιώντας ποσοστά αντί για απόλυτες τιμές στο πλάτος των tables). Καλύτερος έλεγχος του αποτελέσματος - Κάθε αυτόματο πρόγραμμα αποτελεί ουσιαστικά έναν μεταφραστή που μετατρέπει τη σχεδίαση και τις επιθυμίες μας σε γλώσσα HTML. Καμία μετάφραση όμως δεν είναι άψογη (ειδικά αν γίνεται από υπολογιστή) και πολλά σημαντικά στοιχεία κινδυνεύουν να απαλειφθούν από το τελικό αποτέλεσμα. Υψηλότερη ευελιξία - Μπορούμε να χρησιμοποιήσουμε το σύνολο των δυνατοτήτων της γλώσσας HTML, ενώ κάθε αυτόματο πρόγραμμα υποστηρίζει μόνο ένα υποσύνολο αυτών. Ευκολότερη επίλυση προβλημάτων (debugging) - Επειδή κατανοούμε απόλυτα τις ιδιομορφίες και τα χαρακτηριστικά της σελίδας που δημιουργήσαμε, μπορούμε να βρούμε ευκολότερα και να διορθώσουμε τα όποια προβλήματα εμφανιστούν σε αυτήν (π.χ. ασυμβατότητα με κάποιους browsers). Επέκταση σε άλλα γνωστικά αντικείμενα - Όποιος γνωρίζει κώδικα HTML μπορεί πολύ ευκολότερα να κατανοήσει και να αξιοποιήσει άλλες τεχνολογίες όπως XML, scripting κ.λ.π. Οι περισσότεροι άνθρωποι προτιμούν τα αυτόματα προγράμματα δημιουργίας σελίδων (τον εύκολο τρόπο δηλαδή) επειδή τα πλεονεκτήματά τους είναι προφανή και άμεσης απόδοσης. Το γεγονός όμως ότι όλοι οι καλοί επαγγελματίες web designers γνωρίζουν και χρησιμοποιούν τόσο κώδικα όσο και αυτόματα προγράμματα υποδεικνύει τη μεγάλη χρησιμότητα και των δύο προσεγγίσεων. 5

1.1.5 Το Μοντέλο Αντικειμένων της Δυναμικής HTML ( DHTML ) Η DHTML είναι ένα όνομα δοσμένο από τη Netscape και τη Microsoft για τη χρήση του μοντέλου αντικειμένων του εγγράφου, των διαδοχικών στυλ των φύλλων και των σεναρίων, για να γίνουν οι ιστοσελίδες πιο αλληλεπιδραστικές. Χρησιμοποιώντας αυτές τις τεχνολογίες οι χρήστες μπορούν να φτιάξουν τις ιστοσελίδες τους έτσι ώστε να αλλάζουν κατά τη χρήση και να αλληλεπιδρούν με χρήστες χωρίς επαναφόρτωση. Η διεθνής εταιρική συνεργασία του παγκόσμιου ιστού επανεξετάζει τις προτάσεις σχετικά με την τυποποίηση του μοντέλου αντικειμένων του εγγράφου, τίποτα δεν έχει ολοκληρωθεί ακόμα. Η Microsoft και η Netscape υποστηρίζουν DHTML στις εκδόσεις 4.0 και μετά με τους αντίστοιχους browsers. Η DHTML περιέχει κυρίως σενάρια και η ιδέα ότι οι συγγραφείς θα έπρεπε να έχουν τη δυνατότητα να προγραμματίζουν αλλαγές στην εμφάνιση της ιστοσελίδας χωρίς επαναφόρτωση είναι μια σημαντική αλλαγή που περιέχει η DHTML. Στην πραγματικότητα οτιδήποτε που δημιουργείται με DHTML θα πρέπει να προστεθεί σενάριο χρησιμοποιώντας JavaScript ή VBScript στις σελίδες. Εάν το κείμενό βασίζεται στη JavaScript ή στη VBScript εξαρτάται από τον χρήστη. Όμως από τότε που η JavaScript υποστηρίζεται από δύο browsers, ενώ η VBScript εκτελείται μόνο στον Internet Explorer θα ήταν πιο εύκολο να χρησιμοποιείται browser συμβατό με τη DHTML όταν χρησιμοποιείται η JavaScript. ων ; Δεν υπάρχει τρόπος να εμποδίσει κανείς την αντιγραφή του κώδικά στις HTML σελίδες, συμπεριλαμβανομένου και του κώδικα που σχετίζεται με τη DHTML. 6

1.2 TCL 1.2.1 Τι είναι η TCL; Η TCL είναι μια γλώσσα για έλεγχο και επέκταση εφαρμογών. Μας παρέχει μια ποικιλία γενικών προγραμματιστικών λειτουργιών, όπως μεταβλητές, διαδικασίες και δομές ελέγχου. Ο διερμηνέας του (INTERPRETER) είναι μια βιβλιοθήκη από διαδικασίες της C που μπορούν πολύ εύκολα να ενσωματωθούν σε διάφορες εφαρμογές και να τις επεκτείνουν. Αλλά και τα βασικά χαρακτηριστικά του TCL μπορούν να επεκταθούν από μια εφαρμογή. Είναι γλώσσα υψηλού επιπέδου και πιο αφαιρετική σε σχέση με την γλώσσα C και ο ίδιος κώδικας τρέχει σε πλατφόρμες Windows, Linux, Unix, Macintosh. Η TCL αναπτύχθηκε από τον John Ousterhout στο πανεπιστήμιο της Καλιφόρνιας στο Μπέρκλευ. 1.2.2 Χαρακτηριστικά της TCL Η TCL μας παρέχει τις απαραίτητες δομές και λειτουργίες ώστε να μπορέσουμε να γράψουμε δομημένα προγράμματα, δηλαδή μας παρέχει μεταβλητές, πίνακες, στοιχειοσειρές, τελεστές, λίστες, εκφράσεις, εντολές, συναρτήσεις, διαδικασίες, δομές έλεγχου, αρχεία και χειρισμό λαθών. Κάποια από τα χαρακτηριστικά της είναι τα ακόλουθα: Είναι δυναμική Script γλώσσα Παρέχει γρήγορη ανάπτυξη εφαρμογών Είναι ιδανική "glue language" δηλαδή μπορεί εύκολα να ενσωματωθεί και σε άλλες γλώσσες όπως η C και η C ++ Οι χρήστες δημιουργούν εύκολα εφαρμογές χωρίς να χρειάζεται να εμβαθύνουν σε πολύπλοκα χαρακτηριστικά της γλώσσας 1.2.3 Πλεονεκτήματα TCL Τα πλεονεκτήματα του είναι η ταχεία ανάπτυξη εφαρμογών, αφού σε TCL μπορούν να γραφτούν GUI με λιγότερο κώδικα και σε υψηλότερο επίπεδο από ότι σε εργαλεία βασισμένα σε προγραμματισμό C. Το TCL είναι μια διερμηνευμένη γλώσσα, έτσι μπορούν να γραφτούν και να εκτελεστούν εφαρμογές στη στιγμή χωρίς επαναμετάφραση η επανεκκίνηση της εφαρμογής, καθώς επίσης μπορούν στιγμιαία να δοκιμαστούν νέες ιδέες και να διορθωθούν λάθη. Το TCL μπορεί να ενσωματωθεί πολύ εύκολα σε οποιαδήποτε εφαρμογή και να της δώσει καινούργιες δυνατότητες επέκτασης. Είναι μια γλώσσα η οποία μπορεί πολύ εύκολα να ενσωματώσει διαφορετικά πακέτα βιβλιοθηκών με εντολές TCL. Ακόμα τα προγράμματα γραμμένα 7

σε TCL μπορούν να λειτουργήσουν ως μηχανισμός επικοινωνίας σε διάφορες εφαρμογές. Τελευταίο πλεονέκτημα του είναι ότι ο προγραμματιστής μπορεί να ενδυναμώσει και να επεκτείνει τις TCL εφαρμογές του μαθαίνοντας ελάχιστες συγκεκριμένες εντολές που χρησιμοποιούνται στις εφαρμογές αυτές. 1.2.4 Λάθη στη TCL Όπως έχετε δει προηγούμενα, υπάρχουν πολλά πράγματα που μπορούν να οδηγήσουν σε λάθη στις εντολές Tcl. Τα λάθη μπορούν να εμφανιστούν επειδή μια εντολή δεν υπάρχει ή επειδή δεν λαμβάνει το σωστό αριθμό ορισμάτων ή επειδή τα ορίσματα έχουν λανθασμένη μορφή ή επειδή κάποιο άλλο πρόβλημα εμφανίζεται στην εκτέλεση της εντολής, όπως ένα λάθος σε μια κλήση συστήματος για ένα αρχείο I/O. Στις περισσότερες περιπτώσεις τα λάθη αντιπροσωπεύουν σοβαρά προβλήματα που καθιστούν αδύνατο για την εφαρμογή να ολοκληρώσει το script που επεξεργάζεται. Οι Tcl διευκολύνσεις λάθους προορίζονται να καταστήσουν εύκολο για την εφαρμογή να "ξετυλίξεί" την υπό εξέλιξη εργασία και να προβάλει ένα μήνυμα λάθους στο χρήστη που προσδιορίζει τι πήγε στραβά. Πιθανώς ο χρήστης θα διορθώσει το πρόβλημα και θα ξαναδοκιμάσει τη λειτουργία. Τα λάθη είναι απλά ένα παράδειγμα ενός γενικότερου φαινομένου αποκαλούμενου ως εξαιρέσεις. Οι εξαιρέσεις είναι γεγονότα που αναγκάζουν τα scripts να διακοπούν, περιλαμβάνουν τις εντολές break, continue και return καθώς επίσης και τα λάθη.h Tcl επιτρέπει οι εξαιρέσεις να "πιαστούν" από τα scripts έτσι ώστε μόνο μέρος της εργασίας υπό εξέλιξη να "ξετυλίγεται". Μετά το "πιάσιμο" μιας εξαίρεσης το script μπορεί να την αγνοήσει ή να λάβει μέτρα για να την αντιμετωπίσει. Εάν το script δεν μπορέσει να την αντιμετωπίσει τότε μπορεί να επανεξετάσει την εξαίρεση. 1.2.4.1 Τι συμβαίνει μετά από ένα λάθος; Όταν ένα λάθος Tcl εμφανίζεται η τρέχουσα εντολή διακόπτεται. Εάν αυτή η εντολή είναι μέρος ενός μεγαλύτερου script τότε το script διακόπτεται επίσης. Εάν το λάθος εμφανίζεται εκτελώντας μια διαδικασία Tcl, τότε η διαδικασία διακόπτεται, μαζί με τη διαδικασία που την κάλεσε, και ούτω καθεξής έως ότου διακοπούν όλες οι ενεργές διαδικασίες.αφότου έχει ξετυλιχτεί κατ' αυτό τον τρόπο όλη η δραστηριότητα Tcl, ο έλεγχος επιστρέφει τελικά στον κώδικα C στην εφαρμογή, μαζί με μια ένδειξη ότι ένα λάθος εμφανίστηκε και ένα μήνυμα περιγράφοντας το λάθος. Εξαρτάται από την εφαρμογή να αποφασίσει πώς να χειριστεί αυτήν την κατάσταση, αλλά οι περισσότερες διαλογικές εφαρμογές θα εμφανίσουν το μήνυμα λάθους για το χρήστη και θα συνεχίσουν να επεξεργάζονται τα δεδομένα των χρηστών. Σε μια ομαδικά - προσανατολισμένη εφαρμογή όπου ο χρήστης δεν μπορεί να δει το μήνυμα λάθους 8

και ρυθμίζει τις μελλοντικές του ενέργειες αναλόγως, η εφαρμογή μπορεί να τυπώσει το μήνυμα λάθους σε ένα αρχείο και να διακοπεί. 1.2.5 Η HTML μέσα σε αρχείο TCL Αυτός είναι ένα απλό παράδειγμα του κώδικα HTML: <html> <head> <title>sample Code</title> </head> <body bgcolor= yellow > Hello World </body> </html> Αν ενσωματώσουμε τον παραπάνω κώδικα HTML σε ένα αρχείο με κατάληξη *.tcl, τότε θα έχει την παρακάτω μορφή: puts <html> puts <head> puts <title>sample\ Code</title> puts </head> puts <body\ bgcolor= yellow > puts Hello\ World puts </body> puts </html> Όπως παρατηρούμε πριν από κάθε γραμμή του κώδικα HTML τοποθετούμε puts και ανάμεσα σε λέξεις με κενά τοποθετούμε το \. Μ αυτόν τον τρόπο η TCL αναγνωρίζει τον κώδικα HTML. 9

1.3 Βάση δεδομένων Βάση δεδομένων Database είναι μια συλλογή από δεδομένα, οργανωμένα κατά τέτοιο τρόπο ώστε να μπορούν εύκολα να προσπελαστούν και να διαχειριστούν από τον χρήστη. Εμείς υποστηρίζουμε την MySQL. 1.3.1 MySQL Η MySQL είναι open source γλώσσα προγραμματισμού, οι οποία συνεργαζόμενη με την TCL, αποτελούν ένα πολύ δυνατό εργαλείο για την κατασκευή δυναμικών website. Μια βάση δεδομένων (database) αποτελείται από έναν ή περισσότερους πίνακες (tables), ο καθένας από τους οποίους περιέχει μια λίστα από κάποια πράγματα. Για μια βάση δεδομένων πελατών (clients), είναι φυσικό να ξεκινήσουμε μ έναν πίνακα με όνομα clients που θα περιέχει μια λίστα από στοιχεία πελατών. Ο κάθε πίνακας σε μια βάση δεδομένων περιέχει μια ή περισσότερες στήλες (columns) ή πεδία (fields), όπου η κάθε στήλη περιέχει μια συγκεκριμένη πληροφορία για τον κάθε πελάτη που υπάρχει στην βάση δεδομένων (database). Ο πίνακας clients μπορεί να περιέχει στήλες για τον κωδικό ενός πελάτη (ID), για το όνομά του (Name) καθώς και για την ημερομηνία γέννησής του (Date). Για παράδειγμα, ας δούμε τον παρακάτω πίνακα : ID 1 2 Name Αντωνιάδης Παπαδόπουλος Date 1970-04-01 1968-02-22 Εκτός από τις στήλες για το όνομα του πελάτη (Name) και την ημερομηνία γέννησής του (Date), υπάρχει και μια στήλη με όνομα ID, ο σκοπός της οποίας είναι να εκχωρήσει έναν μοναδικό αριθμό στον κάθε πελάτη έτσι ώστε να έχουμε έναν εύκολο τρόπο αναφοράς σ αυτόν και να μπορούμε να τον ξεχωρίσουμε από τους άλλους πελάτες. Σαν επισκόπηση, το παραπάνω είναι ένας πίνακας τριών στηλών που περιέχει δύο γραμμές ή καταχωρήσεις. Η κάθε γραμμή του πίνακα περιέχει έναν κωδικό (ID) αναγνώρισης του πελάτη, το όνομά του (text) καθώς και την ημερομηνία γέννησής του (date). Με βάση αυτήν την βασική ορολογία, είμαστε έτοιμοι να αρχίσουμε να χρησιμοποιούμε την MySQL. 10

1.3.2 Ιστορικά στοιχεία Η MySQL χρησιμοποιείται από το 1996 αλλά η ιστορία της ξεκινά από το 1979. Για 3 συνεχόμενα χρόνια έχει κερδίσει το βραβείο choice Award του Linux Journal Readers. Σήμερα είναι διαθέσιμη με άδεια ανοιχτού κώδικα αλλά επίσης διαθέσιμες και εμπορικές άδειες όταν είναι απαραίτητο. 1.4 Apache 1.4.1 Τι είναι Apache; Apache είναι ένας web server. Είναι ένα ανοιχτό λογισμικό πράγμα το οποίο σημαίνει ότι έχουμε πρόσβαση σε όλο τον πηγαίο κώδικα του. Δίνει την δυνατότητα στον χρήστη να δημιουργεί μια εξειδικευμένη έκδοση του server σύμφωνα με τις προτιμήσεις του. Δημιουργία εκτελέσιμων αρχείων του apache από τον πηγαίο κώδικα δίνει την δυνατότητα εύκολης αναβάθμισης στις πιο πρόσφατες εκδόσεις και να εφαρμοστούν γρήγορα οι διορθώσεις για την ασφάλεια. Είναι ένας δυναμικός web server. Περιέχει τα πιο πρόσφατα πρωτόκολλα, παρέχει πλήρη κώδικα, τρέχει σε περιβάλλον (Windows NT/9x, Netware 5.x και σε πολλές εκδόσεις του Unix). 1.4.2 Ιστορικά στοιχεία για την ονομασία Apache Το όνομα Apache επιλέχθηκε αρχικά από σεβασμό στους Ιθαγενείς Ινδιάνους της Αμερικής (που η φυλή τους είχε την ονομασία αυτή) γνωστών για την υπεροχή τους στη στρατηγική πολέμου και την ανεξάντλητη αντοχή τους. Επίσης το όνομα αποδίδεται στο λογοπαίγνιο Apache is APAtCHy server που βασίζεται σε ένα υπαρκτό κώδικα και σε μια σειρά από patch files. 1.4.3 CGI Scripting Ο όρος CGI ή Common Gateway Interface είναι πολύ διαδεδομένος στο Web. Το CGI αναφέρεται στο τηλεπικοινωνιακό πρωτόκολλο με το οποίο ένας Web server μπορεί να επικοινωνήσει με άλλες εφαρμογές. Για παράδειγμα, μία CGI εφαρμογή, η οποία συνήθως ονομάζεται script, χρησιμοποιείται συχνά επιτρέποντας στους χρήστες του Web να προσπελαύνουν βάσεις δεδομένων ή να παίρνουν πληροφορίες από φόρμες που συμπληρώνουν. Το CGI μπορεί επίσης να χρησιμοποιηθεί για τη δημιουργία agents που θα εκτελούν κάποια καθήκοντα όπως ο έλεγχος ενός Web site για την εύρεση πιθανών 11

"σπασμένων" links. Ουσιαστικά, το CGI αποτελεί ένα πρότυπο με το οποίο ο Web αλληλεπιδρά με εξωτερικές πηγές. Συχνά αυτή η εξωτερική πηγή είναι μία βάση δεδομένων. Πιθανώς να τρέχετε πολλά CGI scripts χωρίς καν να το γνωρίζετε. Για παράδειγμα, αν συμπληρώσατε μία φόρμα μιας Web σελίδας για να εγγραφείτε σε κάποιο site και αργότερα λάβατε μία ειδοποίηση μέσω e-mail η οποία να περιέχει το password που μπορείτε να χρησιμοποιήσετε, πιθανώς να έχετε τρέξει ένα CGI script. Σ' αυτή την περίπτωση το CGI script πιθανώς να πήρε τις πληροφορίες που συμπληρώσατε στη φόρμα, να έκανε διάφορες εργασίες με αυτήν, συμπεριλαμβανομένης της αποστολής των πληροφοριών σε μία βάση δεδομένων, της αυτόματης δημιουργίας ενός password και της αποστολής του mail. Συχνά υπάρχει σύγχυση μεταξύ του CGI και των CGI εφαρμογών. Οι CGI εφαρμογές λαμβάνουν δεδομένα από τον server και τα επιστρέφουν μέσω του Common Gateway Interface. Είναι η "είσοδος" μέσω της οποίας ο Web server στέλνει αιτήσεις και η CGI εφαρμογή συλλέγει και επιστρέφει τα δεδομένα. Στο παράδειγμα της παροχής πληροφοριών σε μία Web σελίδα η οποία έχει σχεδιαστεί να δέχεται την είσοδο των χρηστών, το CGI εκτελεί πολλά καθήκοντα. Πρώτα απ' όλα δίνετε κάποιες μοναδικές πληροφορίες - όπως το όνομα ή την ηλεκτρονική σας διεύθυνση - στον server για επεξεργασία. Εν συνεχεία, ο server ανακατευθύνει τις πληροφορίες σε μία CGI εφαρμογή η οποία καλείται από τη φόρμα "submit". Τα CGI scripts ενεργοποιούνται από τον server σε απάντηση μιας HTTP αίτησης από τον client.τελικά μία CGI εφαρμογή μπορεί να στείλει δεδομένα της φόρμας σε ένα άλλο πρόγραμμα όπως μία βάση δεδομένων, να τα αποθηκεύσει σε ένα αρχείο ή να δημιουργήσει ένα μοναδικό HTML έγγραφο σε απάντηση στην αίτηση του χρήστη. Αυτό είναι γνωστό ως αλληλεπιδραστική φόρμα. Ένα CGI script είναι ένα πρόγραμμα το οποίο στο standard output παράγει (συνήθως) HTML κώδικα. Σε κάποιες περιπτώσεις παράγει στο standard output κώδικα GIF αρχείου (χρησιμοποιείται στην περίπτωση γραφικών counters σελίδων). Γι'αυτό το λόγο αρχικά πρέπει πάντα να τίθεται μια γραμμή προσδιορισμού του περιεχομένου που θα ακολουθήσει. πχ. Για HTML σελίδα Content-type: text/html Για GIF εικόνα Content-type: image/gif Τα CGI προγράμματα συνήθως αποθηκεύονται σε ένα συγκεκριμένο χώρο. Το directory το οποίο τα περιέχει συνήθως ονομάζεται "cgi-bin". Τα αρχεία που 12

αποθηκεύονται εκεί είναι εκτελέσιμα αρχεία που μπορεί να τα τρέξει ένα UNIX σύστημα. Όταν ο χρήστης κάνει submit στη φόρμα, το script λαμβάνει τα δεδομένα της φόρμας σαν ζευγάρια names και values. Τα names είναι αυτά που ορίσαμε στα INPUT tags (ή στα SELECT ή TEXTAREA tags) και οι values είναι ο,τιδήποτε ο χρήστης έγραψε ή επέλεξε. Όλα αυτά γράφονται σε ένα πολύ μεγάλο string που έχει την παρακάτω μορφή name1=value1&name2=value2&name3=value3 13

1.5 JavaScript 1.5.1 Τι είναι η JavaScript; Η JavaScript δεν είναι Java και παρόμοια η Java δεν είναι JavaScript. Η JavaScript αναπτύχθηκε ανεξάρτητα από τη Java. Αρχικά αναπτύχθηκε σαν ένα προϊόν που ονομαζόταν LiveScript αλλά μετονομάστηκε όταν η Netscape ανακοίνωσε υποστήριξη για την Java στο Netscape Navigator 2.0. Η JavaScript είναι μια γλώσσα Script που, συνήθως, μεταφράζεται την ώρα εκτέλεσης από ένα μεταγλωττιστή JavaScript μέσα στο πρόγραμμα ανάγνωσης ιστοσελίδων. Ο κώδικας μπορεί να ενσωματωθεί μέσα σε μια HTML σελίδα. Η JavaScript δεν είναι μια καθαρή 100% αντικειμενοστραφής γλώσσα, αν και μπορεί εύκολα να περιγραφεί σαν μια γλώσσα βασισμένη στα αντικείμενα. Η Java είναι καθαρά αντικειμενοστραφής γλώσσα. Η σύνταξη μεταξύ των δύο είναι πολύ παρόμοια αλλά όχι ίδια. 1.5.2 Ιστορικά στοιχεία της JavaScript Η JavaScript δημιουργήθηκε το 1995 από τον Brendan Eich για να τη χρησιμοποιήσει με τον Netscape Navigator 2. Ο στόχος ήταν να επιτρέπει στο πρόγραμμα ανάγνωσης ιστοσελίδων του πελάτη να δημιουργεί HTML δυναμικά και να εκτελεί κώδικα JavaScript, ώστε ο χρήστης να βλέπει ή να συνδιαλέγεται με την σελίδα. 1.5.3 Τοποθέτηση του κώδικα JavaScript Που πηγαίνει ο κώδικας JavaScript μεσα στη σελίδα; Αυτή η ερώτηση είναι συνήθως η πρώτη που ρωτά κάποιος όταν συναντάει JavaScript. Η απλή απάντηση είναι ότι η JavaScript πηγαίνει μεταξύ μιας ετικέτας script αρχής και τέλους. Ένα δείγμα JavaScript κώδικα, δείχνει ως εξής: <html><head> <title>sample Code</title> </head> <body> <script language= JavaScript > <!- - document.write( Hello World ) ; //--> </script> </body></html> 14

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

ΚΕΦΑΛΑΙΟ 2 ο 2.1 Σχεδιασμός και περιγραφή Βάσης Δεδομένων Για την συγκεκριμένη εφαρμογή χρησιμοποιήθηκε η βάση δεδομένων της MySQL για την καταχώριση των δεδομένων στους πίνακες οι οποίοι περιγράφονται στο κεφάλαιο αυτό. 2.1.1 Δομή της Βάσης Δεδομένων Η Βάση Δεδομένων που χρησιμοποιήθηκε για την εφαρμογή αυτή, περιέχει τους παρακάτω οκτώ πίνακες: 1. users 2. forum 3. chat 4. answer 5. names 6. names2 7. i 8. mname 2.1.1.1 Σχέσεις μεταξύ πινάκων forum users chat mname answer i names2 names 16

2.1.2 Περιγραφή της Βάσης Δεδομένων Πίνακας users Field Type NULL Key Default Extra username Char(8) YES NULL password Char(5) YES NULL Ο πίνακας users περιέχει όλα τα usernames και passwords των σπουδαστών που έχουν δικαίωμα πρόσβασης στην εφαρμογή, δηλαδή για την πρόσβαση του χρήστη στην εφαρμογή είναι απαραίτητη η αυθεντικοποίηση του εισάγοντας το username και το password του, που είναι είδη καταχωρημένα στο συγκεκριμένο πίνακα. Ο πίνακας users περιλαμβάνει δύο πεδία: username αποτελείται από μέγιστο αριθμό οχτώ χαρακτήρων και είναι το πεδίο στο οποίο είναι καταχωρημένο το username του σπουδαστή το οποίο του έχει δοθεί από το τμήμα της Διαχείρισης Πληροφοριών. password αποτελείται από μέγιστο αριθμό πέντε χαρακτήρων και είναι το πεδίο στο οποίο είναι καταχωρημένο το password του σπουδαστή το οποίο του έχει δοθεί από το τμήμα της Διαχείρισης Πληροφοριών. Πίνακας forum Field Type NULL Key Default Extra user Char(8) YES NULL math Char(6) YES NULL text Char(199) YES NULL rd Char(3) YES NULL id Char(12) YES NULL Ο πίνακας forum αναφέρεται στο forum της εφαρμογής. Ο σκοπός της δημιουργίας του είναι να κρατάει όλες τις πληροφορίες που έχουν σχέση με τις ερωτήσεις που θέτει ο σπουδαστής στο forum. 17

Ο πίνακας forum περιλαμβάνει πέντε πεδία: user αποτελείται από μέγιστο αριθμό οχτώ χαρακτήρων και περιλαμβάνει το username κάθε σπουδαστή που θέλει να θέσει κάποια ερώτηση math αποτελείται από μέγιστο αριθμό έξι χαρακτήρων και περιλαμβάνει το value του μαθήματος για το οποίο θέλει να κάνει ερώτηση text αποτελείται από μέγιστο αριθμό 199 χαρακτήρων και περιλαμβάνει το κείμενο (ερώτηση) που πληκτρολογεί ο σπουδαστής rd αποτελείται από μέγιστο αριθμό τριών χαρακτήρων και περιλαμβάνει το value του θέματος για το οποίο ενδιαφέρεται ο σπουδαστής να θέσει την ερώτηση id αποτελείται από μέγιστο αριθμό δώδεκα χαρακτήρων και περιλαμβάνει το επιλεγμένο από τον σπουδαστή value του μαθήματος, value του θέματος και έναν αυξανόμενο μετρητή. Το πεδίο αυτό είναι για να συνδέσουμε την ερώτηση με την απάντηση. Πίνακας chat Field Type NULL Key Default Extra username Char(8) YES NULL text Char(199) YES NULL radio Char(10) YES NULL Ο πίνακας chat αναφέρεται στο chat της εφαρμογής. Ο σκοπός της δημιουργίας του είναι να κρατάει όλες τις πληροφορίες που έχουν σχέση με την αποστολή και τη λήψη μηνυμάτων μέσα στο chat. Ο πίνακας chat περιλαμβάνει τρία πεδία: username αποτελείται από μέγιστο αριθμό οχτώ χαρακτήρων και περιλαμβάνει μόνο το username κάθε σπουδαστή που στέλνει ένα κείμενο (μήνυμα) μέσα στο chat room. text αποτελείται από μέγιστο αριθμό 199 χαρακτήρων και περιλαμβάνει το κείμενο (μήνυμα) που πληκτρολογεί και δέχεται ο σπουδαστής στο chat room. radio αποτελείται από μέγιστο αριθμό δέκα χαρακτήρων και περιλαμβάνει το username του σπουδαστή στον οποίο θέλουμε να στείλουμε ένα private μήνυμα, δηλαδή να το βλέπει μόνο ο επιλεγμένος σπουδαστής. 18

Πίνακας answer Field Type NULL Key Default Extra id Char(12) YES NULL user Char(8) YES NULL text Char(199) YES NULL Ο πίνακας answer αναφέρεται στο forum της εφαρμογής. Ο σκοπός της δημιουργίας του είναι να κρατάει όλες τις πληροφορίες που έχουν σχέση με τις απαντήσεις του σπουδαστή για κάποια συγκεκριμένη ερώτηση που επέλεξε στο forum. Ο πίνακας answer περιλαμβάνει τρία πεδία: id αποτελείται από μέγιστο αριθμό δώδεκα χαρακτήρων και περιλαμβάνει το είδη υπάρχον id της επιλεγμένης ερώτησης από το πίνακα forum. Ο σκοπός αυτού του πεδίου είναι να συνδυάζει την ερώτηση με την αντίστοιχη απάντηση. user αποτελείται από μέγιστο αριθμό οχτώ χαρακτήρων και περιλαμβάνει το username κάθε σπουδαστή που θέλει να δώσει την απάντησή του σε κάποια ερώτηση. text αποτελείται από μέγιστο αριθμό 199 χαρακτήρων και περιλαμβάνει το κείμενο (απάντηση) που πληκτρολογεί ο σπουδαστής. Πίνακας names Field Type NULL Key Default Extra name Char(8) YES NULL Ο πίνακας names αναφέρεται στο chat της εφαρμογής. Ο σκοπός της δημιουργίας του είναι να κρατάει όλα τα username των σπουδαστών που βρίσκονται on-line στο chat room. Με την έξοδο κάποιου σπουδαστή ταυτόχρονα σβήνεται και το username του από τον πίνακα. Ο πίνακας names περιλαμβάνει ένα πεδίο: name αποτελείται από μέγιστο αριθμό οχτώ χαρακτήρων και ο σκοπός του είναι να στέλνει στο chat room τα username των σπουδαστών που βρίσκονται on-line εκείνη τη στιγμή. 19