ΗΛΕΚΤΡΟΝΙΚΟ ΒΙΒΛΙΟΠΩΛΕΙΟ «Η ΠΡΟΤΑΣΙΣ» ΖΑΜΑΝΤΖΑΣ ΕΥΑΓΓΕΛΟΣ (ΑΜ: Τ03060) ΡΟΔΙΤΗΣ ΘΕΟΔΟΣΗΣ (ΑΜ: Τ03214)



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

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

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

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

XAMPP Apache MySQL PHP javascript xampp

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

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

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

MICROSOFT OFFICE 2003 MICROSOFT WORD 2003

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

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

Δημιουργία. Ιστολογίου (blog) 7/5/2015. Χρυσάνθη Γιομέλου ΚΔΒΜ ΝΙΚΑΙΑΣ

Vodafone Business Connect

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

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

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

Μια καλή επιλογή θα ήταν (χωρίζοντας τις λέξεις με παύλα -) ή

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου

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

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

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή.

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

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

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

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

Περιεχόμενα. Πληροφορίες Σχετικά με το βιβλίο...11 Τι είναι το WordPress...11 Πληροφορίες για τον συγγραφέα...12

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

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

Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

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

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

Η βασική εργαλειοθήκη του διαδικτύου

MANAGER SIDE BAR. Μία άλλη λειτουργία είναι το ξυπνητήρι. Μπορείτε να ορίσετε τον χρόνο υπενθύμισης. Μετά την λήξη του χρόνου θα ειδοποιηθείτε ηχητικά

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

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

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

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

Άσκηση 5 Firefox Αποθήκευση αρχείων

Δραστηριότητα 3: Ρυθμίσεις Oικιακής Ομάδας Τοπικού Δικτύου Η/Υ σε WINDOWS 7 & 8

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

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

Εγχειρίδιο του Accerciser, έκδοση 0.2.0

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

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

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

Δημοσίευση στο Διαδίκτυο

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

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

Microsoft PowerPoint 2010 Πανεπιστήμιο Κύπρου

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

SharePoint Online. Δημιουργήστε μια τοποθεσία ή μια δημοσίευση ειδήσεων. Αναζήτηση Βρείτε Τοποθεσίες, Άτομα ή Αρχεία.

Vodafone Business Connect

Για περισσότερες πληροφορίες σχετικά με τη συμβατότητα του λογισμικού με άλλα λειτουργικά συστήματα, επικοινωνήστε με το τμήμα υποστήριξης πελατών.

Εγκατάσταση των απαραίτητων προγραμμάτων για την λειτουργία του WordPress. Δρ. Ματθαίος Πατρινόπουλος

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

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης


Εργαλεία. Επικοινωνίας & Συνεργασίας Πανεπιστήμιο Κύπρου

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

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. ( 2. Τοπικά 3. Σε δωρεάν Server

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

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

Θεματογράφος (ή ο βοηθός του Καθηγητή)

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

Δραστηριότητα 9 Δημιουργία και διαχείριση blog μέσω του Blogger. Δημιουργία ιστολογίου

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

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

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

Χρήση του Office 365 σε τηλέφωνο Android

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής Πρόλογος... 11

Γεωργάκης Αριστείδης ΠΕ20

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS

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

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

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

Γρήγορη Εκκίνηση. Όταν ξεκινήσετε το GeoGebra, εμφανίζεται το παρακάτω παράθυρο:

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ TITLE: ΤΙΤΛΟΣ:

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

Εισαγωγή στο πρόγραμμα Microsoft word 2003

Αναζήτηση στον Ιστό. Πληκτρολόγηση του URL: στο πλαίσιο αναζήτησης του Mozilla Firefox. Enter ή κλικ στο Αναζήτηση

Interactive Power Point

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

Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning

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

Πλατφόρμα Cloud. Έκδοση 1.0. Οδηγός χρήσης

Epsilon Net PYLON Platform

Vodafone Business Connect

Εγκατάσταση του εκτυπωτή από το CD λογισμικού και τεκμηρίωσης

Κέντρο υποστήριξης HP. Εισαγωγή. Τι χρειάζεται να γνωρίζετε. Λήψη και εγκατάσταση της λύσης Vista στα Windows 8. 1 of 5 1/7/2014 2:09 μμ

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31

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

Η HTML 5 θα αλλάξει το Web?

Ελέγξτε την ταινία σας

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

Transcript:

ΑΤΕΙ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Μηχανικών Πληροφορικής ΤΕ ΗΛΕΚΤΡΟΝΙΚΟ ΒΙΒΛΙΟΠΩΛΕΙΟ «Η ΠΡΟΤΑΣΙΣ» Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΖΑΜΑΝΤΖΑΣ ΕΥΑΓΓΕΛΟΣ (ΑΜ: Τ03060) ΡΟΔΙΤΗΣ ΘΕΟΔΟΣΗΣ (ΑΜ: Τ03214) Επιβλέπων: <ΣΑΒΒΑΣ ΗΛΙΑΣ, ΑΝΑΠΛΗΡΩΤΗΣ ΚΑΘΗΓΗΤΗΣ> ΛΑΡΙΣΑ 2015

«Εγώ ο Ζαμαντζάς Ευάγγελος και εγώ ο Ροδίτης Θεοδόσης, δηλώνουμε υπεύθυνα ότι η παρούσα Πτυχιακή Εργασία με τίτλο Ηλεκτρονικό βιβλιοπωλείο «Η Πρότασις» είναι δική μας και βεβαιώνουμε ότι: Σε όσες περιπτώσεις έχουμε συμβουλευτεί δημοσιευμένη εργασία τρίτων, αυτό επισημαίνεται με σχετική αναφορά στα επίμαχα σημεία. Σε όσες περιπτώσεις μεταφέρουμε λόγια τρίτων, αυτό επισημαίνεται με σχετική αναφορά στα επίμαχα σημεία. Με εξαίρεση τέτοιες περιπτώσεις, το υπόλοιπο κείμενο της πτυχιακής αποτελεί δική μας δουλειά. Αναφέρουμε ρητά όλες τις πηγές βοήθειας που χρησιμοποίησαμε. Σε περιπτώσεις που τμήματα της παρούσας πτυχιακής έγιναν από κοινού με τρίτους, αναφέρουμε ρητά ποια είναι η δική μας συνεισφορά και ποια των τρίτων. Γνωρίζουμε πως η λογοκλοπή αποτελεί σοβαρότατο παράπτωμα και είμαστε ενήμεροι για την επέλευση των νομίμων συνεπειών» < υπογραφή > Ζαμαντζάς Ευάγγελος Ροδίτης Θεοδόσης

Εγκρίθηκε από την τριμελή εξεταστική επιτροπή Τόπος: ΤΕΙ ΛΑΡΙΣΑΣ Ημερομηνία: 11/03/2015 ΕΠΙΤΡΟΠΗ ΑΞΙΟΛΟΓΗΣΗΣ 1. ΗΛΙΑΣ ΣΑΒΒΑΣ 2. ΓΕΩΡΓΙΟΣ ΚΑΚΑΡΟΝΤΖΑΣ 3. ΦΩΤΗΣ ΚΟΚΚΟΡΑΣ

Περίληψη Η εφαρμογή Protasis Bookstore, είναι μία εφαρμογή διαχείρισης Ηλεκτρονικού Βιβλιοπωλείου, ειδικά σχεδιασμένη για να τρέχει και τοπικά (local) στον υπολογιστή της επιχείρησης αλλά και διαδικτυακά (online) μέσω Διακομιστή (Server). Το βασικό εργαλείο πυρήνας για τη δημιουργία της εφαρμογής θα είναι η γλώσσα PHP. H PHP είναι μια γλώσσα που τρέχει σε διακομιστές (server). Επίσης θα χρησιμοποιηθεί η γλώσσα σήμανσης HTML σε συνδυασμό με την CSS για τη δημιουργία και μορφοποίηση του γραφικού περιβάλλοντος της εφαρμογής (GUI). Ακόμη θα χρησιμοποιήσουμε Javascript, Ajax και SQL για την κατασκευή της δυναμικής σελίδας. Θα χρησιμοποιηθεί ακόμη το Apache Webserver ως πρόγραμμα Διακoμιστή (Server) και το MySQL για τη διαχείριση της βάσης δεδομένων της ε- φαρμογής. -i-

Ευχαριστίες Με το πέρας αυτής της πτυχιακής εργασίας θα θέλαμε πρώτα απ όλα να ευχαριστήσουμε τον κύριο Ηλία Σαββα για την ανάθεση αυτού του θέματος, την βοήθεια του για τις όποιες απορίες είχαμε καθώς και τις μεθοδικές κατευθύνσεις που μας έδοσε. Θα θέλαμε επίσης να ευχαριστήσουμε όλους τους καθηγητές του τμήματός μας που βρισκόντουσαν δίπλα μας και μας βοηθήσανε σε ότι χρειαστήκαμε όλα αυτά τα χρόνια. Τέλος θέλουμε να ευχαριστήσουμε τις οικογένειες μας για την οικονομική και ψυχολογική τους υποστήριξη καθώς και την κατανόηση που δείξανε όλα αυτά τα χρόνια. Ζαμαντζάς Ευάγγελος Ροδίτης Θεοδόσης 5/3/2015 -iii-

Περιεχόμενα ΠΕΡΙΛΗΨΗ... I ΕΥΧΑΡΙΣΤΙΕΣ... III ΠΕΡΙΕΧΟΜΕΝΑ... V 1 ΕΙΣΑΓΩΓΗ... 1 2 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΤΥΧΙΑΚΗΣ... 3 2.1 ΜΕΘΟΔΟΣ ΑΝΑΛΥΣΗΣ ΚΑΙ ΑΝΑΠΤΥΞΗΣ ΠΤΥΧΙΑΚΗΣ... 3 2.2 ΘΕΩΡΗΤΙΚΟ ΚΟΜΜΑΤΙ... 3 2.2.1 HTML..3 2.2.2 JAVASCRIPT...4 2.2.3 CSS (CASCADING STYLE SHEET).. 5 2.2.4 ΣΤΑΤΙΚΕΣΙΣΤΟΣΕΛΙΔΕΣ...5 2.2.5 ΔΥΝΑΜΙΚΕΣ ΙΣΤΟΣΕΛΙΔΕΣ...6 2.2.6 PHP.7 2.2.7 SQL.. 7 2.2.8 OPENSOURCE.....8 2.2.9 APACHE.... 11 2.2.10 MYSQL......11 2.2.11 PHPMYADMIN...12 2.2.12 XAMPP.....12 3 ΚΥΡΙΟ ΜΕΡΟΣ ΤΗΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ... 15 3.1 ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ... 15 3.2 ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ... 16 3.3 ΠΡΑΓΜΑΤΟΠΟΙΗΣΗ ΤΗΣ ΕΡΓΑΣΙΑΣ... 24 4 ΑΠΟΤΕΛΕΣΜΑΤΑ... 105 ΒΙΒΛΙΟΓΡΑΦΙΑ... 107 -v-

-vi-

1 Εισαγωγή Στο κεφάλαιο αυτό θα δούμε μια μικρή περίληψη σχετικά με το αντικείμενο της πτυχιακής εργασίας μας. Συγκεκριμένα θα εξετάσουμε για την πτυχιακή αυτή τους λόγους για τους οποίους επιλέξαμε το θέμα καθώς και μία σύνοψη των κεφαλαίων που θα ακολουθήσουν. 1.1. Περίληψη Το αντικείμενο που πραγματεύεται αυτή η πτυχιακή εργασία είναι η κατασκευή ιστοσελίδας για τη διαχείριση ενός ηλεκτρονικού βιβλιοπωλείου. Πιο συγκεκριμένα, για την υλοποίηση αυτής της ιστοσελίδας έχει γίνει χρήση των γλωσσών προγραμματισμού HTML, PHP, Javascript και CSS. Για τη διαχείρηση και την εμφάνιση πληροφοριών έχει χρησιμοποιηθεί η γλώσσα προγραμματισμού βάσεων δεδομένων SQL. Η ιστοσελίδα παρέχει στον επισκέπτη πληροφορίες για τις υπηρεσίες του βιβλιοπωλείου καθώς και για τα βιβλία που προβάλει. Η τοποθέτηση και η προβολή των υπηρεσιών έχουν γίνει με τέτοιο τρόπο έτσι ώστε να καθοδηγούν τον επισκέπτη στην πλοήγηση του και να του παρέχονται εύκολα και γρήγορα πληροφορίες για την υπηρεσίαες που ενδιαφέρεται ή και γενικές πληροφορίες για κάποιο βιβλίο. Πιο συγκεκριμένα, η ιστοσελίδα υποστηρίζει δύο κατηγορίες χρηστών, τους τελικούς χρήστες και τους διαχειριστές. Οι πρώτοι μπορούν να περιηγηθούν στην ιστοσελίδα και να βρούν πληροφορίες για τα ακόλουθα για τα βιβλία που τους ενδιαφέρουν, καθώς και να προχωρήσουν σε αγορά τους. Οι δεύτεροι μπορούν να επεξεργάζονται τις πληροφορίες των ήδη καταχωρημένων βιβλίων, να προσθέτουν καινούργια βιβλία καθώς και να διαγράφουν παλιά. 1.2. Κίνητρο για την Διεξαγωγή της Εργασίας Στην εποχή που ζούμε, το διαδίκτυο (internet) έχει γίνει αναπόσπαστο κομμάτι της καθημερινότητάς μας. Η συνεχής πρόοδος της τεχνολογίας και των ηλεκτρονικών υπολογιστών έχει οδηγήσει, τις επιχειρήσεις να αναζητούν την αναβάθμιση και τον εκσυγχρόνισμο της υποδομής και των υπηρεσιών τους προκειμένου να μπορούν να ανταπεξέλθουν στις απαιτήσεις της εποχής τους και να ξεχωρίσουν από τους ανταγωνιστές τους. Οι επιχειρήσεις που έρχονται σε άμεση ή έμμεση επαφή με τους πελάτες τους, όπως ένα βιβλιοπωλείο, επιβάλεται τουλάχιστον η ύπαρξη ενός «προσώπου» στο διαδίκτυο. Για να καλυφθεί η ανάγκη αυτή δημιουργήσαμε μια βασική σελίδα η οποία θα ήταν το διαδικτυακό πρόσωπο του βιβλιοπωλείου στο internet και θα λειτουργούσε ως υποστηρικτικό υλικό για τους συνεργάτες και τους πελάτες μας. -1-

Η δημιουργία αυτής της ιστοσελίδας δεν ήταν τίποτα άλλο παρά η αφορμή για την αναζήτηση ενός εργαλείου κατασκευής δυναμικών ιστοσελίδων το οποίο θα μας έδινε την δυνατότητα να δημιουργήσουμε δυναμικές ιστοσελίδες 1.3. Σκοπός και Στόχοι Εργασίας Σημαντικότερος στόχος είναι η δημιουργία μιας ιστοσελίδας για βιβλιοπωλείο στην οποία οι επισκέπτες θα μπορούν να πλοηγηθούν και να βρούν πληροφορίες και υποστηρικτικό υλικό για τις υπηρεσίες της επιχείρησης αλλά και για τα βιβλία τα οποία προβάλει. Άλλος ένας στόχος είναι να κατασκευαστεί η ιστοσελίδα με τέτοιο τρόπο έτσι ώστε η πλοήγηση να είναι φιλική προς τον χρήστη. Ο επισκέπτης να μπορεί με ευκολία να βρίσκει την πληροφορία που αναζητά ή να πλοηγήται προκειμένου να ενημερωθεί, χωρίς να κουράζεται και να χάνεται στην ιστοσελίδα. Κεφάλαιο 2: Μεθοδολογία Υλοποίησης. Στο κεφάλαιο αυτό αναφέραται η μεθοδολογία που ακολουθήσαμε για την υλοποίηση αυτής της πτυχιακής εργασίες. Επιπλέον κάνουμε μία συνοπτική αναφορά στις εμπλεκόμενες γλώσσες προγραμματισμού. Παρατίθουμαι με βάση την έ- ρευνα που πραγματοποιήσαμε για τις γλώσσες προγραμματισμού που χρησιμοποιήσαμε. Δίνονται επίσης επεξηγήσεις σε σχετικές βασικές έννοιες. Κεφάλαιο 3: Κύριο μέρος πτυχιακής. Υλοποιείται η ανάλυση του προβλήματος που καλούμαστε να αντιμετωπίσουμε, προσδιορισμός των απαιτήσεων της ιστοσελίδας και αναφορά στο σχεδιασμό υλοποίησης, καθώς επίσης και περιγράφονται τα διάφορα βήματα της υλοποίησης, δηλαδή η εγκατάσταση απαραίτητου λογισμικού, η ανάπτυξη του κωδίκα της ιστοσελίδας κτλ. Κεφάλαιο 4: Αποτελέσματα. -2-

2 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΤΥΧΙΑΚΗΣ 2.1 Μέθοδος Ανάλυσης και Ανάπτυξης Πτυχιακής Στη συγκεκριμένη περίπτωση το πρόβλημα είναι η ύπαρξη ενός προσώπου / προφίλ στο Διαδίκτυο για ένα βιβλιοπωλείο. Για την επίλυση του προβλήματος θα δημιουργήσουμε μία ι- στοσελίδα η οποία θα κατασκευαστεί με διάφορες γλώσσες προγραμματισμού. Η ιστοσελίδα θα είναι μία παρουσίαση του βιβλιοπωλείου και θα παρέχει πληροφορίες και υποστηρικτικό υλικό για τα βιβλία που προβάλλονται καθώς και για τις σχετιζόμενες με αυτά υπηρεσίες. Επίσης θα έχουμε την δυνατότητα να οργανώσουμε, να διαχειριστούμε και να προβάλουμε το περιεχόμενο μας. 2.2 Θεωρίες Στο σημείο αυτό θα γίνει ανάλυση των γλωσσών προγραμματισμού και των εργαλείων που θα χρησιμοποιήσουμε για την υλοποίηση της επίλυσης του προβλήματος. 2.2.1 HTML Τα αρχικά HTML προέρχονται από τις λέξεις HyperText Markup Language. Ουσιαστικά δεν είναι μια γλώσσα προγραμματισμού, αλλά είναι μια γλώσσα σήμανσης (markup language), δηλαδή ένας ειδικός τρόπος γραφής κειμένου. Είναι πολύ εύκολο να δημιουργήσει κανείς ένα αρχείο HTML χρησιμοποιώντας απλά έναν επεξεργαστή κειμένου(π.χ notepad). Αποτελεί υποσύνολο της γλώσσας SGML (Standard Generalized Markup Language) που επινοήθηκε από την IBM προκειμένου να λυθεί το πρόβλημα της μη τυποποιημένης εμφάνισης κειμένων στα διάφορα υπολογιστικά συστήματα. Ο browser αναγνωρίζει αυτόν τον τρόπο γραφής και εκτελεί τις εντολές που περιέχονται σε αυτόν. Αξίζει να σημειωθεί ότι η HTML είναι η πρώτη και πιο διαδεδομένη γλώσσα περιγραφής της δομής μιας ιστοσελίδας και χρησιμοποιεί τις ειδικές ετικέτες (τα tags) να δώσει τις απαραίτητες οδηγίες στον browser στο πώς να εμφανίσει τα διάφορα στοιχεία. Τα tags είναι εντολές που συνήθως ορίζουν την αρχή ή το το τέλος μιας λειτουργίας. Επίσης βρίσκονται πάντα μεταξύ των συμβόλων < και >. Π.χ. <BODY> Οι οδηγίες είναι case insensitive, δεν επηρεάζονται από το αν έχουν γραφτεί με πεζά (μικρά) ή κεφαλαία. Ένα αρχείο HTML πρέπει να έχει κατάληξη htm ή HTML. Για να μπορούν οι browser να ερμηνεύουν σχεδόν απόλυτα σωστά την HTML έχουν θεσπιστεί κάποιοι κανόνες. Αυτοί οι κανόνες είναι γνωστοί ως προδιαγραφές. Επομένως σχεδόν κάθε είδος υπολογιστή μπορεί να δείξει το ίδιο καλά μια ι- στοσελίδα. Οι πρώτες προδιαγραφές ήταν η HTML 2.0. Πρόβλημα προέκυψε όταν η Μicrosoft και Νetscape πρόσθεσαν στην HTML τέτοιες δυνατότητες που στην αρχή τουλάχιστον ήταν συμβατές μόνο με συγκεκριμένους browser. Ακόμη και σήμερα υπάρχουν διαφορές στην απεικόνιση κάποιας σελίδας από διαφορετικούς browsers. Ιδιαίτερο είναι το πρόβλημα όταν η ιστο- -3-

σελίδα, εκτός από "καθαρή" HTML περιλαμβάνει και εφαρμογές Javascript. Σήμερα πολλοί είναι εκείνοι που δημιουργούν μια ιστοσελίδα σε κάποιο πρόγραμμα που επιτρέπει την δημιουργία χωρίς την συγγραφή κώδικα. Η άποψη πάνω στο θέμα όμως είναι ότι κάτι τέτοιο είναι αρνητικό επειδή ο δημιουργός δεν έχει τον απόλυτο έλεγχο του κώδικα με αποτέλεσμα πολλές φόρες να υπάρχει οπτικό χάος στην προσπάθεια των browser να εμφανίσουν την ιστοσελίδα, έτσι έχει δημιουργηθεί για το σκοπό αυτό ειδικό λογισμικό, που επιτρέπει το οπτικό στήσιμο της σελίδας, χωρίς τη συγγραφή κώδικα, όμως έχει τη δυνατότητα παρέμβασης και στον κώδικα. Σημαντικά παραδείγματα είναι το λογισμικό Dreamweaver της Adobe και το FrontPage της Microsoft ή το WebStorm των Jetbrains. Επίσης υπάρχουν διαθέσιμα στο διαδίκτυο αντίστοιχα προγράμματα Open Source όπως το Aptana. 2.2.2. Javascript Η javascript είναι μία γλώσσα scripting και σχεδιάστηκε για να προσθέσει αλληλεπίδραση στις ιστοσελίδες. Συνήθως η javascript ενσωματώνεται απευθείας στον κώδικα της ιστοσελίδας. Η JavaScript είναι γλώσσα προγραμματισμού η οποία έχει σαν σκοπό την παραγωγή δυναμικού περιεχομένου και την εκτέλεση κώδικα στην πλευρά του πελάτη (client-side) σε ιστοσελίδες. Το πρότυπο της γλώσσας κατά τον οργανισμό τυποποίησης ECMA ονομάζεται ECMAscript. Αρχικά η Javascript βασίστηκε συντακτικά στη γλώσσα προγραμματισμού C, αν και έχει εξελιχθεί, ενσωματώνοντας πια χαρακτηριστικά από νεότερες γλώσσες. Αρχικά χρησιμοποιήθηκε για προγραμματισμό από την πλευρά του πελάτη (client), που ήταν ο φυλλομετρητής του χρήστη, έτσι στην πορεία χαρακτηρίστηκε σαν client-side γλώσσα προγραμματισμού. Αυτό σημαίνει ότι η επεξεργασία του κώδικα Javascript και η παραγωγή του τελικού περιεχομένου HTML δεν πραγματοποιείται στο διακομιστή, αλλά στο πρόγραμμα περιήγησης των επισκεπτών, ενώ μπορεί να ενσωματωθεί σε στατικές σελίδες HTML. Αντίθετα, άλλες γλώσσες όπως η PHP εκτελούνται στο διακομιστή (server-side γλώσσες προγραμματισμού). [http://sitemaniac.blogspot.gr/2013/01/javascript.html, 2013] Παρά την ευρεία χρήση της Javascript για συγγραφή προγραμμάτων σε περιβάλλον φυλλομετρητή, αξίζει να σημειωθεί ότι από την αρχή χρησιμοποιήθηκε και για τη συγγραφή κώδικα από την πλευρά του διακομιστή, από την ίδια τη Netscape στο προϊόν LiveWire, με μικρή επιτυχία. Η χρήση της Javascript στο διακομιστή εμφανίζεται πάλι σήμερα, με τη διάδοση του Node.js, ενός μοντέλου προγραμματισμού βασισμένο στα γεγονότα (events). Ο κώδικας Javascript μιας σελίδας περικλείεται από τις ετικέτες της HTML <script type="text/javascript"> </script>. [http://sitemaniac.blogspot.gr/2013/01/javascript.html, 2013] Αν ο κώδικας Javascript περιέχει περισσότερες από μία εντολές, αυτές θα πρέπει να διαχωριστούν μεταξύ τους με το χαρακτήρα του ελληνικού ερωτηματικού ';'. Η χρήση του χαρακτήρα αυτού για την τελευταία εντολή δεν είναι απαραίτητη. Η διαχώριση των εντολών στους νεότερους φυλλομετρητές δεν είναι απαραίτητη. -4-

2.2.3. CSS CSS είναι μια γλώσσα style που καθορίζει τη διάταξη των HTML εγγράφων. Για παράδειγμα, CSS καλύπτει τις γραμμές, ύψος, πλάτος, τις γραμματοσειρές, τα χρώματα, εικόνες φόντου, τα περιθώρια, προηγμένες θέσεις και πολλά άλλα πράγματα. Η HTML μπορεί να χρησιμοποιηθεί για την προσθήκη διάταξης για ιστοσελίδες. Αλλά CSS προσφέρει περισσότερες επιλογές και είναι πιο ακριβής και εξελιγμένη. Τα Cascading Style Sheets χρησιμοποιούνται για την μορφοποίηση της διάταξης των ιστοσελίδων. Επίσης είναι δυνατόν να χρησιμοποιηθούν για να ορίσετε το style κειμένου, τα μεγέθη των πινάκων και άλλες πτυχές των ιστοσελίδων που προηγουμένως δεν μπορούσαν να οριστούν παρά μόνο στον κώδικα HTML μιας σελίδας. Το CSS βοηθάει τους προγραμματιστές ιστοσελίδων να δημιουργήσουν μια ομοιόμορφη εμφάνιση σε αρκετές σελίδες μιας τοποθεσίας Web. Αντί να καθορίζει το style του κάθε πίνακα και κάθε τμήματος κειμένου μέσα στον κώδικα HTML μιας σελίδας, μπορούν να καθοριστούν μόνο μία φορά κοινά style παρουσίασης σε ένα έγγραφο CSS. Μόλις το style οριστεί σε ένα αρχείο CSS, μπορεί να χρησιμοποιηθεί από οποιαδήποτε σελίδα που έχει παραπομπή σε αυτό. Ακόμη η χρήση CSS καθιστά εύκολη την αλλαγή style σε πολλές σελίδες ταυτόχρονα. Για παράδειγμα, ένας προγραμματιστής Web μπορεί να θελήσει να αυξήσει το μέγεθος του κειμένου από προεπιλογή 10pt σε 12pt για πενήντα σελίδες ενός δικτυακού τόπου. Εάν οι σελίδες αναφέρονται στο ίδιο αρχείο, το μέγεθος του κειμένου μπρεί να αλλάξει μόνο στο αρχείο αυτό και όλες οι σελίδες θα δείξουν το κείμενο μεγαλύτερο. Αν και το CSS είναι καταπληκτικό για τη δημιουργία style κειμένου, είναι επίσης χρήσιμο για τη μορφοποίηση των άλλων πτυχών της διάταξης της ιστοσελίδας. Για παράδειγμα, CSS μπορεί να χρησιμοποιηθεί για να καθοριστεί το κενό ανάμεσα στα κελιά, το style, το πάχος και το χρώμα των συνόρων ενός πίνακα και για το γέμισμα-πλαίσιο γύρω από τις εικόνες ή άλλα αντικείμενα. Το CSS δίνει στους προγραμματιστές ιστοσελίδων πιο ακριβή έλεγχο για το πως θα εμφανιστούν οι ι- στοσελίδες από ότι ο HTML κώδικας. Γι αυτό οι περισσότερες ιστοσελίδες περιλαμβάνουν σήμερα επικαλυπτόμενα φύλλα style(css). 2.2.4. Στατικές ιστοσελίδες Μια στατική ιστοσελίδα περιέχει Web σελίδες με περιεχόμενο που δεν αλλάζει. Κάθε σελίδα είναι κωδικοποιημένη σε HTML και εμφανίζει τις ίδιες πληροφορίες σε κάθε επισκέπτη. Στατική περιοχές είναι το πιο βασικό είδος της ιστοσελίδας και είναι το πιο εύκολο να δημιουργήσετε. Σε αντίθεση με τις δυναμικές ιστοσελίδες, οι στατικές σελίδες δεν απαιτούν κανένα προγραμματισμό Web ή το σχεδιασμό της βάσης δεδομένων. Μπορεί να κατασκευαστεί με την απλή δημιουργία μερικών σελιδών HTML και τη δημοσίευσή τους σε ένα διακομιστή Web. Από την στιγμή που οι στατικές ιστοσελίδες περιέχουν σταθερό κώδικα, το περιεχόμενο της κάθε σελίδας δεν αλλάζει, εκτός αν ενημερωθεί χειροκίνητα από τον διαχειριστή της ιστοσελίδας. Αυτό λειτουργεί καλά για μικρές ιστοσελίδες, αλλά μπορεί να κάνει μεγάλα sites με εκατοντάδες ή χιλιάδες σελίδες δύσκολο να διατηρηθεί. Γι αυτό οι μεγαλύτερες ιστοσελίδες χρησιμοποιούν συνήθως δυναμικές σελίδες, ώστε να μπορούν να ενημερωθούν απλά τροποποιώντας ένα αρχείο βάσης δε- -5-

δομένων. Οι στατικές ιστοσελίδες που περιέχουν πολλές σελίδες συχνά έχουν σχεδιαστεί χρησιμοποιώντας πρότυπα. Αυτό δίνει τη δυνατότητα να ενημερώσετε πολλές σελίδες ταυτόχρονα, και επίσης βοηθά στην παροχή μιας σταθερής διάταξης σε όλο το χώρο. Τα πλεονεκτήματα των στατικών ιστοσελίδων Κατασκευάζεται γρήγορα Χαμηλό κόστος Μειονεκτήματα των στατικών ιστοσελίδων: Απαιτεί πολύ καλή γνώση HTML και εμπειρία πάνω στην ανάπτυξη ιστοσελίδων για την ενημέρωσή τους, Η ιστοσελίδα δεν είναι τόσο χρήσιμη για τον επισκέπτη-χρήστη Το περιεχόμενο παραμένει στάσιμο 2.2.5. Δυναμικές ιστοσελίδες Το κύριο χαρακτηριστικό των δυναμικών σελίδων είναι ότι παράγονται σε πραγματικό χρόνο. Οι σελίδες αυτές περιλαμβάνουν Web κώδικα, scripting, όπως η PHP ή ASP. Όταν μια δυναμική σελίδα προσπελαστεί τότε μέσα στη σελίδα αναλύεται ο κώδικας στο διακομιστή και η HTML που προκύπτει αποστέλλεται στο πρόγραμμα περιήγησης Web του πελάτη. Οι περισσότερες μεγάλες ιστοσελίδες είναι δυναμικές, δεδομένου ότι είναι ευκολότερο να συντηρηθούν από τις στατικές ιστοσελίδες και αυτό γίνεται επειδή στις στατικές σελίδες καθεμία περιέχει περιεχόμενο μοναδικό το οποίο συνεπάγεται ότι πρέπει χειροκίνητα να ανοιχτεί, επεξεργαστεί, και δημοσιευτεί κάθε φορά που γίνεται μια αλλαγή. Οι δυναμικές σελίδες, από την άλλη έχουν πρόσβαση σε πολλές πληροφορίες μέσα από μια βάση δεδομένων. Έτσι για να τροποποιηθεί το περιεχόμενο μιας δυναμικής σελίδας, ο διαχειριστής της ιστοσελίδας χρειάζεται μόνο να ενημερώσει ένα αρχείο βάσης δεδομένων. Είναι ιδιαίτερα χρήσιμο για τα μεγάλα και πολύπλοκα sites που περιέχουν πάρα πολλές σελίδες. Ακόμη παρέχεται τη δυνατότητα σε πολλούς χρήστες να ενημερώσουν το περιεχόμενο μιας ιστοσελίδας χωρίς να επεξεργαστούν τη διάταξη των σελίδων. Οι δυναμικές ιστοσελίδες που έχουν πρόσβαση σε πληροφορίες από μια βάση δεδομένων ονομάζονται επίσης database-driven websites. Πλεονεκτήματα των δυναμικών ιστοσελίδων Πολύ πιο λειτουργική ιστοσελίδα Πολύ πιο εύκολη ενημέρωση Μειονεκτήματα των δυναμικές ιστοσελίδων Η ανάπτυξη της ιστοσελίδας είναι αργή και ακριβή Το κόστος φιλοξενίας είναι πιο υψηλό -6-

2.2.6. PHP Η PHP (αναδρομικό ακρωνύμιο του PHP: Hypertext Preprocessor) είναι μια ανοιχτού κώδικα και γενικού σκοπού γλώσσα προγραμματισμού, η οποία είναι ειδικά κατάλληλη για ανάπτυξη εφαρμογών Web. Γενικά η PHP είναι μια γλώσσα προγραμματισμού για τη δημιουργία δυναμικών σελίδων web. Μια PHP σελίδα περνά από επεξεργασία από ένα συμβατό διακομιστή του Παγκόσμιου Ιστού (π.χ. Apache), ώστε να παραχθεί σε πραγματικό χρόνο το περιεχόμενο το οποίο θα σταλεί στο πρόγραμμα περιήγησης (browser) των επισκεπτών σε μορφή κώδικα HTML. Ένα αρχείο με κώδικα PHP θα πρέπει να έχει την κατάλληλη επέκταση όπως *.php, *.php4, *.phtml κτλ. Η ενσωμάτωση κώδικα PHP μέσα σε ένα αρχείο με επέκταση *.HTML δεν θα λειτουργήσει και θα εμφανίσει στον browser τον κώδικα χωρίς επεξεργασία, εκτός κι εάν έχει γίνει η κατάλληλη ρύθμιση στα MIME types του server. Επίσης όταν ένα αρχείο έχει την επέκταση.php, θα πρέπει ο server να είναι ρυθμισμένος για να επεξεργάζεται κώδικα PHP. Ο Apache διακομιστής (server) που χρησιμοποιείται σήμερα ευρέως σε συστήματα με τα λειτουργικά συστήματα GNU/Linux και Microsoft Windows είναι κατάλληλος για την υποστήριξη της εκτέλεσης κώδικα PHP. Ιστορία Η ιστορία της PHP ξεκινά από το 1994, όταν ένας φοιτητής, ο Rasmus Lerdorf δημιούργησε χρησιμοποιώντας τη γλώσσα προγραμματισμού Perl ένα απλό script με όνομα php.cgi, για προσωπική χρήση. Το script αυτό είχε σαν σκοπό να διατηρεί μια λίστα στατιστικών για τα άτομα που έβλεπαν το online βιογραφικό του σημείωμα. Αργότερα αυτό το script το διέθεσε και σε φίλους του, οι οποίοι άρχισαν να του ζητούν να προσθέσει περισσότερες δυνατότητες. Η γλώσσα τότε ονομαζόταν PHP/FI από τα αρχικά Personal Home Page/Form Interpreter. Το 1997 η PHP/FI έφθασε στην έκδοση 2.0, βασιζόμενη αυτή τη φορά στη γλώσσα C και αριθμώντας περισσότερους από 50.000 ιστότοπους που τη χρησιμοποιούσαν, ενώ αργότερα την ίδια χρονιά οι Andi Gutmans και Zeev Suraski ξαναέγραψαν τη γλώσσα από την αρχή, βασιζόμενοι όμως αρκετά στην PHP/FI 2.0. Έτσι η PHP έφθασε στην έκδοση 3.0 η οποία θύμιζε περισσότερο τη σημερινή μορφή της. Στη συνέχεια, οι Zeev και Andi δημιούργησαν την εταιρεία Zend (από τα αρχικά των ονομάτων τους), η οποία συνεχίζει μέχρι και σήμερα την ανάπτυξη και εξέλιξη της γλώσσας PHP. Ακολούθησε το 1998 η έκδοση 4 της PHP, τον Ιούλιο του 2004 διατέθηκε η έκδοση 5, ενώ αυτή τη στιγμή έχουν ήδη διατεθεί και οι πρώτες δοκιμαστικές εκδόσεις της επερχόμενης PHP 6, για οποιονδήποτε προγραμματιστή θέλει να τη χρησιμοποιήσει. Οι περισσότεροι ιστότοποι επί του παρόντος χρησιμοποιούν κυρίως τις εκδόσεις 4 και 5 της PHP. 2.2.7. SQL Η SQL σημαίνει Structured Query Language. SQL χρησιμοποιείται για να επικοινωνεί με μια βάση δεδομένων. Σύμφωνα με την ANSI (American National Standards Institute), είναι η τυπική γλώσσα σχεσιακών συστημάτων διαχείρισης βάσεων δεδομένων. -7-

Γενικά η SQL (από το Structured Query Language) είναι μία γλώσσα υπολογιστών στις βάσεις δεδομένων, που σχεδιάστηκε για τη διαχείριση δεδομένων, σε ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (Relational Database Management System, RDBMS) και η οποία, αρχικά, βασίστηκε στη σχεσιακή άλγεβρα. Η γλώσσα περιλαμβάνει δυνατότητες ανάκτησης και ενημέρωσης δεδομένων, δημιουργίας και τροποποίησης σχημάτων και σχεσιακών πινάκων, αλλά και ελέγχου πρόσβασης στα δεδομένα. Η SQL ήταν μία από τις πρώτες γλώσσες για το σχεσιακό μοντέλο του Edgar F. Codd, στο σημαντικό άρθρο του το 1970, και έγινε η πιο ευρέως χρησιμοποιούμενη γλώσσα για τις σχεσιακές βάσεις δεδομένων. Ιστορία Η SQL αναπτύχθηκε στην IBM από τους Andrew Richardson, Donald C. Messerly και Raymond F. Boyce, στις αρχές της δεκαετίας του 1970. Αυτή η έκδοση, αποκαλούμενη αρχικά SEQUEL, είχε ως σκοπό να χειριστεί και να ανακτήσει τα στοιχεία που αποθηκεύτηκαν στο πρώτο RDBMS της IBM, το System R. Το πρώτο σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (RDBMS) ήταν το RDMBS το οποίο αναπτύχθηκε στις αρχές της δεκαετίας του 1970 στo MIT, και η Ingres η οποία αναπτύχθηκε στο Πανεπιστήμιο Μπέρκλεϋ το 1974. H Ingres ε- φάρμοσε μία γλώσσα ερωτημάτων την QUEL, η οποίο αντικαταστάθηκε αργότερα στην αγορά από την SQL. Προς το τέλος της δεκαετίας του 70 η Relational Software (τώρα Oracle Corporation) είδε τη δυνατότητα αυτών που περιγράφηκαν από Codd, Chamberlin, και Boyce και αναπτυξε την SQL βασισμένο στο RDBMS, με τις φιλοδοξίες πώλησης του στο Αμερικανικό ναυτικό, την Κεντρική Υπηρεσία Πληροφοριών και άλλες Αμερικανικές Υπηρεσίες. Το καλοκαίρι του 1979, η Relational Software εισήγαγε την πρώτη διαθέσιμη στο εμπόριο εφαρμογή του SQL και νίκησε την IBM με τη διάθεση του πρώτου εμπορικού RDBMS για μερικές εβδομάδες. Γλωσσικά στοιχεία Η γλώσσα SQL υποδιαιρείται σε διάφορα γλωσσικά στοιχεία, που περιλαμβάνουν Clauses, οι οποίες είναι σε μερικές περιπτώσεις προαιρετικές, αλλά απαραίτητα συστατικά των δηλώσεων και ερωτήσεων. Expressions που μπορούν να παραγάγουν είτε τις κλιμακωτές τιμές είτε πίνακες που αποτελούνται από στήλες και σειρές στοιχείων. Predicates που διευκρινίζουν τους όρους που μπορούν να αξιολογηθούν σαν σωστό ή λάθος. Queries που ανακτούν τα στοιχεία βασισμένες σε ειδικά κριτήρια. Statements που μπορούν να έχουν μια επίδραση στα σχήματα και τα στοιχεία, ή που μπορούν να ελέγξουν τη ροή του προγράμματος και τις συνδέσεις από άλλα προγράμματα. Το κενό αγνοείται γενικά στις Statements και τις Queries SQL. Ένα κενό είναι όμως απαραίτητο για να ξεχωρίζει Statements όπως και στην κανονική γραφή κειμένων. 2.2.8. Open Source Ο όρος Open Source περιγράφει τις πρακτικές στην παραγωγή και την ανάπτυξη που προάγουν την πρόσβαση στα βασικά υλικά του τελικού προϊόντος του. Το open source θερείται από -8-

μερικούς ότι είναι μια φιλοσοφία ενώ παλι άλλοι θεωρούν ότι είναι μια ρεαλιστική μεθοδολογία. Πριν ο όρος open source υιοθετηθεί ευρέως, οι προγραμματιστές και οι παραγωγοί χρησιμοποιούσαν μια ποικιλία από φράσεις για να περιγράψουν αυτήν την έννοια. Ο όρος Open source επικράτησε με την άνοδο του Διαδικτύου, καθώς και την ανάγκη για μαζική ανανέωση του πηγαίου κώδικα των υπολογιστών. Η ανοιχτή διάθεση του πηγαίου κώδικα πυροδότησε την αυτοπροαγωγή της πολυμορφίας των μοντέλων παραγωγής, μονοπάτια επικοινωνίας, και διαδραστικές κοινότητες. Στη συνέχεια, η νέα φράση "λογισμικό ανοιχτού κώδικα" γεννήθηκε για να περιγράψει το περιβάλλον που τα νέα πνευματικά δικαιώματα, η χορήγηση αδειών καθώς και ζητήματα καταναλωτών δημιουργήθηκαν. Ιστορία Η έννοια του ανοιχτού κώδικα και της ελεύθερης ανταλλαγής τεχνολογικών πληροφοριών υ- πήρχε πολύ πριν από τους υπολογιστές. Για παράδειγμα, οι συνταγές έχουν κοινοποιηθεί από τις αρχές του ανθρώπινου πολιτισμού. Open source μπορεί να αφορούν τις επιχειρήσεις και τους υπολογιστές, λογισμικό και την τεχνολογία. Πολύ πριν ο όρος Open Source χρησιμοποιηθεί, το λογισμικό αναπτυσσόταν από ενώσεις προγραμματιστών και ανταλλάζοταν ελεύθερα. Ξεκινώντας στις αρχές της δεκαετίας του 1950, οργανισμοί όπως το SHARE και το DECUS ανάπτυξαν ένα μεγάλο μέρος του λογισμικού που οι εταιρείες hardware έδιναν μαζί με το υλικό τους. Εκείνη την εποχή οι εταιρείες ηλεκτρονικών υπολογιστών εστίαζαν επιχείρηση hardware. Οτιδήποτε μείωνε το κόστος του λογισμικού και έκανε περισσότερο προγράμματα διαθέσιμα έκανε τις εταιρείες hardware πιο ανταγωνιστικές. Το μοντέλο αυτό άλλαξε τη δεκαετία του 1960. Το 1965 η ADR ανέπτυξε το πρώτο εμπορικό προϊόν λογισμικού, ανεξάρτητα από μια εταιρεία υλικού. Η ADR συναγωνιζόταν ένα δωρεάν πακέτο λογισμικού της IBM που αναπτύχθηκε αρχικά από την IBM πελάτες. Η ADR κατοχύρωσε με δίπλωμα ευρεσιτεχνίας το λογισμικό τους το 1968. Για να διακόψει την κοινή χρήση του προγράμματός τους, το έδιναν με μια μορφή leasing κατά την οποία η πληρωμή διαδόθηκε κατά τη διάρκεια ζωής του προϊόντος. Η ADR διατήρησε έτσι την ιδιοκτησία και μπορούσε να ελέγχει τη μεταπώληση και χρήση. Το 1969 το Υπουργείο Δικαιοσύνης των ΗΠΑ κατηγόρησε την IBM ότι καταστρέφει τις επιχειρήσεις διανέμοντας δωρεάν λογισμικό με το υλικό της IBM. Ως αποτέλεσμα αυτής της μύνησης, η IBM αποδέσμευσε το λογισμικό της, δηλαδή το λογισμικό έγινε ένα ξεχωριστό, ανεξάρτητο προϊόν από το υλικό. Το 1968 η εταιρεία Informatics διέδωσε το πρώτο εμπορικό killer-app και γρήγορα καθιέρωσε την έννοια του προϊόντος λογισμικού, της εταιρείας λογισμικού και πολύ υψηλά ποσοστά απόδοσης. Η Informatics ανέπτυξε την ιδέα της άδειας λογισμικού που είναι σήμερα σε όλη την βιομηχανία των υπολογιστών, ό- που η κυριότητα δεν μεταβιβάζεται στον πελάτη. Εφαρμογές Πολλοί τομείς της μελέτης και των κοινωνικών και πολιτικών απόψεων έχουν επηρεαστεί από την ανάπτυξη της έννοιας του ανοικτού πηγαίου κώδικα. Οι υπέρμαχοι σε ένα τομέα προωθούν συχνά την επέκταση του ανοιχτού κώδικα και σε άλλους τομείς. Για παράδειγμα, ο Linus Torvalds, δήλωσε, «το μέλλον είναι ανοιχτός κώδικας σε όλα." Ωστόσο, ο Eric Raymond και άλ- -9-

λους ιδρυτές του κινήματος ανοιχτού κώδικα έχουν μερικές φορές δημοσίως επιχειρηματολογήσει κατά εικασιών σχετικά με τις εφαρμογές έξω από το λογισμικό, λέγοντας ότι ισχυρά επιχειρήματα για το άνοιγμα του λογισμικού δεν θα πρέπει να αποδυναμώνονται από υπέρβαση σε περιοχές όπου η ιστορία είναι λιγότερο πειστικά. Αυτό μου μένει να δούμε είναι οι ευρύτερες επιπτώσεις του open-source κινήματος, καθώς και την έκταση του ρόλου του στην ανάπτυξη νέων διαδικασιών ανταλλαγής πληροφοριών. Το open-source κίνημα έχει εμπνεύσει την αύξηση της διαφάνειας και την ελευθερία σε άλλους τομείς, συμπεριλαμβανομένης της απελευθέρωσης της βιοτεχνολογικής έρευνας από CAMBIA, τη Wikipedia και άλλα έργα. Το open-source σκεπτικό έχει εφαρμοστεί και στα μέσα μαζικής ενημέρωσης, εκτός από προγράμματα ηλεκτρονικών υπολογιστών, για παράδειγμα, από την Creative Commons. Αποτελεί επίσης ένα παράδειγμα της καινοτομίας του χρήστη. Συχνά, το Open source είναι μια έκφραση που σημαίνει απλά ότι ένα σύστημα είναι διαθέσιμο σε όλους που επιθυμούν να εργαστούν σε αυτό. Η διαφορά μεταξύ crowdsourcing και open source είναι ότι η ανοιχτού κώδικα παραγωγή είναι μία δραστηριότητα συνεργασίας και ξεκίνησε εθελοντικά από μέλη του κοινού. Λογισμικό ηλεκτρονικών υπολογιστών Λογισμικό ανοιχτού κώδικα είναι το λογισμικό του οποίου ο πηγαίος κώδικας δημοσιεύεται και τίθεται στη διάθεση του κοινού που επιτρέπει σε οποιονδήποτε να αντιγράψει, να τροποποιήσει και να αναδιανείμει τον πηγαίο κώδικα χωρίς την καταβολή τελών χρήσης. Ο ανοικτός κώδικας εξελίσσεται μέσω της συνεργασίας του community. Τα communities αποτελούνται και από προγραμματιστές αλλά και πολύ μεγάλες επιχειρήσεις. Παραδείγματα προϊόντων λογισμικού ανοικτού κώδικα είναι: Εφαρμογές λογισμικού (Application software) 7-Zip - συμπιεστής αρχείων Eclipse - περιβάλλον ανάπτυξης (IDE) GIMP - επεξεργαστής γραφικών Apache OpenOffice - σουίτα γραφείου Mozilla Firefox - πρόγραμμα περιήγησης ιστοσελίδων Mozilla Thunderbird - πρόγραμμα ηλεκτρονικής αλληλογραφίας Λειτουργικά συστήματα (Operating systems) FreeBSD - λειτουργικό σύστημα που προέρχεται από το Unix Linux/GNU - λειτουργικό σύστημα της οικογένειας του UNIX OpenSolaris - λειτουργικό σύστημα της Sun Microsystems's που προήλθε από το Unix Symbian - λειτουργικό σύστημα για κινητά τηλέφωνα (smartphones) Γλώσσες προγραμματισμού (Programming languages) PHP - γλώσσα προγραμματισμού web -10-

Python - γλώσσα προγραμματισμού γενικών καθηκόντων Λογισμικό εξυπηρετητή (Server software) Apache - HTTP διακομιστής web MongoDB - document-oriented, non-relational database WordPress - blog software 2.2.9. Apache Γενικά ο Apache HTTP Server, που συνήθως αναφέρονται ως Apache, είναι ένα λογισμικό διακομιστή Web (web server). Συνήθως Apache τρέχει σε τύπο Unix λειτουργικού σύστηματος. Το Apache έχει αναπτυχθεί και συντηρείται από μια ανοιχτή κοινότητα προγραμματιστών, υπό την αιγίδα του Apache Software Foundation. Διατίθεται για μια ευρεία ποικιλία λειτουργικών συστημάτων, συμπεριλαμβανομένων των Unix, Solaris, Novell, AmigaOS, Mac OS X, Microsoft Windows, OS/2, κτλ. Κυκλοφόρησε κάτω από την άδεια χρήσης Apache και είναι λογισμικό ανοιχτού κώδικα. Από τον Απρίλιο 1996, το Apache έχει γίνει το πιο δημοφιλές λογισμικό διακομιστή HTTP που χρησιμοποιείται. Τον Μαΐου 2011 υπολογίστηκε ότι το Apache εξυπηρετεί το 63% όλων των δικτυακών τόπων και το 66% των πιο πολυσύχναστων. Χαρακτηριστικά Το Apache υποστηρίζει μια ποικιλία χαρακτηριστικών, εκ των οποίων πολλά είναι μεταγλωτισμένες ενότητες (compiled modules) που επεκτείνουν την βασική λειτουργικότητα. Το Apache μπορεί να φιλοξενήσει στατικές ιστοσελίδες, καθώς και δυναμικές που χρησιμοποιούν serverside scripting γλώσσες, όπως η PHP, Python ή Perl. Δημοφιλή μέθοδοι συμπίεσης στον Apache περιλαμβάνουν το module εξωτερικής επέκτασης, mod_gzip, με σκοπό να βοηθήσουν στην μείωση του μεγέθους των σελίδων του Διαδικτύου που εξυπηρετούνται μέσω HTTP. Το ModSecurity είναι μία open source μηχανή πηγή ανίχνευσης και πρόληψης εισβολής για τις web εφαρμογές. Το Virtual hosting επιτρέπει σε μία Apache εγκατάσταση να εξυπηρετήσει πολλές διαφορετικές ιστοσελίδες. Το Apache έχει την δυνατότηα να διαμορφώσει τα μηνύματα λάθους, DBMS βάσεις δεδομένων αυθεντικοποίησης, καθώς και το περιεχόμενο των διαπραγματεύσεων. Επίσης, υποστηρίζεται από πολλές γραφικές διεπαφές χρήστη (GUIs). Υποστηρίζει έλεγχο ταυτότητας κωδικού(password authentication) και ψηφιακά πιστοποιητικά αυθεντικοποίησης. Το Apache έχει ενσωματωμένη μηχανή αναζήτησης και ένα HTML εργαλείο που επιτρέπει και υ- ποστηρίζει FTP. 2.2.10. MySql Η MySQL είναι ένα open source σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων. Είναι βασισμένο στη γλώσσα ερώτημα δομή (SQL), το οποίο χρησιμοποιείται για την προσθήκη, αφαίρεση, και τροποποίηση πληροφοριών στη βάση δεδομένων. Πρότυπο εντολές SQL, όπως ADD, DROP, INSERT, UPDATE μπορούν να χρησιμοποιηθούν με την MySQL. Η MySQL μπο- -11-

ρεί να χρησιμοποιηθεί για μια ποικιλία εφαρμογών, αλλά την συναντάμε συνήθως σε web servers. Μια σελίδα που χρησιμοποιεί MySQL μπορεί να περιλαμβάνει ιστοσελίδες που έχουν πρόσβαση στις πληροφορίες από μια βάση δεδομένων. Αυτές οι σελίδες συχνά αναφέρεται ως "δυναμικές", που σημαίνει το περιεχόμενο της κάθε σελίδας παράγεται από μια βάση δεδομένων. Οι σελίδες που χρησιμοποιούν δυναμικές ιστοσελίδες συχνά αναφέρονται ιστοσελίδες με γνώμονα την βάση δεδομένων(database driven websites). Πολλοί database driven ιστότοποι που χρησιμοποιούν την MySQL επίσης χρησιμοποιούν μια Web γλώσσα δέσμης ενεργειών (web scripting language) όπως την PHP για να έχουν πρόσβαση σε πληροφορίες από τη βάση δεδομένων. Οι MySQL εντολές είναι δυνατόν να ενσωματωθούν στον κώδικα PHP, επιτρέποντας μέρος ή το σύνολο μιας ιστοσελίδας να δημιουργηθεί από τις πληροφορίες της βάσης δεδομένων. Επειδή και οι δύο MySQL και PHP είναι και οι δύο ανοιχτού κώδικα (που σημαίνει ότι είναι ελεύθεροι να τους κατεβάσετε και να τους χρησιμοποιήσετε), ο συνδυασμός PHP / MySQL έχει γίνει μια δημοφιλής επιλογή για τις database driven ιστοσελίδες. 2.2.11. PHPMyAdmin To phpmyadmin είναι ένα εργαλείο ανοικτού κώδικα, γραμμένο σε PHP κώδικα, με σκοπό τη διαχείριση της MySQL με τη χρήση ενός προγράμματος περιήγησης. Μπορεί να εκτελεί διάφορες εργασίες όπως τη διαχείριση βάσεων δεδομένων. Επίσης εκτελεί SQL ερωτήματα και διαχειρίζεται τους χρήστες και τις άδειες-δικαιώματα τους. Ο Tobias Ratschiller, τότε σύμβουλος και αργότερα ιδρυτής της εταιρείας λογισμικού Maguma, το 1998 άρχισε να εργάζεται σε ένα web front-end για την MySQL, βασιζόμενο σε PHP. Παράτησε το έργο το 2000, λόγω της έλλειψης χρόνου. Μέχρι εκείνη τη στιγμή, το phpmyadmin είχε ήδη γίνει ένα από τα πιο δημοφιλή εργαλεία για PHP και MySQL. Δυνατότητες που παρέχονται από το πρόγραμμα περιλαμβάνουν: Διεπαφή Web Διαχείριση βάσεις δεδομένων MySQL Εισαγωγή δεδομένων από CSV και Sql Εξαγωγή δεδομένων σε διάφορες μορφές: CSV, SQL, XML, PDF (μέσω της βιβλιοθήκης TCPDF), ISO / IEC 26300 - OpenDocument κειμένου και λογιστικών φύλλων, Word, Excel, LaTeX και άλλα. Διαχείριση πολλών διακομιστών Κτλ κτλ. 2.2.12. Xampp Το XAMPP είναι ένα πακέτο που αποτελείται από ανεξάρτητα προγράμματα που είναι εγκατεστημένα σε υπολογιστές που χρησιμοποιούν λειτουργικό σύστημα Microsoft Windows. Σας επι- -12-

τρέπει να δημιουργήσετε εφαρμογές web με την χρήση του Apache, της PHP και την βάση δεδομένων MySql. Το XAMPP είναι ένα ακρωνύμιο που σχηματίζεται από τα αρχικά του λειτουργικού συστήματος Microsoft Windows και τα κύρια συστατικά του πακέτου τα οποία είναι το Apache, MySQL και ένα από τα PHP, Perl ή Python. Το Apache είναι ένας web server. Η MySQL είναι ένα open-source βάση δεδομένων. Η PHP είναι μια γλώσσα προγραμματισμού που μπορεί να χειριστεί στοιχεία που τηρούνται στη βάση δεδομένων και να «παράγουν» ιστοσελίδες δυναμικά κάθε φορά που ζητείται περιεχόμενο από ένα πρόγραμμα περιήγησης. Άλλα προγράμματα μπορεί επίσης να περιλαμβάνονται σε ένα πακέτο, όπως το phpmyadmin το ο- ποίο παρέχει μια γραφική διεπαφή χρήστη για το διαχειριστή της βάσης δεδομένων MySQL, ή η εναλλακτική scripting γλώσσες Python ή Perl. Από την άλλη πλευρά έχουμε το LAMP το οποίο είναι ίδιο με το XAMPP αλλά για τα λειτουργικά συστήματα Linux και το MAMP για to MAC Os. Λειτουργίες Οι λειτουργίες του XAMPP Server είναι ολοκληρωμένες και εύκολες στην χρήση. Αυτές αναφέρονται παρακάτω. Με ένα αριστερό κλίκ στο εικονίδιο του XAMPP θα έχετε την δυνατότητα να: Διαχειριστείτε της υπηρεσίες του Apache και MySql Εγκαταστήσετε άλλες εκδόσεις των Apache, MySql και PHP Έχετε πρόσβαση στα log αρχεία σας Έχετε πρόσβαση στα αρχεία ρυθμίσεων Και με ένα δεξί κλίκ θα μπορείτε να: Αλλάξετε την γλώσσα του μενού Έχετε πρόσβαση στην ιστοσελίδα του XAMPP. -13-

3 ΚΥΡΙΟ ΜΕΡΟΣ ΤΗΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ 3.1 Επίλυση προβλήματος Για την επίλυση του προβλήματος θα χρειαστεί να αποκομίσουμε κάποιες βασικές γνώσεις σε κάποιες γλώσσες προγραμματισμού (PHP, SQL). Έπειτα θα γίνει ανάλυση των πληροφοριών που επιθυμούμε να προβάλουμε προκειμένου να καταλήξουμε στους διάφορους τύπους περιεχομένου και από ποιους αντίστοιχους τύπους δεδομένων αυτοί θα αποτελούνται. Θα χρειαστεί να προσδιοριστούν επαρκής και σωστές δικαιοδοσίες στις παρακάτω κατηγορίες χρηστών: Διαχειριστής ιστοσελίδας: πλήρης δικαιοδοσία Εξουσιοδοτημένος χρήστης: δυνατότητα εισαγωγής νέων εγγραφών δεδομένων με βάση τους ήδη υπάρχοντες τύπους περιεχομένου καθώς και δυνατότητα περιήγησης και προβολής σε αυτόν όλου του περιεχομένου της ιστοσελίδας. Ανώνυμος χρήστης: δυνατότητα περιήγησης και προβολής σε αυτόν όλου του προς προβολή περιεχομένου της ιστοσελίδας. Επίσης η ιστοσελίδα θα πρέπει να είναι φιλική και εύκολη στην χρήση για τους επισκέπτες της. Οι επισκέπτες θα πρέπει να βρίσκουν γρήγορα τις πληροφορίες που αναζητούν. Παρακάτω αναφέρονται συνοπτικά τα βήματα που ακολουθήσαμε. Βασική εκμάθηση των γλωσσών προγραμματισμού PHP, SQL, Javascript, HTML, CSS, AJAX Αναζήτηση στο διαδίκτυο για παρόμοιες με την δική μας ιστοσελίδες. Έρευνα για την δομή των τύπων περιεχομένων μας, προκειμένου να καταλήξουμε από τι τύπους δεδομένων θα αποτελείται ο καθένας. Εγκατάσταση του XAMPP στον υπολογιστή μας. Υλοποίηση της ιστοσελίδας -15-

3.2 ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 3.2.1. XAMPP SERVER Το XAMPP είναι ένα μη κερδοσκοπικό έργο για την προώθηση του Apache Server. Περιέχει επίσης τη MySQL, την PHP και την Perl. Εγκατάσταση και Ρυθμίσεις Κατεβάζουμε το XAMPP Lite από τη διεύθυνση www.apachefriends.org. Το XAMPP Lite είναι μια απλουστευμένη έκδοση του XAMPP η οποία περιέχει Apache, PHP, MySQL, phpmyadmin, OpenSSL και SQLite. Δεν περιέχει αναβαθμίσεις ή πρόσθετα, είναι Take-Run-Delete-Forget-it πακέτο. Κάνουμε διπλό κλικ στο αρχείο που κατεβάσαμε και κάνουμε extract στον δίσκο C:\. Έπειτα μπαίνουμε στο φάκελο C:\xampplite και εκτελούμε το αρχείο setup_xampp.bat. Όταν τελειώσει είμαστε έτοιμοι να το τρέξουμε. Προσοχή να μην τρέχει το skype στον υπολογιστή μας, το οποίο δουλεύει στην TCP πόρτα 80, όπως και ο Apache. Εκτελούμε το C:\xampplite_start.exe. Έπειτα ανοίγουμε τον browser και πληκτρολογούμε τη διεύθυνση localhost/xampp/index.php για να μπούμε στις ρυθμίσεις. Αν πάμε στο status αριστερά θα δούμε ότι όλα είναι ενεργοποιημένα και έτσι ξέρουμε ότι όλα είναι καλά. Για να τερματίσουμε το XAMPP τρέχουμε το αρχείο C:\xampplite\xampp_stop.exe και θα εμφανιστεί ένα μήνυμα SHUTDOWN COMPLETE. Δημιουργία βάσης δεδομένων Ο πιο εύκολος τρόπος για να δημιουργήσουμε μια βάση δεδομένων είναι ένα πολύ καλό εργαλείο του XAMPP το phpmyadmin. Για τα το τρέξουμε, ανοίγουμε τον browser και πάμε στη διεύθυνση localhost/phpmyadmin όπου εκεί θα δούμε το control panel του εργαλείου, όπως φαίνεται και στην παρακάτω εικόνα. -16-

3.2.2 ΔΕΥΤΕΡΕΥΟΝ ΛΟΓΙΣΜΙΚΟ Notepad++ Πρόκειται για τον πιο γνωστό επεξεργαστή κειμένου (text editor). Είναι το αγαπημένο εργαλείο συγγραφής κώδικα των προγραμματιστών, καθώς αποτελεί ένα ελαφρύ πρόγραμμα το οποίο όμως έχει πάρα πολλές δυνατότητες. Περιβάλλον εργασίας: Το περιβάλλον εργασίας είναι εξαιρετικά απλό και λειτουργικό. Στο επάνω μέρος του υπάρχει μία εργαλειοθήκη με τις κυριότερες λειτουργίες. Όλο το υπόλοιπο μέρος του καταλαμβάνεται από τον χώρο συγγραφής του κώδικα. Γύρω από τον χώρο αυτόν, μπορούν να εμφανιστούν διάφορα πλαίσια τα οποία παρουσιάζουν διάφορες πληροφορίες ανάλογα με τα plugins από τα οποία προέρχονται. Χαρακτηριστικά και λειτουργίες: Το σημαντικό του χαρακτηριστικό είναι το λεγόμενο syntax highlighting, το οποίο χρωματίζει τον κώδικα ανάλογα με την δομή του και διευκολύνει την ανάπτυξη του. Για κάθε γλώσσα προγραμματισμού υπάρχει διαφορετικό χρωματικό style. Το πρόγραμμα έχει έτοιμα style για πολλές γλώσσες και δίνει την δυνατότητα να τα ρυθμίσετε σύμφωνα με τις ανάγκες σας ή να φτιάξετε καινούργια. Μπορείτε να επεξεργαστείτε πολλά έγγραφα συγχρόνως τα οποία ανοίγουν σε ξεχωριστές καρτέλες έτσι ώστε να επεξεργάζεστε τα αρχεία ενός ολόκληρου project. Επιπλέον μπορείτε να βλέπετε και να επεξεργάζεστε δύο έγγραφα συγχρόνως χάρη στο χαρακτηριστικό multi view. Πολύ δυνατό χαρακτηριστικό του προγράμματος είναι οι εκτεταμένες δυνατότητες εύρεσης κειμένου στο αρχείο που δουλεύετε ή στα αρχεία ενός ολόκληρου φακέλου. Εκτός από τον κλασικό -17-

τρόπο έρευνας μπορεί να χρησιμοποιήσει και regular expressions για ακόμα πιο ακριβή αποτελέσματα. Το πρόγραμμα υποστηρίζει την χρήση plugins, τα οποία επεκτείνουν τις δυνατότητες του. Υ- πάρχουν πολλά τέτοια plugins για να κατεβάσετε και να στήσετε το πρόγραμμα όπως σας βολεύει. Επιπλέον προσφέρει την δυνατότητα καταγραφής και εκτέλεσης μακροεντολών, ώστε να αυτοματοποιήσετε τις εργασίες που εκτελείτε συχνά. Πληροφορίες εγκατάστασης: Το μέγεθός του είναι εξαιρετικά μικρό και οι απαιτήσεις του ελάχιστες. Για να το εγκαταστήσετε απλά ακολουθήστε τα βήματα του αντίστοιχου οδηγού. Μπορείτε να το χρησιμοποιήσετε και σαν portable πρόγραμμα, τοποθετώντας το σε ένα USB Flash disk και να το εκτελείτε σε οποιονδήποτε υπολογιστή. Για τον σκοπό αυτό κατεβάστε το αντίστοιχο zip αρχείο. Τέλος, υποστηρίζεται η χρήση της ελληνικής γλώσσας στα μενού και στα πλαίσια διαλόγου του προγράμματος. Firebug Ο Firebug είναι ένα δωρεάν εργαλείο ανοικτού κώδικα, διαθέσιμο ως επέκταση του Mozilla Firefox, το οποίο επιτρέπει την αποσφαλμάτωση, την επεξεργασία και την παρακολούθηση των CSS, HTML, DOM και JavaScript από κάθε ιστοσελίδα. Επίσης ο Fidebug διαθέτει σύστημα ανάλυσης των επιδόσεων μιας ιστοσελίδας καθώς επίσης και και μια κονσόλα στην οποία μπορείτε να παρακολουθείτε τα σφάλματα που προκύπτουν από τη JavaScript όπως επίσης να παρακολουθείτε και τις τιμές διάφορων μεταβλητών. Το εργαλείο αυτό το συνοδεύουν και άλλα εργαλεία που έχουν ως αποτέλεσμα να ενισχύουν την παραγωγικότητα των προγραμματιστών διαδικτύου. Στον Firebug θα βρείτε όλα τα εργαλεία που χρειάζεστε για να αναλύσετε, να κάνετε αποσφαλμάτωση και να παρακολουθήσετε τη JavaScript, τα CSS, την HTML και ερωτήματα AJAX. Μερικά από τα σημαντικότερα εργαλεία του Firebug είναι ο το πρόγραμμα αποσφαλμάτωσης, η κονσόλα προβολής σφαλμάτων, η γραμμή εντολών, και η μεγάλη ποικιλία εργαλείων επιθεώρησης στοιχείων HTML. Θα πρέπει να θυμάστε πως οι αλλαγές στον κώδικα της σελίδας σας που γίνονται με τον Firebug, εφαρμόζονται πάνω στο αντίγραφο της σελίδας που είναι στον περιηγητή σας και όχι στον πηγαίο κώδικα που έχετε στον πρόγραμμα συγγραφής της ιστοσελίδας σας. Κάθε φορά που κάνετε αλλαγές στον κώδικα σας μέσω του Firebug, θα πρέπει να εφαρμόζετε τις ίδιες και στον κώδικα σας αν θέλετε να είναι μόνιμες. Ο Firebug έχει δημιουργηθεί ως AddOn για τον Firefox και μπορεί να εγκατασταθεί στον Firefox όπως και όλα τα άλλα AddOn. Αν θέλετε να τρέξετε τον Firebug σε άλλο περιηγητή (πχ. -18-

Internet Explorer, Opera, Safari, κ.α.) υπάρχει μια έκδοση του σε μορφή JavaScript η οποία όμως δεν έχει όλες τις λειτουργίες του κανονικού Firebug. Για να εγκαταστήσετε τον Firebug στον Firefox, επισκεφθείτε την σελίδα http://getfirebug.com και κάντε Click στο σύνδεσμο Install Firebug on Firefox. Επιτήρηση στοιχείων της σελίδας Αυτό είναι το πρώτο βήμα για να εντοπίσετε ένα στοιχείο της HTML. Κάντε Click στο κουμπί Επιτήρηση αντικειμένου για να αλλάξει η κατάσταση του Firebug σε κατάσταση επιτήρησης. Μετακινήστε το ποντίκι σας πάνω από τα στοιχεία της σελίδας σας που θέλετε να επιτηρήσετε Κάντε Click στο στοιχείο που θέλετε να επιτηρήσετε για να αρχίσει η ανάλυση. Υπάρχει ακόμα ένας γρήγορος και εύκολος τρόπος για να κάνετε την ίδια εργασία. Εντοπίστε το στοιχείο που θέλετε να επιτηρήσετε, κάντε δεξί Click πάνω του και από το αναδυόμενο μενού επιλέξετε Επιτήρηση αντικειμένου. Τέλος, μπορείτε να επιλέξετε ένα κόμβο στο DOM και να παρακολουθήσετε από εκεί το CSS του στοιχείου, τη δομή του και τις ιδιότητες του στο DOM. Προφίλ JavaScript Πληκτρολογήστε των κώδικα που ακολουθεί σε μια σελίδα, αποθηκεύστε τη σελίδα σε ένα αρχείο HTML και ανοίξτε το με ένα Firefox που έχει ενεργοποιημένο το Firebug. -19-

(Αν ο Firebug δεν είναι ενεργοποιημένος τότε πατήστε το F12 για να τον ενεργοποιήσετε). <HTML> <head> <title>firebug</title> <script type="text/javascript"> function bar() { console.profile( Measuring time ); foo(); console.profileend(); function foo() { loop(1000); loop(100000); loop(10000); function loop(count) { for(var i=0;i<count;i++){ </script> </head> <body> Click this button to profile JavaScript <input type= button value= Start onclick= bar(); /> </body> </HTML> Αφού ανοίξετε τη σελίδα με τον Firefox κάντε Click στο κουμπί Start για να αρχίσει η ανάλυση του κώδικα JavaScript. Θα δείτε ένα πίνακα που θα δημιουργηθεί στην κονσόλα του Firebug. Η περιγραφή και ο σκοπός αυτού του πίνακα αναλύετε παρακάτω: Συνάρτηση : Αυτή η στήλη δείχνει το όνομα κάθε συνάρτησης που εκτελείτε κατά το άνοιγμα μιας σελίδας Κλήσεις : Δείχνει πόσες φορές έχει εκτελεστεί κάθε μια από τις συναρτήσεις της λίστας. Ποσοστό : Δείχνει το ποσοστό χρόνου που κατανάλωσε κάθε συνάρτηση μέχρι να ο- λοκληρωθεί η σελίδα -20-

Ίδια ώρα : Δείχνει το χρόνο που χρειάζεται για να εκτελεστεί ο κώδικας μέσα σε μια συγκεκριμένη συνάρτηση. Για παράδειγμα η συνάρτηση foo στον παράδειγμα μας δεν έχει καθόλου δικό της κώδικα, αλλά εκτελεί τη συνάρτηση loop. Για αυτό το λόγο ο χρόνος εκτέλεσης της είναι ~0ms. Αν θέλετε να δείτε λίγο χρόνο σε αυτή τη συνάρτηση προσθέστε μερικές επανάληψης σε ένα βρόχο. Χρόνος : Δείχνει το συνολικό χρόνο εκτέλεσης της συνάρτησης, από την αρχή της μέχρι το τέλος. Για παράδειγμα η συνάρτηση foo δεν έχει καθόλου δικό της κώδικα και ο χρόνος της είναι ~0ms, αλλά καλούμε άλλες συναρτήσεις μέσα σε αυτή, οπότε ο συνολικός χρόνος εκτέλεσης είναι 4.491ms για τις άλλες συναρτήσεις, που στην πράξη είναι ο συνολικός χρόνος της συνάρτησης foo και των χρόνων εκτέλεσης όλως των κλήσεων της συνάρτησης loop. Μέσος : Δείχνει το μέσο όρο εκτέλεσης κάθε συνάρτησης. Αν μια συνάρτηση την καλέσετε μόνο μια φορά τότε δεν θα έχετε και μεγάλη διαφορά από τη στήλη Χρόνος. Αν καλείτε μια συνάρτηση για περισσότερες από μια φορές τότε θα καταλάβετε τη διαφορά. Η φόρμουλα υπολογισμού του μέσου όρου είναι : Μέσος = Ίδια ώρα / Κλήσεις Στήλες Ελ. και Μεγ. : Δείχνουν τον ελάχιστο και τον μέγιστο χρόνο εκτέλεσης κάθε συνάρτησης. Στο παράδειγμα μας καλούμε τη συνάρτηση loop 3 φορές. Όταν περνάμε στην συνάρτηση την παράμετρο 1000 θα πρέπει να πάρει περίπου 0.0045ms για να ε- κτελεστεί, αλλά όταν περνάμε ως παράμετρο το 100000 χρειάζεται περισσότερο χρόνο να εκτελεστεί και αυτός θα πρέπει να είναι περίπου 4.036ms. Το αποτέλεσμα είναι πως η στήλη Ελ. θα πρέπει να έχει την τιμή 0.0045ms και η στήλη Μεγ. θα πρέπει να έχει την τιμή 4.036ms για την ίδια συνάρτηση. Αρχείο : Δείχνει το όνομα του αρχείου και τον αριθμό της γραμμής μέσα στο αρχείο που περιέχει τη συνάρτηση Αποσφαλμάτωση JavaScript σεναρίων Ο Firebug σας επιτρέπει να εισάγετε σημεία διακοπής στην εκτέλεση του κώδικα JavaScript και εκτέλεση βήμα βήμα του κώδικα. Δημιουργήστε μια σελίδα HTML και βάλτε τον παρακάτω κώδικα. -21-

<HTML> <head> <title>javascript Debugging</title> <script type="text/javascript"> function populatediv() { var divelement = document.getelementbyid("messagelabel"); divelement.innerhtml = "Lorem ipsum dollor"; </script> </head> <body> <div id="messagelabel"></div> <input type="button" value="click Me!" onclick="populatediv();" /> </body> </HTML> Ανοίξτε τώρα αυτή τη σελίδα με τον Firefox και κάτω από την καρτέλα Σενάριο εντολών, μετακινήστε το ποντίκι σας πάνω από τη γραμμή που φαίνεται και στην εικόνα παρακάτω και κάντε click αριστερά από τον αριθμό γραμμής για να δημιουργήσετε ένα σημείο διακοπής Για να βεβαιωθείτε ότι έχετε εισάγει ένα σημείο διακοπής στον κώδικα σας μπορείτε να πάτε στην καρτέλα Σημεία διακοπής στα δεξιά της καρτέλας Σενάρια εντολών. Εκεί θα εντοπίσετε όλα τα σημεία διακοπής που έχετε εισάγει στα σενάρια σας. Τώρα είστε έτοιμοι να παρακολουθήσετε τη συμβαίνει στον κώδικα σας. Κάντε Click στο κουμπί Click Me! που έχουμε μέσα στη σελίδα μας για να αρχίσει η εκτέλεση των εντολών. Μετά το Click θα παρατηρήσετε πως η εκτέλεση του κώδικα σταματάει στην γραμμή που βάλαμε το σημείο διακοπής. -22-

Τώρα είστε σε θέση να εκτελέσετε τον κώδικα σας βήμα βήμα πατώντας ένα από αυτά τα κουμπιά (Συνέχεια, Βήμα μέσα, Προσπέρασε, Βήμα Έξω) που βρίσκονται κάτω από την καρτέλα Σενάρια εντολών Συνέχεια (F8) : Σας επιτρέπει να συνεχίσετε την εκτέλεση του κώδικα, μετά από παύση από κάποιο σημείο διακοπής. Προσπέρασε (F10) : Σας επιτρέπει να συνεχίσετε την εκτέλεση του κώδικα χωρίς να περάσετε μέσα από τη συνάρτηση. Βήμα μέσα (F11) : Σας επιτρέπει να συνεχίσετε μέσα από τον κώδικα μιας συνάρτησης. Βήμα έξω : Σας επιτρέπει να συνεχίσετε την εκτέλεση του κώδικα και να σταματήσει στο επόμενο σημείο διακοπής που έχετε ορίσει Γρήγορη επεξεργασία των CSS Με τον Firebug μπορείτε να προσθέσετε, να διαγράψετε και να επεξεργαστείτε τις ιδιότητες CSS ενός στοιχείου. Αυτό είναι ένα από τα ποιο χρήσιμα χαρακτηριστικά του Firebug, αφού σας επιτρέπει να διορθώσετε προβλήματα που προκύπτουν από τη CSS γρήγορα και εύκολα. Με αυτό το εργαλείο οι αλλαγές που πραγματοποιούνται στην καρτέλα CSS του Firebug εφαρμόζονται άμεσα στο αντίγραφο της σελίδας που βλέπετε την δεδομένη χρονική στιγμή. Για παράδειγμα αν θέλετε να αλλάξετε το χρώμα ενός στοιχείου που επιτηρείτε κάντε τα ακόλουθα : Ανοίξτε τη σελίδα που δημιουργήσατε στο προηγούμενο παράδειγμα και κάντε Click στο κουμπί Click Me! Κάντε δεξί Click στο κείμενο που προκύπτει μετά το Click στο κουμπί και επιλέξτε Επιτήρηση αντικειμένου από το αναδυόμενο μενού. Στην καρτέλα HTML του Firebug θα εμφανιστεί το επιλεγμένο στοιχείο μέσα στον κώδικα της σελίδας σας. Στα δεξιά της καρτέλας HTML υπάρχει μια σειρά από άλλες καρτέλες, επιλέξτε την καρτέλα CSS και από κάτω κάντε δεξί Click και επιλέξτε Επεξεργασία style στοιχείου από το αναδυόμενο μενού Τώρα πληκτρολογήστε την ιδιότητα color και μετά αμέσως το πλήκτρο Tab. -23-

Τώρα πληκτρολογήστε το χρώμα που θέλετε είτε ονομαστικά είτε με rgb αναπαράσταση είτε με δεκαεξαδική αναπαράσταση (πχ : #AF0, #333333) και πατήστε Enter. Εκτός από την αυτόματη συμπλήρωση κώδικα στην JavaScript ο Firebug διαθέτει αυτόματη συμπλήρωση και για τα CSS. Για να απενεργοποιήσετε ένα κανόνα CSS, βάλτε το ποντίκι σας πάνω από τον κανόνα στα α- ριστερά του πάνω από το εικονίδιο και κάντε Click Για να αλλάξετε την τιμή κάποιου κανόνα κάντε απλά ένα Click στην τιμή του κανόνα και αμέσως η τιμή του θα μετατραπεί σε κείμενο για να το επεξεργαστείτε. Επίσης αν έχετε αριθμητικές τιμές σε κάποιο κανόνα (πχ. width: 300px) μπορείτε να χρησιμοποιήσετε τα βελάκια πάνω και κάτω για να αλλάξετε τις τιμές διαδοχικά χωρίς να πληκτρολογείτε κάθε φορά νέα τιμή. 3.3 ΠΡΑΓΜΑΤΟΠΟΙΗΣΗ ΤΗΣ ΕΡΓΑΣΙΑΣ Εδώ θα παραθέσουμε τον κώδικα της πτυχιακής εργασίας. index.php <?php session_start();?> <?php require('header.php');?> <?php require('menu.php');?> <?php require('db_info.php');?> <?php $mycon = new PDO("mysql:host=$dbhost;dbname=$dbname;", $dbuser, $dbpass); $sql="select * FROM images GROUP BY name LIMIT 5"; $statement= $mycon->prepare($sql); $result=$statement->execute(); $result=$statement->fetchall(pdo::fetch_assoc); $statement->closecursor(); $i=0; foreach ($result as $row) { $file[$i]='uploads/'.$row['filename']; $desc[$i]=$row['description']; $i++; $mycon=null; -24-