Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ...

50
ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΑΝΑΠΤΥΞΗ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΑΓΟΡΑΠΩΛΗΣΙΩΝ ΜΕΤΑΧΕΙΡΙΣΜΕΝΩΝ ΑΥΤΟΚΙΝΗΤΩΝ» Εισηγητής: Καλογεράκης Παναγιώτης Σπουδαστής: Μάρκου Ιωάννης

Transcript of Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ...

Page 1: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ

ΙΔΡΥΜΑ ΚΡΗΤΗΣ

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

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

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

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

Εισηγητής: Καλογεράκης Παναγιώτης

Σπουδαστής: Μάρκου Ιωάννης

Page 2: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Ευχαριστίες

Θα ήθελα να ευχαριστήσω όλους όσους συμμετείχαν και συνέβαλαν

στην ολοκλήρωση της παρούσας πτυχιακής εργασίας. Ειδικότερα τον

εισηγητή μου, κ. Καλογεράκη Παναγιώτη για την βοήθεια και την

καθοδήγησή του. Τα μέλη της εξεταστικής επιτροπής κ. Βαρδιάμπαση

Δημήτριο και κ. Φραγκοπούλου Παρασκευή που μου έκαναν την τιμή να

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

Νικηφορίδη Γεώργιο, Γόγονα Γεώργιο, Σανταμούρη Μιχαήλ, Κατσίλη

Ιωάννη, Σαββάκη Ιωάννη, Σερίφη Δημήτριο, Μουχρίτσα Ζωή, Καβαζίδη

Μερόπη, Παπαδήμα Παύλο, Καββουσανό Δημήτριο, Ξανθάκη Χρήστο,

Τσούνη Αριστείδη, Σέλιμη Βασίλειο και Παππά Ιωάννη, για την πραγματική

στήριξη και βοήθεια που μας πρόσφεραν. Ιδιαίτερα ευχαριστούμε τους

Δρακουλάκη Στυλιανό, Σαββάκη Ιωάννα, Γαργουλάκη Νικήτα, Μελιδόνη

Ευάγγελο και Αποστολάκη Σπύρο όπου με τις οδηγίες και τις παραινέσεις

τους, με κατεύθυναν σωστά στα πρώτα δύσκολα βήματά μου. Τέλος την

οικογένεια μου, που όλα αυτά τα χρόνια με στήριξε από όλες τις πλευρές.

Σας ευχαριστώ,

Γιάννης

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

- 2 -

Page 3: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

ΠΕΡΙΕΧΟΜΕΝΑ

1.Κεφάλαιο - Web Εφαρμογής...............................................................................5

1.1 Περιγραφή Web Εφαρμογής.................................................................5

1.2 Πλεονεκτήματα Web Εφαρμογής..........................................................5

2.Κεφάλαιο - Πλατφόρμες και Τεχνικές Ανάπτυξης................................................7

2.1 Apache web Server..............................................................................7

2.2 PHP......................................................................................................9

2.2.1 PHP Script Language..............................................................9

2.2.2 Δυνατότητες PHP..................................................................10

2.3 MySQL Database................................................................................12

2.4 SMTP Server.......................................................................................13

2.5 Διακομιστής Web….............................................................................14

2.6 HTTP..................................................................................................14

2.7 Τύποι MIME….....................................................................................15

2.8 Κωδικοί Καταστάσεως.........................................................................17

2.9 JavaScript..........................................................................................18

2.10 AJAX................................................................................................19

2.10.1 AJAX χρησιμοποιώντας XML και HTTP αιτήματα..................19

2.10.2 AJAX και PHP.....................................................................19

2.11 Μορφή σελίδων................................................................................20

2.12 Υποστήριξη των CSS από τους Browsers...........................................20

2.13 HTML................................................................................................21

2.14 Γλώσσες Προγραμματισμού στο Internet..........................................22

3.Κεφάλαιο – Εργαλεία Ανάπτυξης......................................................................23

3.1 Adobe Dreamweaver CS3...................................................................23

3.2 Adobe Photoshop CS3........................................................................24

4.Κεφάλαιο – Βάση Δεδομένων...........................................................................25

4.1 Αρχιτεκτονική της Βάσης Δεδομένων..................................................25

4.1.1 Πίνακας brands....................................................................25

4.1.2 Πίνακας models….................................................................25

4.1.3 Πίνακας categories...............................................................26

4.1.4 Πίνακας cars…......................................................................27

4.1.5 Πίνακας users.......................................................................28

4.1.6 Πίνακας newsletters…..........................................................29

4.2 Σύνδεση στη Βάση Δεδομένων............................................................29

4.3 Ασφάλεια Βάσης Δεδομένων...............................................................30

4.4 Διαχείριση της Βάσης Δεδομένων.......................................................30

4.4.1 phpMyAdmin Database Manager Version 2.9.2.....................30

4.4.2 MySQL Administrator...........................................................31

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

- 3 -

Page 4: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

4.5 Σχέσεις Πινάκων................................................................................31

4.6 Πλατφόρμα Συστήματος.....................................................................31

5.Κεφάλαιο –Ανάλυση της εφαρμογής.................................................................32

5.1 Αρχική Σελίδα – Η φόρμα γρήγορης αναζήτησης................................32

5.2 Η φόρμα σύνθετης αναζήτησης..........................................................33

5.3 Αποτελέσματα αναζήτησης.................................................................34

5.4 Αναλυτική παρουσίαση αυτοκινήτου – Επικοινωνία με το κάτοχο........35

5.5 Φόρμα εγγραφής μέλους....................................................................36

5.6 Φόρμα εισόδου μέλους.......................................................................37

5.7 Φόρμα υπενθύμισης κωδικού πρόσβασης...........................................37

5.8 Σελίδα διαχείρισης μέλους..................................................................38

5.9 Φόρμα εισαγωγής νέου αυτοκινήτου...................................................39

5.10 Φόρμα διαγραφής αυτοκινήτου........................................................40

5.11 Φόρμα επεξεργασίας αυτοκινήτου....................................................41

5.12 Φόρμα επεξεργασίας λογαριασμού μέλους........................................42

5.13 Φόρμα αλλαγής κωδικού πρόσβασης................................................42

5.14 Φόρμα διαγραφής μέλους.................................................................43

5.15 Έξοδος μέλους.................................................................................43

5.16 Φόρμα εγγραφής - διαγραφείς στα Newsletters................................44

5.17 Κεντρική σελίδα Διαχειριστή.............................................................45

5.18 Φόρμα καταχώρισης.........................................................................46

5.19 Φόρμα διαγραφής............................................................................47

5.20 Φόρμα ενημέρωσης..........................................................................48

5.21 Ασφάλεια Συστήματος......................................................................49

5.21.1 Προστασία Κωδικών Πρόσβασης.........................................49

5.21.2 Προστασία Πληροφοριών Μελών........................................49

6.Κεφάλαιο – Βιβλιογραφία – Πηγές...................................................................50

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

- 4 -

Page 5: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Κεφάλαιο 1 - Web Εφαρμογής 1.1 Περιγραφή Web Εφαρμογής

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

Ο χρήστης της εφαρμογής είναι είτε υποψήφιος αγοραστής είτε υποψήφιος πωλητής μεταχειρισμένων αυτοκινήτων. Στην περίπτωση που ενδιαφέρεται να αγοράσει ένα αυτοκίνητο, η εφαρμογή του δίδει την δυνατότητα αναζήτησης βάση σύνθετων φίλτρων στην βάση δεδομένων των προς πώληση μεταχειρισμένων αυτοκινήτων. Τα φίλτρα αυτά εκτός από βασικά χαρακτηριστικά του αυτοκινήτου όπως μάρκα και μοντέλο, περιλαμβάνουν τεχνικά χαρακτηριστικά και αξεσουάρ, έτσι ώστε το αποτέλεσμα της αναζήτησης να καλύπτει όσο το δυνατό περισσότερο τις απαιτήσεις και τις ανάγκες του χρηστή. Όταν εκτελεστεί μια αναζήτηση τα αποτελέσματα που θα επιστρέψει θα τοποθετούνται με μια συνοπτική περιγραφή στη σελίδα, ταξινομημένα βάση της τιμής του αυτοκινήτου, από την μικρότερη στη μεγαλύτερη. Επιλέγοντας μια από τις εγγραφές θα εμφανίζεται η πλήρης περιγραφή του αυτοκινήτου (χαρακτηριστικά, αξεσουάρ, τιμή, φωτογραφία, στοιχεία ιδιοκτήτη, τρόποι επικοινωνίας). Τέλος ο χρήστης έχει τι δυνατότητα να εγγράφει στα Newsletters και να ενημερώνεται για όλα τα νέα αυτοκίνητα που καταχωρούνται στη σελίδα ή να ενημερώνεται για συγκεκριμένα αυτοκίνητα που τον ενδιαφέρουν.

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

1.2 Πλεονεκτήματα Web Εφαρμογής

Στις μέρες μας τα ηλεκτρονικά καταστήματα ευδοκιμούν, και αυτό γιατί προσφέρουν στον καταναλωτή πολλές επιλογές και ευκολίες. Με λίγα λόγια, ο καταναλωτής μπορεί να ψωνίζει από το σπίτι, ή το γραφείο ή από οπουδήποτε έχει πρόσβαση στο διαδίκτυο , όποια ώρα και ημέρα θέλει, από οποιαδήποτε πόλη ή χώρα θέλει. Έχει τη δυνατότητα να επισκεφτεί ταυτόχρονα πολλά καταστήματα, να συγκρίνει προϊόντα αναμεταξύ τους και να καταλήξει σε αυτό που ανταποκρίνεται περισσότερο στις ανάγκες του. Με αυτό το τρόπο ο καταναλωτής εξοικονομεί χρόνο και χρήμα.

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

- 5 -

Page 6: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Οι συνηθέστεροι τρόποι αγοροπωλησίας μεταχειρισμένων αυτοκίνητων είναι μέσω καταστημάτων που πωλούν μεταχειρισμένα αυτοκίνητα η μέσω περιοδικών που δημοσιεύουν αγγελίες μεταχειρισμένων αυτοκινήτων. Τα πλεονεκτήματα μιας διαδικτυακής εφαρμογής που απευθύνετε σε αυτόν το τομέα της αγοράς είναι πολλά. Ας τα αναλύσουμε ένα ένα συγκρίνοντας τα με τους δυο εναλλακτικούς τρόπους αγοροπωλησίας που προαναφέραμε. Το βασικότερο πλεονέκτημα μιας διαδικτυακής εφαρμογής είναι ότι είναι πρόσβασημη από παντού και πάντα, με συνέπεια να έχει μεγαλύτερο κοινό. Ένα κατάστημα απευθύνετε στο αγοραστικό κοινό μιας συγκεκριμένης περιοχής συγκεκριμένες ημέρες και ώρες, ακόμα και τα περιοδικά περιορίζονται εντός των συνόρων της χώρας. Ένα ακόμη θετικό είναι ότι η διαδικτυακή εφαρμογή είναι δωρεάν, έτσι ο χρηστής έχει τη δυνατότητα να καταχωρεί ή να αναζητεί αυτοκίνητα χωρίς κανένα κόστος. Η ιστοσελίδα αυτή μπορεί να φιλοξενήσει απεριόριστο αριθμό μεταχειρισμένων αυτοκινήτων, κάτι στο οποίο υστερούν και τα καταστήματα και τα περιοδικά. Ο επισκέπτης της ιστοσελίδας δεν είναι απαραίτητο να δει όλες τις καταχωρίσεις. Έχει τη δυνατότητα να κάνει αναζήτηση βάσει όσων κριτηρίων επιθυμεί, έτσι ώστε να δει μόνο όσες καταχωρίσεις τον ενδιαφέρουν. Κάτι το οποίο του εξοικονομεί χρόνο και παράλληλα δεν τον κουράζει με καταχωρίσεις που δεν τον ενδιαφέρουν. Επίσης έχει τι δυνατότητα να εγγράφει στα newsletters και να ενημερώνεται για όλες της νέες καταχωρίσεις ή για όσες έχει δήλωση πως τον ενδιαφέρουν. Ένα ακόμα πλεονέκτημα είναι πως δεν υπάρχει κανένας μεσάζοντας, και αυτό γιατί ο χρηστής που ενδιαφέρεται να αγοράσει κάποιο αυτοκίνητο έρχεται κατευθείαν σε επαφή με τον πωλητή του αυτοκινήτου. Η διαδικτυακή αυτή εφαρμογή υπερτερεί σε σχέση με τα καταστήματα και τα περιοδικά στο θέμα της ενημέρωσης. Η ιστοσελίδα μπορεί να ανανεωθεί δυναμικά ανά πάσα στιγμή. Αυτό σημαίνει πως τη στιγμή που ένας χρήστης κάνει μια καταχώρηση, θα είναι άμεσα διαθέσιμη. Σε αντίθεση με τα περιοδικά που ενημερώνουν το περιεχόμενο τους κυρίως κάθε μήνα, και τα καταστήματα που η ανανέωση τους συνήθως εξαρτάται από τις πωλήσεις τους.

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

- 6 -

Page 7: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Κεφάλαιο 2 - Πλατφόρμες και Τεχνικές Ανάπτυξης

2.1 Apache web Server

Ο Apache είναι ο πιο διάσημος διακομιστής που χρησιμοποιείται στο web. Είναι διαθέσιμος για μια ποικιλία διαφορετικών λειτουργικών συστημάτων, με το UNIX να είναι το πιο διάσημο. Ο Apache είναι σημαντικός για δύο λόγους: πρώτον, διατίθεται δωρεάν και δεύτερον, ο πηγαίος κώδικας του είναι ελεύθερα διαθέσιμος. Ο Apache αποτελεί σημαντικό μέρος ενός κινήματος γνωστού ως Κίνημα Ανοικτού Κώδικα. Η φιλοσοφία πίσω από αυτό είναι ότι το λογισμικό έχει γίνει τόσο "μπαρόκ" και περίπλοκο που καμία εταιρεία δεν μπορεί να έχει πλήρη γνώση όλων των προβλημάτων και των λαθών που μπορεί να εμφανιστούν. Ο μόνος τρόπος με τον οποίο μπορεί να γίνει αυτό είναι μέσω της διάθεσης σε μια μεγάλη κοινότητα προγραμματιστών του πηγαίου κώδικα και της άδειας σε αυτούς να αναζητήσουν και να διορθώσουν προβλήματα σ' αυτόν. Μ' αυτόν τον τρόπο θα υπάρχει μία γρήγορη διάδοση διορθώσεων και βελτιώσεων των προγραμμάτων. Ο διακομιστής Web, μαζί με τα επιχειρηματικά αντικείμενα μιας εφαρμογής, λειτουργεί ως το μεσαίο επίπεδο ενός συστήματος τριών επιπέδων, με τον browser να έχει την θέση του επιπέδου παρουσίασης και τον διακομιστή βάσης δεδομένων να λειτουργεί ως το επίπεδο της βάσης δεδομένων.

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

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

- 7 -

Page 8: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Ο Apache Web Server είναι ο πιο διαδεδομένος εξυπηρετητής στο Internet (σύμφωνα με τη σχετική έρευνα της Netscraft, καθώς αποτελεί ίσως τον περισσότερο προηγμένο τεχνολογικά, σταθερό και αποδοτικό web server.

Total Sites Across All Domains August 1995 - June 2007

Market Share for Top Servers Across All Domains August 1995 - June 2007

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

- 8 -

Page 9: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Top Developers

Developer May 2007 Percent June 2007 Percent Change

Apache 66087698 56.00 65588298 53.76 -2.24

Microsoft 37170290 31.49 38836030 31.83 0.34

Google 2753041 2.33 4872765 3.99 1.66

Sun 2141252 1.81 2273173 1.86 0.05

lighttpd 1411788 1.20 1470930 1.21 0.01

Zeus 491989 0.42 480698 0.39 -0.03

2.2 PHP

2.2.1 PHP Script Language

Η PHP, της οποίας τα αρχικά αντιπροσωπεύουν το "PHP: Hypertext Preprocessor" είναι μια ευρέως χρησιμοποιούμενη, ανοιχτού κώδικα, γενικού σκοπού scripting γλώσσα προγραμματισμού, η οποία είναι ειδικά κατάλληλη για ανάπτυξη εφαρμογών για το Web και μπορεί να ενσωματωθεί στην HTML.

Απλή απάντηση, αλλά τι σημαίνει; Ένα παράδειγμα:

<html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html>

Παρατηρήστε πως αυτό είναι διαφορετικό από ένα script γραμμένο σε άλλες γλώσσες προγραμματισμού όπως η Perl ή η C : Αντί να γράφετε ένα πρόγραμμα με πολλές εντολές για να εξάγετε HTML, γράφετε ένα HTML script με κάποιο ενσωματωμένο κώδικα για να κάνει κάτι (σε αυτή την περίπτωση, να εμφανίζει κάποιο κείμενο). Ο κώδικας PHP είναι εσώκλειστος σε ειδικά tags (ετικέτες) αρχής και τέλους που σας επιτρέπουν να μεταφέρεστε μέσα και έξω από το "PHP mode" (PHP τρόπο λειτουργίας). Αυτό που διαχωρίζει την PHP από κάτι σαν client-side Javascript είναι ότι ο κώδικας εκτελείται στον server (εξυπηρετητή). Αν είχατε ένα script σαν το παραπάνω στον server σας, ο client θα έπαιρνε τα αποτελέσματα της εκτέλεσης αυτού του script, χωρίς να υπάρχει κανένας τρόπος να καταλάβει τι κώδικας υπάρχει από κάτω. Μπορείτε ακόμη να ρυθμίσετε τον

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

- 9 -

Page 10: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

web server σας να χειρίζεται όλα τα HTML αρχεία σας με την PHP, και τότε πραγματικά δεν υπάρχει τρόπος ο χρήστης να καταλάβει τι έχετε κάτω από το μανίκι σας. Τα καλύτερο πράγμα στην PHP είναι ότι είναι εξαιρετικά απλή για ένα νεοφερμένο αλλά προσφέρει πολλές προηγμένα χαρακτηριστικά για ένα επαγγελματία προγραμματιστή. Μην τρομάζετε όταν διαβάζετε την μακροσκελή λίστα με τα χαρακτηριστικά της PHP. Μπορείτε να εξοικειωθείτε μέσα σε πολύ λίγο χρόνο και να αρχίσετε να γράφετε απλά script σε λίγες ώρες. Αν και η ανάπτυξη της PHP εστιάζεται σε server-side scripting, μπορείτε να κάνετε πολύ περισσότερα με αυτή.

2.2.2 Δυνατότητες PHP

Η PHP επικεντρώνεται κυρίως στο server-side scripting, έτσι μπορείτε να κάνετε οτιδήποτε ένα άλλο CGI πρόγραμμα μπορεί να κάνει, όπως να μαζέψει δεδομένα, να παράγει δυναμικό περιεχόμενο σελίδων, ή να στείλει και να πάρει cookies. Αλλά η PHP μπορεί να κάνει πολύ περισσότερα.

Υπάρχουν τρεις κύριοι τομείς που χρησιμοποιείται ένα PHP script.

• Server-side scripting. Αυτό είναι το πιο παραδοσιακό και το κύριο πεδίο για την PHP. Χρειάζεστε τρία πράγματα για να δουλέψει αυτό. Τον PHP μεταγλωττιστή (parser) (CGI ή server module), ένα webserver (εξυπηρετητή σελίδων) και ένα web browser ("φυλλομετρητή"). Πρέπει να τρέξετε τον webserver, με μια συνδεδεμένη εγκατάσταση της PHP. Μπορείτε να προσπελάσετε τα αποτελέσματα του PHP προγράμματος με ένα web browser, βλέποντας την σελίδα PHP μέσα από τον server. Για περισσότερες πληροφορίες, δείτε την παράγραφο οδηγίες εγκατάστασης.

• Command line scripting. Μπορείτε να φτιάξετε ένα PHP script για να το τρέχετε χωρίς server ή browser. Χρειάζεστε μόνο τον PHP μεταγλωττιστή για να την χρησιμοποιήσετε με αυτό τον τρόπο. Αυτός ο τύπος είναι ιδανικός για script που εκτελούνται συχνά με τη χρήση της cron (σε *nix ή Linux) ή με τον Task Scheduler (στα Windows). Αυτά τα script μπορούν επίσης να χρησιμοποιηθούν για απλές εργασίες επεξεργασίες κειμένου. Δείτε την ενότητα σχετικά με την Command line χρήση της PHP για περισσότερες πληροφορίες.

• Εγγραφή client-side GUI εφαρμογών (Γραφικά περιβάλλοντα χρηστών). Η PHP ίσως να μην είναι η πιο καλή γλώσσα για να γράψει κανείς παραθυρικές εφαρμογές, αλλά αν ξέρετε PHP πολύ καλά και θέλετε να χρησιμοποιήσετε κάποια προχωρημένα χαρακτηριστικά της PHP στις client-side εφαρμογές σας, μπορείτε επίσης να χρησιμοποιήσετε το PHP-GTK για αυτού του είδους τα προγράμματα. Έχετε επίσης τη δυνατότητα να γράφετε cross-platform εφαρμογές με αυτό τον τρόπο. Το PHP-GTK είναι μια επέκταση της PHP και δεν συμπεριλαμβάνεται στην κύρια διανομή.

Η PHP μπορεί να χρησιμοποιηθεί σε όλα τα κύρια λειτουργικά συστήματα, συμπεριλαμβανομένου του Linux, πολλών εκδοχών του Unix (HP-UX, Solaris και OpenBSD), Microsoft Windows, Mac OS X, RISC OS και πιθανώς σε άλλα. Η PHP υποστηρίζει επίσης τους Apache, Microsoft Internet Information Server, Personal Web Server, Netscape και iPlanet servers,

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

- 10 -

Page 11: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, και πολλούς άλλους webserver. Για την πλειοψηφία των server η PHP έχει ένα module, για τους υπόλοιπους η PHP μπορεί να λειτουργήσει ως ένας CGI επεξεργαστής. Έτσι με την PHP έχετε την ελευθερία επιλογής ενός λειτουργικού συστήματος και ενός web server. Επιπλέον, έχετε επίσης την ελευθερία να χρησιμοποιήσετε συναρτησιακό (procedural) ή αντικειμενοστραφή (object oriented) προγραμματισμό ή μια ανάμειξη τους. Αν και η παρούσα έκδοση δεν υποστηρίζει όλα τα πρότυπα χαρακτηριστικά, μεγάλες βιβλιοθήκες κώδικα και μεγάλες εφαρμογές (συμπεριλαμβανομένης και της βιβλιοθήκης PEAR) είναι γραμμένες μόνο με αντικειμενοστραφή κώδικα. Με την PHP δεν είστε περιορισμένοι να εξάγετε HTML. Οι δυνατότητες της PHP συμπεριλαμβάνουν την εξαγωγή εικόνων, αρχείων PDF, ακόμη και ταινίες Flash (χρησιμοποιώντας τα libswf και Ming) παράγονται αμέσως. Μπορείτε επίσης να εξάγετε εύκολα οποιοδήποτε κείμενο όπως XHTML και οποιοδήποτε άλλο XML αρχείο. Η PHP μπορεί να δημιουργεί αυτόματα αυτά τα αρχεία και να τα αποθηκεύει στο σύστημα αρχείων, αντί να τα εκτυπώνει, αποτελώντας έτσι μια server-side cache για το δυναμικό σας περιεχόμενο.

Ένα από τα πιο δυνατά και σημαντικά χαρακτηριστικά της PHP είναι η υποστήριξη που έχει για ένα μεγάλο σύνολο βάσεων δεδομένων. Η συγγραφή μιας σελίδας που υποστηρίζει βάσεις δεδομένων είναι εξαιρετικά απλή. Οι εξής βάσεις δεδομένων υποστηρίζονται μέχρι στιγμής:

Adabas D Ingres Oracle (OCI7 and OCI8) dBase InterBase Ovrimos Empress FrontBase PostgreSQL FilePro (read-only) mSQL Solid Hyperwave Direct MS-SQL Sybase IBM DB2 MySQL Velocis Informix ODBC Unix dbm

Έχουμε επίσης μια αφαιρετική επέκταση DBX βάσεων δεδομένων (DBX database abstraction extension) που σας επιτρέπει διάφανα να χρησιμοποιείτε οποιαδήποτε βάση δεδομένων υποστηρίζεται από αυτή την επέκταση. Επιπλέον η PHP υποστηρίζει το ODBC, το Open Database Connection standard (Ανοιχτό πρότυπο Σύνδεσης Βάσεων δεδομένων) έτσι μπορείτε να συνδεθείτε σε οποιαδήποτε βάση δεδομένων που υποστηρίζει αυτό το παγκόσμιο πρότυπο. Η PHP έχει επίσης υποστήριξη για επικοινωνία με άλλες υπηρεσίες χρησιμοποιώντας πρωτόκολλα όπως LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (στα Windows) και αμέτρητα άλλα. Μπορείτε επίσης να ανοίξετε raw network sockets και να αλληλεπιδράσετε με οποιοδήποτε άλλο πρωτόκολλο. Η PHP έχει ακόμη υποστήριξη για την περίπλοκη ανταλλαγή δεδομένων WDDX μεταξύ σχεδόν όλων των Web programming γλωσσών. Μιλώντας για δια-επικοινωνία, η PHP υποστηρίζει instantiation αντικειμένων Java και τα χρησιμοποιεί διάφανα σαν αντικείμενα PHP. Μπορείτε επίσης να χρησιμοποιήσετε την CORBA επέκταση μας για να προσπελάσετε remote (απομακρυσμένα) αντικείμενα. Η PHP έχει εξαιρετικά χρήσιμα χαρακτηριστικά επεξεργασίας κειμένων, από την POSIX επέκταση ή τις

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

- 11 -

Page 12: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Perl regular expressions μέχρι XML parsing αρχείων. Για τη μεταγλώττιση και την πρόσβαση αρχείων XML, υποστηρίζουμε τα πρότυπα SAX και DOM. Μπορείτε να χρησιμοποιήσετε την XSLT επέκταση μας για να μετατρέπετε τα XML αρχεία σε άλλες μορφές. Καθώς χρησιμοποιείτε την PHP στον τομέα του ecommerce, θα βρείτε τις Cybercash payment, CyberMUT, VeriSign Payflow Pro και CCVS συναρτήσεις χρήσιμες για τα online προγράμματα πληρωμής σας. Τελευταίο αλλά σημαντικό, έχουμε πολλές άλλες ενδιαφέρουσες επεκτάσεις, τις mnoGoSearch search engine συναρτήσεις, πολλά εργαλεία συμπίεσης (gzip, bz2), μετατροπές ημερολογίου, μεταφράσεις...

2.3 MySQL Database Η MySQL είναι ένα σύστημα διαχείρισης σχεσιακής βάση ανοικτού κώδικα όπως λέγεται (relational database management system - RDBMS) που χρησιμοποιεί την Structured Query Language (SQL), την πιο γνωστή γλώσσα για την προσθήκη, την πρόσβαση και την επεξεργασία δεδομένων σε μία Βάση Δεδομένων. Επειδή είναι ανοικτού κώδικα (open source), οποιοσδήποτε μπορεί να κατεβάσει την MySQL και να την διαμορφώσει σύμφωνα με τις ανάγκες του σύμφωνα πάντα με την γενική άδεια που υπάρχει. Η MySQL είναι γνωστή κυρίως για την ταχύτητα, την αξιοπιστία, και την ευελιξία που παρέχει. Οι περισσότεροι συμφωνούν ωστόσο ότι δουλεύει καλύτερα όταν διαχειρίζεται περιεχόμενο και όχι όταν εκτελεί συναλλαγές. Η MySQL αυτή τη στιγμή μπορεί να λειτουργήσει σε περιβάλλον Linux, Unix, και Windows. Υποστηρίζει ένα υποσύνολο του Ansi SQL και περιλαμβάνει πολλές επεκτάσεις. Μερικά χαρακτηριστικά γνωρίσματα: + πολυνηματώδης. + όλη η κυκλοφορία κωδικού πρόσβασης κρυπτογραφείται. + όλες οι στήλες περιλαμβάνουν προκαθορισμένες τιμές. + έλεγχος και τροποποίηση πινάκων. + ψευδώνυμα πινάκων και στηλών σύμφωνα με τα πρότυπα SQL92. + μη διαρροή μνήμης. + όλες οι συνενώσεις (joins) γίνονται σε ένα πέρασμα. + εγγραφές σταθερού και μεταβλητού μήκους. Διεπαφές: SQL, ODBC, C, Perl, JAVA, C++, Python, command line Μέθοδοι πρόσβασης: B-tree στο δίσκο, hash tables στη μνήμη Πολυχρηστικό: Ναι Δοσοληψίες: Ναι, υποστηρίζει και foreign key constraints Κατανεμημένο: Όχι, υπάρχει η δυνατότητα για mirroring Γλώσσα Ερωτημάτων: SQL Όρια: Πάνω από 32 indexes / table. Κάθε index αποτελείται από 1 έως 16 στήλες. Το μέγιστο πλάτος του index είναι 500 bytes Ανθεκτικότητα: Ο κώδικας του B-tree είναι εξαιρετικά σταθερός, εφικτή η 24-ωρη λειτουργία Υποστηριζόμενες Πλατφόρμες: BSDOS, SunOS, Solaris, Linux, IRIX, AIX, OSF1, BSD/OS, FreeBSD

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

- 12 -

Page 13: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

2.4 SMTP Server

Το πρωτόκολλο SMTP (Simple Mail Transfer Protocol) χρησιμοποιείται για τη μετάδοση των email. Το SMTP φροντίζει την αποστολή του email σας σε έναν άλλο υπολογιστή. Κανονικά το email σας στέλνεται σε έναν email server (SMTP server), και έπειτα σε έναν άλλο server ή servers, και τελικά στον προορισμό του. Το SMTP μπορεί μόνο να διαβιβάσει κείμενο. Δεν μπορεί να διαβιβάσει τα δυαδικά στοιχεία όπως τις εικόνες, τους ήχους ή τα βίντεο. Το SMTP χρησιμοποιεί το πρωτόκολλο MIME για να στείλει τα δυαδικά στοιχεία στα TCP/IP δίκτυα. Το πρωτόκολλο MIME μετατρέπει τα δυαδικά στοιχεία σε κείμενο.

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

- 13 -

Page 14: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

2.5 Διακομιστής Web

Ο διακομιστής Web είναι ένας εξειδικευμένος διακομιστής αρχείων που διανέμει αρχεία τα οποία περιέχουν ιστοσελίδες, εικόνες γραφικών, sound clips, video clips και άλλα πολυμέσα. Όταν ένας χρήστης εκτελεί μια ενέργεια, όπως τα να πατήσει ένα σύνδεσμο ή να καταθέσει μία φόρμα, αποστέλλεται στον διακομιστή ένα μήνυμα, το οποίο μεταφέρει την ενέργεια που έλαβε χώρα, μαζί με τα σχετικά δεδομένα, για παράδειγμα το όνομα μέσα σ' ένα πεδίο κειμένου το οποίο πληκτρολογήθηκε από τον χρήστη. Το μήνυμα που στάλθηκε από τον browser λαμβάνεται από τον διακομιστή Web, ο οποίος στην συνέχεια αποφασίζει τι πρέπει να γίνει: εάν, για παράδειγμα, μία ιστοσελίδα πρέπει να σταλεί στον χρήστη ή εάν πρέπει να εκτελεστεί κάποιο πρόγραμμα. Στην τελευταία περίπτωση, αυτό ίσως συνεπάγεται την επεξεργασία μιας αποθηκευμένης ιστοσελίδας πριν την αποστολή της προς τον browser. Αυτή η επεξεργασία συζητείται στο επόμενο κεφάλαιο. Το αίτημα εκτελείται και ο διακομιστής ετοιμάζεται για το επόμενο αίτημα το οποίο μπορεί να προέρχεται από τον ίδιο υπολογιστή / browser που έθεσε το προηγούμενο αίτημα αλλά μπορεί και όχι. Τα αιτήματα και οι απαντήσεις που αναφέραμε, εκφράζονται μ' ένα πρωτόκολλο γνωστό ως Hypertext Transfer Protocol, γνωστό ως HTTP.

2.6 HTTP

Υπάρχουν δύο πλευρές στο πρωτόκολλο HTTP. Η πρώτη είναι το σύνολο των μηνυμάτων που αποστέλλονται από τον πελάτη που τρέχει τον browser και η δεύτερη είναι το σύνολο των απαντήσεων του διακομιστή. Θα εξετάσω πρώτα το πρώτο σύνολο μηνυμάτων. Το πιο κοινό παράδειγμα μηνύματος από την πλευρά του πελάτη είναι το μήνυμα / αίτημα GET. Αυτό που κάνει είναι απλά να ζητήσει από τον διακομιστή κάποιο αρχείο ή άλλο πόρο. Παρακάτω δίνεται ένα συγκεκριμένο παράδειγμα:

GET /index.html HTTP/1.1

User-Agent: Lynx/2.4

Connection: Keep-Alive

Host: www.openaccess.com

Accept: text/html

Η πρώτη γραμμή διευκρινίζει ότι ο browser θέλει να ανακτήσει το αρχείο index.html και ότι αυτήν την στιγμή χρησιμοποιεί την έκδοση 1.1 του πρωτοκόλλου HTTP. Η επόμενη γραμμή δηλώνει ότι ο χρήστης τρέχει την έκδοση 2.4 του Lynx browser. Η επόμενη σειρά δηλώνει ότι ο browser επιθυμεί την διατήρηση της σύνδεσης με τον Web browser, για παράδειγμα για να κατεβάσει εικόνες που περιέχονται σε μία σελίδα που ζητείται. Η επόμενη σειρά προσδιορίζει τον υπολογιστή στον οποίο βρίσκεται αποθηκευμένο το αρχείο . Τέλος, η τελευταία γραμμή ενημερώνει τον διακομιστή Web ότι για την αίτηση αυτή αποδέχεται μόνο αρχεία κειμένου που περιέχουν κώδικα HTML. Όταν το αίτημα περιλαμβάνει την

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

- 14 -

Page 15: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

επεξεργασία μίας φόρμας τα δεδομένα που μεταφέρονται από την φόρμα θ' ακολουθήσουν την τελευταία από τις σειρές της κεφαλίδας. Η πρώτη σειρά είναι γνωστή ως σειρά αιτήματος και οι ακόλουθες ως σειρές κεφαλίδας. Κάθε σειρά κεφαλίδας αποτελείται από μια λέξη κλειδι ακολουθούμενη από άνω και κάτω τελεία και ένα όρισμα, που αντιστοιχεί στην τιμή της λέξης κλειδί. Όταν ο διακομιστής παραλαμβάνει το μήνυμα, ανταποκρίνεται σ' αυτό που ζήτησε ο browser. Έτσι, για παράδειγμα, αν το αίτημα αφορούσε ένα αρχείο HTML το οποίο υπάρχει στα αρχεία ενός διακομιστή Web τότε η απάντηση θα ήταν η ακόλουθη:

HTTP/1.1 200 OK

Date: Thu, 22 July 1998 18:40:55 GMT

Server: Apache 1.3.5 (Unix) PHP/3.0.6

Last-Modified: Mon, 19 July 1997 16:03:22 GMT

Content-Type: text/html

Content-Length: 12987

...

Η απάντηση αποτελείται από τρία μέρη. Το πρώτο μέρος είναι η πρώτη σειρά που δηλώνει ότι ο διακομιστής χρησιμοποιεί την έκδοση 1.1 του πρωτοκόλλου HTTP και ότι το αίτημα του browser δεν προκάλεσε κάποιο λάθος (το 200 αντιπροσωπεύει έναν κώδικα κατάστασης που δηλώνει ακριβώς αυτό). Αυτό ονομάζεται γραμμή κατάστασης. Η επόμενη ομάδα σειρών είναι γνωστή ως πληροφορίες κεφαλίδας. Έχει την ίδια μορφή με τις πληροφορίες κεφαλίδας που εντοπίζονται στο αίτημα ενός πελάτη. Η πρώτη γραμμή προσδιορίζει τον χρόνο επεξεργασίας του αιτήματος, η επόμενη σειρά τον διακομιστή (Apache) που ανταποκρίνεται στο αίτημα, η αμέσως επόμενη διευκρινίζει το πότε ενημερώθηκε για τελευταία φορά ο πόρος, η προτελευταία διευκρινίζει ότι το αρχείο είναι ένα αρχείο κειμένου που περιέχει κώδικα HTML (αυτό είναι γνωστό ως τύπος MIME) και η τελευταία σειρά αποδίδει το μέγεθος του αρχείου σε χαρακτήρες.

2.7 Τύποι MIME

Όταν ένας διακομιστής στέλνει ένα αρχείο πίσω στον πελάτη πρέπει να τον ενημερώσει για το περιεχόμενο του αρχείου, μια και αυτό μπορεί να περιέχει τα πάντα, από απλή HTML μέχρι ένα εκτελέσιμο πρόγραμμα. Το κείμενο που περιγράφει το περιεχόμενο είναι γνωστό ως τύπος MIME (συντομογραφία του Multipurpose Internet Mail Extensions). Στο παραπάνω παράδειγμα το text/html είναι ο τύπος MIME που σχετίζεται με HTML εκφραζόμενη ως απλό κείμενο. Άλλοι τύποι MIME περιλαμβάνουν τον image/gif που δηλώνει μία εικόνα με την μορφή γραφικού gif, τον video/quicktime που δηλώνει ένα animation QuickTime και το text/plain

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

- 15 -

Page 16: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

που δηλώνει απλό κείμενο. Η γενική μορφή του τύπου MIME είναι ο τύπος Κατηγορία περιεχομένου/Τύπος Περιεχομένου, όπου η κατηγορία περιεχομένου προσδιορίζει την γενική κατηγορία του περιεχομένου του αρχείου, για παράδειγμα κείμενο, και ο τύπος περιεχομένου προσδιορίζει ποιο ακριβώς είδος περιεχομένου υπάρχει στο αρχείο, για παράδειγμα κείμενο HTML ή κείμενο ASCII. Οι τύποι MIME αρχικά χρησιμοποιούνταν για την επισύναψη σε μηνύματα ηλεκτρονικού ταχυδρομείου περιεχομένου που δεν ήταν απλό κείμενο. Οι πληροφορίες κεφαλίδας ακολουθούνται από κώδικα HTML, το περιεχόμενο του αρχείου που έχει ζητηθεί. Αυτού προηγείται μία κενή γραμμή. Αν ο τύπος του περιεχομένου ήταν διαφορετικός, θα ακολουθούσαν τα περιεχόμενα ενός άλλου τύπου αρχείου, π.χ. μιας εικόνας. Αφού ο browser παραλάβει την γραμμή κατάστασης, τις γραμμές κεφαλίδας και τον κώδικα HTML θα εμφανίσει στην οθόνη του χρήστη το περιεχόμενο μορφοποιημένο, αφού πρώτα ερμηνεύσει τα tags της HTML που υπάρχουν στο κείμενο. Οι τύποι αιτημάτων που μπορεί να θέσει ένας browser είναι πολλοί. Ο Πίνακας 6.2 τους παραθέτει περιληπτικά. Υπάρχουν ορισμένα πράγματα που αξίζει ν' αναφέρουμε για τον πίνακα αυτό και το περιεχόμενό του. Πρώτον, δεν φαίνονται όλες οι εντολές, μόνο κάποιες επιλεγμένες, οι πιο συνηθισμένες. Δεύτερον, η εντολή HEAD είναι παρόμοια με την εντολή GET. Ωστόσο, δεν επιστρέφει κάποιο περιεχόμενο, μόνο την κεφαλίδα HTTP. Χρησιμοποιείται όταν ο browser θέλει ν΄ αποκτήσει κάποια πληροφορία σχετικά μ' έναν συγκεκριμένο πόρο / αρχείο όπως την ημερομηνία τελευταίας τροποποίησης. Η εντολή PUT λειτουργεί μόνο όταν ο χρήστης έχει την άδεια να τοποθετήσει αρχεία στον διακομιστή Web. Τέλος, η εντολή OPTIONS έχει ως αποτέλεσμα την επιστροφή ενός μηνύματος που περιέχει πληροφορίες σχετικά με τον διακομιστή ή ένα συγκεκριμένο αρχείο / πόρο που υπάρχει στον διακομιστή, για παράδειγμα θα μπορούσε να έχει ως αποτέλεσμα την δημιουργία μιας λίστας διαθέσιμων αιτημάτων HTTP και την αποστολή της στον αιτούντα.

Εντολή Σημασία

GET Πάρε ένα αρχείο από τον διακομιστή

HEAD Το ίδιο με το GET αλλά χωρίς την επιστροφή περιεχομένου

POST Κλήση προγράμματος για επεξεργασία μιας φόρμας

PUT Αποθήκευση ενός αρχείου

OPTIONS Επέστρεψε τις ρυθμίσεις του διακομιστή

Πριν προχωρήσουμε αξίζει να δούμε πως γίνεται η διαχείριση των φορμών δεδομένων. Όταν πατηθεί ένα κουμπί υποβολής (submit) σε μια φόρμα, αυτό θα έχει ως αποτέλεσμα την παραγωγή μιας γραμμής POST ή GET μαζί

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

- 16 -

Page 17: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

με κάποιες ακόμα γραμμές που περιέχουν σχετικές παραμέτρους. Για παράδειγμα, οι γραμμές

POST /cgi-bin/searcher/ HTTP/1.1

Content-Length: 46

userName=Darrel+Ince&[email protected]

Η πρώτη γραμμή ενημερώνει τον διακομιστή Web ότι μία φόρμα έχει κατατεθεί και το πρόγραμμα που πρέπει να εκτελεστεί για την επεξεργασία των φορμών βρίσκεται στον κατάλογο cgi-bin με το όνομα searcher. Η επόμενη γραμμή δηλώνει ότι το περιεχόμενο που σχετίζεται με την εντολή (τα περιεχόμενα της φόρμας δηλαδή) έχει μέγεθος 46 χαρακτήρων. Η τρίτη γραμμή είναι το περιεχόμενο της εντολής. Περιγράφει τα περιεχόμενα που είχαν τα στοιχεία της φόρμας όταν πατήθηκε το κουμπί υποβολής. Στο παράδειγμα αυτό, το στοιχείο της φόρμας με το όνομα userName περιείχε το string 'Darrel Ince' (το κενό αντιπροσωπεύεται με το +) και το στοιχείο με το όνομα email περιείχε το string '[email protected]'. Αυτό είναι γνωστό ως string ερωτήματος. Τα δεδομένα αυτά στην συνέχεια υφίστανται επεξεργασία από το πρόγραμμα.

2.8 Κωδικοί Καταστάσεως

Όταν ένας διακομιστής Web ανταποκρίνεται στο αίτημα ενός browser απαντά με έναν κωδικό κατάστασης τριών ψηφίων και μ' ένα κείμενο που υποδεικνύει τι συνέβη με το αίτημα. Έχετε ήδη δει ένα παράδειγμα χρήσης του κωδικού κατάστασης όπου ο κώδικας 200 σημαίνει την επιτυχή εφαρμογή του GET. Αυτοί οι κώδικες κατάστασης διαιρούνται σε επιμέρους κατηγορίες. Οι κωδικοί κατάστασης που αρχίζουν με το 1 παρέχουν πληροφορίες διαφόρων ειδών στον πελάτη. Για παράδειγμα, μπορεί να παρέχει την πληροφορία ότι μια αλλαγή στο πρωτόκολλο που ζητήθηκε από τον πελάτη έγινε αποδεκτή. Οι κωδικοί κατάστασης που αρχίζουν με το 2 υποδεικνύουν ότι δεν υπάρχει πρόβλημα στην εκτέλεση του αιτήματος του πελάτη. Για παράδειγμα, ο κωδικός 202 υποδεικνύει ότι δεν υπάρχει πρόβλημα αλλά το αίτημα δεν έχει εκτελεστεί προς το παρόν. Οι κωδικοί κατάστασης που αρχίζουν με το 3 υποδεικνύουν ότι ο browser πρέπει να εκτελέσει κάποια άλλη ενέργεια ώστε το αίτημα να έχει επιτυχή έκβαση. Για παράδειγμα, ο κωδικός 301 υποδεικνύει ότι το αρχείο / πόρος που ζητήθηκε έχει μεταφερθεί μόνιμα σε κάποια άλλη τοποθεσία. Οι κωδικοί κατάστασης που αρχίζουν με το 4 υποδεικνύουν ότι κάτι πήγε στραβά. για παράδειγμα, ο πιο συχνός κωδικός αυτής της κατηγορίας είναι ο 404 που υποδεικνύει ότι ο αιτούμενος πόρος δεν μπορεί να βρεθεί. Οι κωδικοί κατάστασης που αρχίζουν με το 5 υποδεικνύουν ότι ο διακομιστής αντιμετώπισε κάποιο πρόβλημα. Για παράδειγμα, ο κωδικός κατάστασης 503 υποδεικνύει ότι η αιτούμενη υπηρεσία δεν ήταν δυνατόν να εκτελεστεί. Αυτό συμβαίνει συνήθως λόγω συντήρησης ρουτίνας του

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

- 17 -

Page 18: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

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

2.9 JavaScript

Είναι μια γλώσσα συγγραφής σεναρίων (scripting language) για την προσθήκη διαδραστικότητας (interactivity) σε ιστοσελίδες. Δημιουργήθηκε από την εταιρεία Netscape με αρχικό όνομα LiveScript και είναι πολύ δημοφιλής στους δημιουργούς ιστοσελίδων καθώς είναι απλή στη σύνταξή της και υποστηρίζεται απ' όλους τους δημοφιλείς φυλλομετρητές. Ανταγωνιστής της είναι η γλώσσα συγγραφής σεναρίων VBScript της εταιρείας Microsoft. Μια άλλη προσέγγιση στον προγραμματισμό από την πλευρά του πελάτη είναι η γλώσσα προγραμματισμού JavaScript. Για τον προγραμματισμό σε JavaScript πρέπει να εισάγετε δηλώσεις προγραμματισμού απευθείας στον κώδικα HTML. Αυτός ο κώδικας αλληλεπιδρά με τον browser, για παράδειγμα παράγει οπτικά εφέ, όπως rollover. Αυτό βρίσκεται σε αντίθεση με τα applet όπου ο κώδικας βρίσκεται στον διακομιστή, υπάρχει μόνο αναφορά για αυτόν στον κώδικα HTML, φορτώνεται στον πελάτη χρησιμοποιώντας την αναφορά και εκτελείται. Η JavaScript είναι ενσωματωμένη σ' ένα αρχείο HTML ανάμεσα σε tags SCRIPT. Παρακάτω δίνεται ένα παράδειγμα ενός πολύ απλού προγράμματος:

<SCRIPT LANGUAGE = "JavaScript"> document.writeln( "<H3> Hello there"); </SCRIPT>

O κώδικας βρίσκεται μέσα στα <SCRIPT> </SCRIPT> και αποτελείται από μία απλή δήλωση που εμφανίζει σε μια ιστοσελίδα το μήνυμα 'Hello there' στο σημείο όπου υπάρχει δήλωση μέσα στο HTML αρχείο. Το μήνυμα εμφανίζεται σε επικεφαλίδα μεγέθους 3, χρησιμοποιώντας το κατάλληλο tag. Το αντικείμενο document αντιπροσωπεύει το αρχείο HTML στο οποίο περικλείεται ο κώδικας. Η μέθοδος writeln του αντικειμένου document γράφει ένα string στον HTML κώδικα που θα εμφανιστεί.

Η JavaScript μοιάζει πολύ με μια κανονική γλώσσα προγραμματισμού καθώς περιλαμβάνει:

• Αριθμητικούς τύπους δεδομένων, όπως ακέραιους, καθώς και strings.

• Ένα μεγάλο αριθμό τελεστών που μπορούν να εφαρμοστούν στους διάφορους τύπους δεδομένων.

• Δομές ελέγχου, όπως οι if και while. • Συναρτήσεις: κομμάτια κώδικα που μπορούν να κληθούν

επανειλημμένα και ανεξάρτητα όποτε χρειάζεται να εκτελεστεί η συγκεκριμένη λειτουργία που μέθοδος υλοποιεί.

• Πίνακες που περιέχουν συλλογές δεδομένων.

Αυτό που την ξεχωρίζει πάντως είναι η ικανότητα, χρησιμοποιώντας την τεχνολογία της δυναμικής HTML (DHTML), να αλληλεπιδρά με τα στοιχεία

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

- 18 -

Page 19: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

μίας ιστοσελίδας, για παράδειγμα μπορεί να έχει πρόσβαση στα στοιχεία μιας φόρμας HTML ή ν' αλλάξει την εμφάνιση ενός στοιχείου κειμένου.

2.10 AJAX

Η AJAX (Asynchronous JavaScript And XML) δεν είναι μια νέα γλώσσα προγραμματισμού, αλλά απλά μια νέα τεχνική για καλύτερες, γρηγορότερες, και πιο διαλογικές διαδυκτιακές εφαρμογές. Η AJAX χρησιμοποιεί JavaScript για να στείλει και να λάβει τα στοιχεία μεταξύ ενός web browser και ενός web server.

Η AJAX είναι βασισμένο στα ακόλουθα ανοικτά πρότυπα:

• JavaScript • XML • HTML • Css

Τα ανοικτά πρότυπα που χρησιμοποιούνται σε AJAX καθορίζονται καλά, και υποστηρίζονται από όλους τους σημαντικούς web browsers. Οι εφαρμογές AJAX είναι ανεξάρτητης πλατφόρμας και browser. (Cross-Platform, Cross-Browser technology)

2.10.1 AJAX χρησιμοποιώντας XML και HTTP αιτήματα

Μια παραδοσιακή διαδυκτιακή εφαρμογή θα κάνει αποστολή στοιχείων (χρησιμοποιώντας μια HTML φόρμα) σε έναν web server. Αφού έχει επεξεργαστεί ο web server τα στοιχεία, θα επιστρέψει μια νέα ιστοσελίδας στο χρήστη. Επειδή ο web server επιστρέφει μια νέα ιστοσελίδας κάθε φορά που ο χρήστης στέλνει στοιχεία, οι παραδοσιακές διαδυκτιακές εφαρμογές τρέχουν αργά και τείνουν να είναι λιγότερο φιλικές προς το χρήστη. Με την AJAX, οι διαδυκτιακές εφαρμογές μπορούν να στείλουν και να ανακτήσουν τα στοιχεία χωρίς να ξανά φορτωθεί ολόκληρη η ιστοσελίδα. Αυτό γίνεται με την αποστολή των αιτημάτων HTTP στον web server (behind the scenes), και με την τροποποίηση μόνο των μερών εκείνων της ιστοσελίδας χρησιμοποιώντας JavaScript όταν ο web server επιστρέφει στοιχεία. XML χρησιμοποιείται συνήθως ως format για τη λήψη στοιχείων από τον server, αν και οποιοδήποτε format, συμπεριλαμβανομένου του απλού κειμένου, μπορεί να χρησιμοποιηθεί.

2.10.2 AJAX και PHP Η AJAX είναι μια τεχνολογία που τρέχει στον browser σας. Χρησιμοποιεί την ασύγχρονη μεταφορά στοιχείων (αιτήματα HTTP) μεταξύ του browser και του web server, και επιτρέπει στην ιστοσελίδα να ζητήσει τα μικρά κομμάτια των πληροφοριών από τον web server αντί για ολόκληρες ιστοσελίδες.

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

- 19 -

Page 20: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

2.11 Μορφή σελίδων

Ο έλεγχος της μορφής (layout) των σελίδων Web υπήρξε παραδοσιακά μια δύσκολη διαδικασία. Στην αρχή, οι δημιουργοί των σελίδων Web είχαν ελάχιστο ή καθόλου έλεγχο πάνω στην εμφάνιση των σελίδων τους. Με τον καιρό, διάφορες μέθοδοι αναπτύχθηκαν με σκοπό τον καλύτερο έλεγχο των αντικειμένων της σελίδας (κείμενο και γραφικά) και τη σωστότερη εμφάνιση των σελίδων σύμφωνα με την αρχική σχεδίασή τους. Μετά την εισαγωγή των Tables, οι δημιουργοί υιοθέτησαν αυτή τη μέθοδο για το «στήσιμο» των αντικειμένων στις σελίδες. Μάλιστα, τόση ήταν η ανάγκη για σωστό layout, ώστε ορισμένοι δημιουργοί να έχουν αποκτήσει Ph.D. στη χρήση των Tables από τη συχνή χρήση τους! Η επιθυμία για ένα τέλειο layout είναι αποτέλεσμα της μεταφοράς του έντυπου υλικού στον Web. Η τοποθέτηση του κειμένου και της εικόνας σε ένα έντυπο είναι απλή διαδικασία με τη χρήση προγραμμάτων ηλεκτρονικής στοιχειοθέτησης, όπως των Adobe PageMaker και Quark Xpress. Ωστόσο, η μεταφορά αυτών τον πληροφοριών από το έντυπο στο Διαδίκτυο απαιτεί απόλυτο έλεγχο πάνω στα αντικείμενα της σελίδας. Με την παρουσίαση των Cascading Style Sheets (CSS) οι δημιουργοί απέκτησαν τον απαιτούμενο έλεγχο στα αντικείμενα των Web σελίδων τους. Τα CSS μάς έδωσαν τη δυνατότητα να δημιουργήσουμε layers. Τα layers είναι «επιφάνειες» της σελίδας. Κάθε «επιφάνεια» περιλαμβάνει κάποια αντικείμενα και έχει ορισμένα ιδιότητες. Θεωρητικά, όλες οι «επιφάνειες» είναι «διάφανες» (transparent) και εμείς μπορούμε να επεμβαίνουμε σε όλες τις ιδιότητές τους: διάσταση, σειρά, διαφάνεια, θέση κ.ά. Τα layers σε συνδυασμό με την JavaScript και το ευρύτερο σύνολο της DHTML δημιουργούν πραγματικά αριστουργήματα. Εκτός από τα layers, τα CSS δίνουν επίσης στο δημιουργό έλεγχο σε όλους τους τομείς παρουσίασης των κειμένων και των γραμματοσειρών, περιλαμβάνοντας, τον τύπο της γραμματοσειράς, την απόσταση των γραμμάτων (spacing), το μέγεθος και το είδος (bold, italic). Τα CSS είναι πραγματικό δώρο για όσους συνήθιζαν να παλεύουν προσπαθώντας να κάνουν μια σελίδα να μοιάζει το ίδιο στον Internet Explorer και τον Netscape Navigator, τόσο για Mac_into_sh όσο και για PC.

2.12 Υποστήριξη των CSS από τους Browsers

Τα CSS υποστηρίζονται μόνο από τις τελευταίες εκδόσεις των browsers. Τόσο ο Internet Explorer 4 (υποστήριξε πρώτος, από την έκδοση 3, τα CSS) όσο και ο Netscape Navigator 4 υποστηρίζουν πλήρως τα CSS. Οσο περίεργο και αν ακούγεται, και οι δύο browsers είναι –σχεδόν- πλήρως συμβατοί. Είναι γνωστό σε όλους ότι οι δύο browsers σχεδόν ποτέ δεν συμβαδίζουν, με αποτέλεσμα να χρειάζεται άλλος τρόπος συγγραφής για τον πρώτο και άλλος για τον δεύτερο. Στα CSS όμως δεν ισχύει αυτός ο κανόνας. Ως αποτέλεσμα, τα CSS συχνά καλούνται ως η «νεκρή ζώνη» για τους browsers τέταρτης γενιάς. Τι συμβαίνει όμως με τα CSS σε παλιότερους browsers; Ορισμένοι, όπως ο Netscape 2.0 και 3.0, είναι αρκετά «έξυπνοι» ώστε να αγνοήσουν style sheets που βρίσκονται μεταξύ του tag <STYLE>. Ορισμένοι ακόμα πιο παλιοί, όπως ο Internet Explorer 2 και ο Netscape 1, θα αγνοήσουν μεν το <STYLE> tag, αλλά θα εμφανίσουν τα περιεχόμενα μεταξύ των tags. Τα περιεχόμενα αυτά θα τυπωθούν στη κορυφή της σελίδας σε μία γραμμή – και αυτό δεν είναι

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

- 20 -

Page 21: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

καθόλου καλό. Για να λυθεί και αυτό το πρόβλημα, η λύση είναι να κάνουμε σχόλιο τα περιεχόμενα του tag με τη χρήση των <!-- --> , όπως στο ακόλουθο παράδειγμα:

<HTML> <TITLE>Κρύβοντας τα CSS σε παλιότερους browsers</TITLE> <STYLE type=”text/css”> <!— 2stoixeio position: absolute; z-index: 1; left: 30px; top: 30px; --> </STYLE> <BODY> <DIV id=stoixeio> <IMG SRC=”images/stoixeio.gif” width=120 height=90 border=0> </DIV> </BODY> </HTML>

Με αυτή την τεχνική, μπορούμε να είμαστε σίγουροι ότι δεν θα συμβεί κάποιο «ατύχημα» σε παλαιότερο browser.

2.13 HTML

H HTML είναι το ακρωνύμιο των λέξεων HyperText Markup Language (γλώσσα μορφοποίηση υπερκειμένου) και είναι η βασική γλώσσα δόμηση σελίδων του World Wide Web (ή απλά ιστού: Web). Είναι μία γλώσσα προγραμματισμού. Χρησιμοποιείται για να σημαίνει ένα τμήμα κειμένου και να το κάνει να εμφανίζεται καλύτερα. Επιτρέπει την ενσωμάτωση ήχου και εικόνων στις web σελίδες. Αρχικά είχε κατασκευασθεί με σκοπό μόνο την μορφοποίηση κειμένου, αλλά μεγάλωσε και ενσωμάτωσε σχεδιαστικές τεχνικές κ.α. Η γλώσσα χρησιμοποιεί ένα αριθμό από tags για την μορφοποίηση κειμένου, για την δημιουργία συνδέσμων (links) μετάβασης ανάμεσα των σελίδα, για την εισαγωγή εικόνων, ήχου κ.α. Όταν ένας Web Browser ανοίγει ένα αρχείο HTML τα στοιχεία (tags) μεταφράζονται σε κατάλληλα χαρακτηριστικά με αποτελέσματα στην εμφάνιση και στην λειτουργικότητα της συγκεκριμένης σελίδας. Το 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.

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

- 21 -

Page 22: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

2.14 Γλώσσες Προγραμματισμού στο Internet

Οι ενδογενείς αδυναμίες της HTML, μιας κατεξοχήν γλώσσας μορφοποίησης υπερκειμένου, σύντομα οδήγησαν στην ανάπτυξη γλωσσών προγραμματισμού στο Internet. Η χρήση των γλωσσών προγραμματισμού κρίθηκε απαραίτητη αφού η εξάπλωση του Internet και η χρήση των σελίδων HTML για αλληλεπίδραση με τους χρήστες (δυναμική αποστολή και λήψη δεδομένων) δεν μπορούσε να πραγματοποιηθεί μέσω της HTML. Αρχικά, αναπτύχθηκε από την εταιρεία Netscape η γλώσσα JavaScript η οποία, όπως και η ΗTML μεταφράζεται από τον Web Browser κατά την εμφάνιση της σελίδας. H Microsoft ανέπτυξε απ' την πλευρά της μια δική της έκδοση της γλώσσας JavaScript την οποία ονόμασε JScript και μια έκδοση της γλώσσας Basic ειδικά για το Internet που ονόμασε VBScript. Έτσι πλέον με την χρήση των παραπάνω γλωσσών είναι δυνατό να ελεγχθούν και να προγραμματιστούν όλα σχεδόν τα αντικείμενα που μπορεί να περιέχει μία ιστοσελίδα και με τη χρήση είτε εντολών διαδικαστικού χαρακτήρα, είτε εντολών διακλάδωσης, όπως για παράδειγμα η δομή [if … then… else…]. Η χρήση τέτοιου είδους "προγραμμάτων" ή όπως ονομάζονται "scripts" είναι διαδικασία που έχει μεγάλες απαιτήσεις σε προγραμματισμό και απευθύνεται σε προγραμματιστές και μόνο.

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

- 22 -

Page 23: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Κεφάλαιο 3 – Εργαλεία Ανάπτυξης 3.1 Adobe Dreamweaver CS3 Το Dreamweaver της Macromedia αποτελεί την επιλογή των επαγγελματιών για την κατασκευή ιστοσελίδων και εφαρμογών. Συνεχίζει την παράδοση του προϊόντος στην καινοτομία παρέχοντας ένα στιβαρό θεμέλιο για ευρεία υιοθέτηση του Cascading Style Sheet (CSS), ενός ευρέως αποδεκτού web standard, το οποίο προηγουμένως ήταν δύσκολο να εφαρμοστεί. Λόγω του ότι το CSS βοηθάει τους developers να διαχωρίζουν την παρουσίαση και το στυλ από το περιεχόμενο και οι ιστοσελίδες κατασκευασμένες με το CSS απαιτούν μικρότερο bandwidth, είναι ευκολότερο να διατηρηθούν και προσδίδουν σε developers και τελικούς χρήστες ακριβή σχεδιαστικό έλεγχο. Το Dreamweaver αποτελεί το μοναδικό εκτενές εργαλείο για να αποδώσει γερή υποστήριξη CSS σε ένα οπτικό περιβάλλον ανάπτυξης, μετακινώντας την καμπύλη μάθησης και καθιστώντας ικανούς τους developers να χρησιμοποιούν αυτό το standard, ώστε να παράγουν εκπληκτικές ιστοσελίδες και εφαρμογές για το web. Το Dreamweaver βασίζεται στην επιτυχημένη δομή του Dreamweaver MX και επεκτείνεται επιπλέον ενσωματώνοντας οπτικά εργαλεία περιγράμματος, χαρακτηριστικά ανάπτυξης εφαρμογών και υποστήριξη επεξεργασίας κώδικα μέσω ενός περιβάλλοντος τεχνολογίας ανεξαρτήτου πλατφόρμας. Υποστηρίζοντας τις σημαντικότερες τεχνολογίες HTML και server, το Dreamweaver απελευθερώνει τη δύναμη της προσβάσιμης ανάπτυξης βασισμένης σε πρότυπα για την κοινότητα web, ενώ βελτιώνει τα βασικά εργαλεία, τα οποία χρειάζονται οι επαγγελματίες. Το Dreamweaver περιλαμβάνει επίσης το SecureFTP, μια δυναμική λειτουργία επικύρωσης λειτουργικότητας με οποιονδήποτε browser, ενσωματωμένη επεξεργασία γραφικών, ομαλή συνεργασία με τα Word και Excel της Microsoft και ενημερωμένη υποστήριξη για τεχνολογίες ASP.NET, PHP και ColdFusion server. To Dreamweaver περιλαμβάνει εξαιρετικές παραμέτρους σχεδίου βασισμένες σε πρότυπα που εξασφαλίζουν υψηλής ποιότητας σχέδιο. Ολόκληρο το περιβάλλον σχεδίασης είναι φτιαγμένο με βάση το CSS, που επιτρέπει την ταχύτερη και αποτελεσματικότερη ανάπτυξη επαγγελματικών ιστοσελίδων καθαρού κώδικα με περίπλοκα σχέδια. Η δυναμική επικύρωση λειτουργικότητας με οποιονδήποτε browser ελέγχει αυτόματα ετικέτες και τους κανόνες του CSS για σχεδιαστική συμβατότητα μεταξύ των πρωτοπόρων browsers, πράγμα που αποτελεί και τον πιο συχνό "πονοκέφαλο" των developers. Ένας ενσωματωμένος επεξεργαστής γραφικών που χρησιμοποιεί την τεχνολογία του Fireworks της Macromedia δίνει τη δυνατότητα στους χρήστες την συγκέντρωση, την επαναταξινόμηση και επεξεργασία των γραφικών δίχως να χρειαστεί να φύγετε από το περιβάλλον του Dreamweaver. H ανοικτή τεχνολογία του Dreamweaver επιτρέπει στους developers να δουλεύουν με τις τεχνολογίες της επιλογής τους. Το περιβάλλον ανάπτυξης ανεξαρτήτου πλατφόρμας υποστηρίζει τις πιο σημαντικές τεχνολογίες server, συμπεριλαμβανομένων των HTML, XHTML, CSS, XML, JavaScript, Ajax, PHP, Adobe ColdFusion,? ASP, ASP.NET και JSP. Το SecureFTP κρυπτογραφεί όλες τις μεταφορές αρχείων και αποτρέπει κάθε αναρμόδια πρόσβαση σε στοιχεία, περιεχόμενα αρχείων, ονόματα χρηστών και κωδικούς πρόσβασης. Η απρόσκοπτη ενσωμάτωση αρχείων των Word και Excel της Microsoft επιτρέπει στους

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

- 23 -

Page 24: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

χρήστες να συντηρήσουν τη μορφοποίηση, όπως το CSS, όταν κάνετε αποκοπή και επικόλληση στο Dreamweaver. Το Dreamweaver επίσης ενσωματώνει ένα βελτιωμένο περιβάλλον σχεδίου και ανάπτυξης για να βοηθήσει τους επαγγελματίες του web να βρίσκουν ότι χρειάζονται γρηγορότερα, αυξάνοντας την απόδοση, την παραγωγικότητα, και την ποιότητα της εργασίας τους. Βελτιώσεις στα κύρια χαρακτηριστικά, όπως η βελτιωμένη επεξεργασία πίνακα και μια προηγμένη διαδικασία επεξεργασίας αρχείων, όλα αυτά αποτελούν στοιχεία που βοηθούν τους χρήστες να διαχειρίζονται καλύτερα τα βασικά. Οι χρήστες μπορούν να γράψουν κώδικα αποτελεσματικά με τα εργαλεία κωδικοποίησης δεξιού κλικ, βελτιωμένη εύρεση και αντικατάσταση καθώς και με έναν βελτιωμένο επιθεωρητή tags, που επιτρέπει την γρήγορη και περιεκτική επεξεργασία του αντικειμένου. Το Dreamweaver επίσης περιλαμβάνει τα Elements για HTML, για κατασκευή blocks εφαρμογών που επιτρέπουν στους developers να παράγουν γρήγορα εντυπωσιακά αποτελέσματα με συνεπές ύφος και αίσθηση. Τα Elements για HTML περιλαμβάνουν style sheets, περιεχόμενο δειγμάτων και templates. Tα style sheets αποτελούν εύκολα σημεία εκκίνησης για εξεζητημένη χρήση του CSS για προσδιορισμό θέσης με templates για κοινά περιγράμματα ιστοσελίδων. Το Elements διαθέτει το ύφος και αίσθηση του Halo. Τέλος το Adobe Dreamweaver CS3 δίνει την δυνατότητα να ενσωματώνουμε γρήγορα περιεχόμενο XML, χρησιμοποιώντας είτε XSL ή το Spry για το Ajax, με το οποίο γίνονται τα validation σε όλες τις φόρμες της εφαρμογής μας.

3.2 Adobe Photoshop CS3

Το Photoshop υπήρξε ανέκαθεν το πρότυπο στην επεξεργασία ψηφιακής φωτογραφίας αλλά και στην δημιουργία layout για ιστοσελίδες (template).Μια πολύ χρήσιμη λειτουργία που παρέχει το Photoshop, είναι τα layers. Φανταστείτε τα layers σαν διαφορετικά επίπεδα το ένα πάνω από το άλλο τα οποία όλα μαζί δημιουργούν μια εικόνα. (γραφικά ή φωτογραφία).Το Photoshop πέρα από τις εκπληκτικές δυνατότητες που έχει στην επεξεργασία εικόνας, με τα χρόνια έχει εξελιχθεί αρκετά, προσφέροντας στους web designers ένα δυνατό εργαλείο για την σχεδίαση web sites.Σε αυτό βοηθάει το εργαλείο slice tool, το οποίο προστέθηκε στο Photoshop στην έκδοση 4 και η επιλογή save for web που προστέθηκε στην έκδοση 5.5. Το slice tool δίνει την δυνατότητα στον χρήστη να «κόβει» την εικόνα που έχει σχεδιάσει σε επιμέρους τμήματα και επιλέγοντας την εντολή save for web να αποθηκεύει το κάθε κομμάτι (slice) σαν ξεχωριστό αρχείο εικόνας. Επιπλέον η επιλογή save for web δίνει, εκτός από την δυνατότητα που έχει να «σπάει» την εικόνα σε επιμέρους εικόνες, την δυνατότητα να αποθηκεύουμε το κάθε κομμάτι (slice) με διαφορετικό είδος συμπίεσης (Gif, Jpeg, Png κτλ.), όπως επίσης και την δυνατότητα να δημιουργεί αρχεία html τα οποία είναι και το τελικό προϊόν (template).

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

- 24 -

Page 25: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Κεφάλαιο 4 – Βάση Δεδομένων

4.1 Αρχιτεκτονική της Βάσης Δεδομένων Η βάση δεδομένων mobile είναι η καρδιά του συστήματός μας. Αποτελείτε από 6 πίνακες στους οποίους αποθηκεύονται όλα τα δεδομένα του συστήματος. Οι πίνακες είναι οι εξής:

Εικόνα 4.1.1

4.1.1 Πίνακας brands: Εδώ αποθηκεύονται τα ονόματα από όλες τις μάρκες αυτοκινήτων. Από τον πίνακα αυτό ενημερώνονται όλα τα μενού επιλογής μάρκας της εφαρμογής μας. Τα πεδία αυτού του πίνακα είναι το brand_id, το brand_name και το brand_comments.

Εικόνα 4.1.2

4.1.2 Πίνακας models: Εδώ αποθηκεύονται τα ονόματα από όλα τα μοντέλα των αυτοκινήτων. Από τον πίνακα αυτό ενημερώνονται τα μενού επιλογής μοντέλου στις φόρμες εισαγωγείς και ενημέρωσης της εφαρμογής μας. Τα πεδία αυτού του πίνακα είναι το model_id, brand_id το οποίο είναι ξένο κλειδί, το model_name και το model_comments.

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

- 25 -

Page 26: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Εικόνα 4.1.3

4.1.3 Πίνακας categories: Εδώ αποθηκεύονται τα ονόματα από τις κατηγορίες αυτοκινήτων. Από τον πίνακα αυτό ενημερώνονται όλα τα μενού επιλογής κατηγορίας της εφαρμογής μας. Τα πεδία αυτού του πίνακα είναι το category_id, το category_name και το category_comments.

Εικόνα 4.1.4.1

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

- 26 -

Page 27: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Εικόνα 4.1.4.2

4.1.4 Πίνακας cars(Εικόνα 4.1.4.1 , 4.1.4.2): Εδώ αποθηκεύονται τα στοιχεία των οχημάτων τα οποία καταχωρούν οι χρήστες. Ο πίνακας περιέχει τέσσερα ξένα κλειδιά, το user_id, το brand_id, το model_id, το category_id.Το user_id συνδέει τον πίνακα cars με το τον πίνακα users έτσι ώστε να γνωρίζουμε ποιος χρήστης έκανε την καταχώριση. Το brand_id το model_id και το category_id, συνδέει το πίνακα cars με τους πίνακες brands models και categories αντίστοιχα. Το πεδίο car_status είναι αυτό που μας ενημερώνει για τη κατάσταση του οχήματος, εάν δηλαδή είναι ενεργό ή ανενεργό και για πιο λόγο είναι ανενεργό.

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

- 27 -

Page 28: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Εικόνα 4.1.5

4.1.5 Πίνακας users: Εδώ αποθηκεύονται τα μέλη της εφαρμογής. Ο πίνακας αυτός περιέχει πεδία στα οποία αποθηκεύονται το όνομα χρήστη, ο κωδικός πρόσβασης και τα προσωπικά του στοιχεία. Το user_status δείχνει τη κατάσταση του χρήστη , αν αυτός είναι ενεργός, ανενεργός, απλός χρήστης η διαχειριστής. Το πεδίο user_elem δείχνει το αν τα στοιχεία του χρήστη θα εμφανίζονται ή όχι στους χρήστες της εφαρμογής.

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

- 28 -

Page 29: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Εικόνα 4.1.6

4.1.6 Πίνακας newsletters: Αυτός ο πίνακας περιέχει τη λίστα των χρηστών που έχουν γραφτεί στη λίστα των newsletters. Εδώ καταγράφετε το e-mail που δίνουν οι χρήστες μαζί με το ονοματεπώνυμο τους. Το πεδίο status μας λεει το αν ο χρήστης θα ενημερώνετε για όλες τις νέες εγγραφές ή για όσες πληρούν κάποιες προδιαγραφές που έχει τη δυνατότητα να θέσει ο χρήστης.

4.2 Σύνδεση στη Βάση Δεδομένων Η σύνδεση στη βάση επιτυγχάνετε μέσω της συνάρτησης mysql_connect() της PHP δίνοντας τα σχετικά ορίσματα $server = "localhost"; // server to connect to. $database = "mobile"; // the name of the database. $db_user = "webuser"; // mysql username to access the database with. $db_pass = "giannis"; // mysql password to access the database with. $conn = mysql_connect($server, $db_user, $db_pass) or die ("Unable to connect to database"); // select the database

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

- 29 -

Page 30: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

mysql_select_db($database, $conn) or die ("Unable to connect to Table");

4.3 Ασφάλεια Βάσης Δεδομένων

Καταρχάς είναι πολύ κρίσιμο να μην χρησιμοποιούμε, για Web εφαρμογές, τον χρήστη root. Όπως επίσης είναι κρίσιμο να αποφεύγουμε να δίνουμε δικαιώματα GRANT και REVOKE ανεξέλεγκτα γιατί με αυτές τις παραμέτρους ο χρήστης μπορεί να ορίζει και να αφαιρεί δικαιώματα από χρήστες της βάσης. Με αυτό τον τρόπο μπορεί εύκολα να αποκτήσει πρόσβαση σε περιοχές που ίσως δεν πρέπει. Για την πρόσβαση στη βάση δεδομένων λοιπόν, δημιουργήσαμε ένα χρήστη (τον webuser) ο οποίος μπορεί να έχει πρόσβαση μόνο από το τοπικό μηχάνημα στο οποίο υπάρχει και ο MySQL Server (localhost). Ο χρήστης έχει συγκεκριμένα δικαιώματα, ορισμένα ξεχωριστά για κάθε Table της βάσης. Αυτό γίνετε γιατί δεν υπάρχει λόγος να παρέχουμε δικαιώματα χωρίς να υπάρχει πρακτικός λόγος. Τα βασικά δικαιώματα που παρέχονται είναι INSERT, SELECT, UPDATE, DELETE. Δεν υπάρχει κανένας λόγος ο webuser να κάνει κάποια επιπλέον ενέργεια στο σύστημα.

4.4 Διαχείριση της Βάσης Δεδομένων Η δημιουργία και διαχείριση της βάσης έγινε μέσω δύο προγραμμάτων της MySQL τα οποία είναι το phpMyAdmin Database Manager και το MySQL Administrator. 4.4.1 phpMyAdmin Database Manager Version 2.9.2 Το phpMyAdmin είναι ένα πρόγραμμα με το οποίο μπορούμε να δημιουργούμε βάσεις, να σχεδιάζουμε τους πίνακες και να προσθέτουμε εγγραφές.

Εικόνα 4.3.1

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

- 30 -

Page 31: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

4.4.2 MySQL Administrator Με το πρόγραμμα αυτό συνδεόμαστε και διαχειριζόμαστε τον MySQL Server. Εδώ δημιουργούμε τους χρήστες της βάσης με τα κατάλληλα δικαιώματα. Ορίζουμε τους κωδικούς πρόσβασης και ορίζουμε από ποιο host μπορεί ο χρήστης αυτός να συνδέεται στη βάση (στην περίπτωσή μας μόνο από localhost για αύξηση της ασφάλειας).

Εικόνα 4.3.2

4.5 Σχέσεις Πινάκων Το storage engine της βάσης είναι InnoDB το οποίο μας δίνη τη δυνατότητα να χρησιμοποιήσουμε σχέσεις στη βάση. Έχουν δημιουργηθεί σχέσεις σε συγκεκριμένα Tables για να έχουμε μεγαλύτερη ασφάλεια και σταθερότητα στην βάση αλλά και κάνουμε απλούστερη την αναζήτηση αποτελεσμάτων.

4.6 Πλατφόρμα Συστήματος Το σύστημα αναπτύχθηκε πάνω σε Apache Web Server 2.2.4, MySQL Server 5.0.27 και PHP Script Language 5.2.1. Για την εγκατάσταση και επικοινωνία αυτών των τριών τεχνολογιών χρησιμοποιήθηκε το AppServ Open Project. Η εφαρμογή αυτή εγκαθιστά και ενώνει και τις τρεις τεχνικές και μέσω του group που δημιουργείτε στο start menu έχουμε πρόσβαση απευθείας στο httpd.conf το οποίο είναι το αρχείο που περιέχει το Configuration του Apache. Επίσης έχουμε άμεση πρόσβαση στο αρχείο php.ini το οποίο περιέχει το Configuration της PHP, έχουμε πρόσβαση και στο my.ini το οποίο περιέχει το Configuration της MySQL, έχουμε τη δυνατότητα να κάνουμε reset το root password, και τέλος μπορούμε να εκκινήσουμε η να τερματίσουμε τους Server.

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

- 31 -

Page 32: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Κεφάλαιο 5 - Ανάλυση της εφαρμογής 5.1 Αρχική Σελίδα – Η φόρμα γρήγορης αναζήτησης

Εικόνα 5.1.1

Η παραπάνω φόρμα (Εικόνα 5.1.1) είναι η πρώτη φόρμα της web

εφαρμογής μας, στην οποία ο επισκέπτης καλείται να επιλέξει τη μάρκα το

μοντέλο και να προσδιορίσει ένα πεδίο τιμών για το έτος και την άξια του

αυτοκίνητου. Επιλέγοντας μάρκα, οι οποίες αντλούνται δυναμικά από το

πίνακα brands, αυτομάτως ενημερώνετε το μενού επιλογής του μοντέλου,

από τον πίνακα cars, έτσι ώστε να εμφανίζονται μόνο όσα μοντέλα

υπάρχουν καταχωρημένα στη βάση δεδομένων από τη επιλεγμένη μάρκα.

Αυτό επιτυγχάνετε με χρήση της AJAX (Asynchronous JavaScript And

XML). Ο επισκέπτης αρκεί μόνο να επιλέξει τη μάρκα που τον ενδιαφέρει

για να μπορέσει να πραγματοποιήσει μια αναζήτηση. Πατώντας το κουμπί

αναζήτηση, γίνεται έλεγχος από το σύστημα για το εάν έχει επιλεχθεί

μάρκα με χρήση της συνάρτηση Spry.Widget.ValidationSelect της AJAX.

Τέλος, αν ο επισκέπτης επιθυμεί μια πιο σύνθετη αναζητήσει αρκεί μόνο να

πατήσει στην ετικέτα ‘Σύνθετη αναζήτηση’ και θα μεταφερθεί στην

ακόλουθη φόρμα.

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

- 32 -

Page 33: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.2 Η φόρμα σύνθετης αναζήτησης

Εικόνα 5.1.2

Η παραπάνω φόρμα (Εικόνα 5.1.2) είναι η φόρμα της σύνθετης

αναζήτησης στην οποία εκτός από τη μάρκα, το μοντέλο, το έτος και τι

τιμή, υπάρχουν επιλογές για τα κυβικά τα χιλιόμετρα την ιπποδύναμη τα

καύσιμα και την κατηγορία που ανήκει το αυτοκίνητο. Επίσης υπάρχει και η

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

ανάλογα με της προτιμήσεις του επισκέπτη το ερώτημα που εκτελείτε στον

πίνακα cars της βάση δεδομένων μεταβάλετε. Έτσι μπορεί να έχουμε ένα

πολλή μικρό ερώτημα που να ζητάει να εμφανισθούν όλες οι εγγραφές μιας

συγκεκριμένης μάρκας έως ένα πολλή μεγάλο ερώτημα που να

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

- 33 -

Page 34: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

περιλαμβάνει έως και 37 παραμέτρους. Άρα το ερώτημα που θα εκτελείτε

κάθε φορά πρέπει να δημιουργείτε δυναμικά. Αυτό πραγματοποιείτε με τον

εξής τρόπο, παίρνουμε τα δεδομένα από τη φόρμα αναζήτησης με τη

μέθοδο $_POST[ ] , και με την χρήση μεταβλητών και των εντολών

ελέγχου if else και isset δημιουργούμε το ερώτημα.

5.3 Αποτελέσματα αναζήτησης

Εικόνα 5.1.3

Η παραπάνω φόρμα (Εικόνα 5.1.3) μας επιστρέφει όσες εγγραφές

υπάρχουν στο πίνακα cars της βάση δεδομένων, οι οποίες συμφωνούν με

τα κριτήρια που έχει επιλέξει ο επισκέπτης σε μια από τις φόρμες

αναζήτησης. Με χρήση της JOIN συλλέγονται οι πληροφορίες από τους

πίνακες cars, brands και models για να πάρουμε το τελικό αποτέλεσμα. Αν

η αναζήτηση δεν φέρει κανένα αποτέλεσμα τότε εμφανίζετε ένα μήνυμα

στον επισκέπτη που τον ενημερώνει και τον οδηγεί στην αρχική σελίδα.

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

- 34 -

Page 35: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Πατώντας την ετικέτα ‘Αναλυτικά’ ή επάνω στην εικόνα του αυτοκινήτου, ο

επισκέπτης θα μεταβεί στην επόμενη φόρμα που θα υπάρχει η αναλυτική

παρουσίαση του αυτοκινήτου.

5.4 Αναλυτική παρουσίαση αυτοκινήτου – Επικοινωνία με το κάτοχο

Εικόνα 5.1.4

Στην σελίδα αυτή (Εικόνα 5.1.4) παρουσιάζεται η αναλυτική

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

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

- 35 -

Page 36: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

μια φόρμα επικοινωνίας η οποία στέλνει ένα email στον κάτοχο το οποίο περιέχει το ονοματεπώνυμο του επισκέπτη, το email του, το μήνυμα που έχει πληκτρολογήσει, καθώς και τα απαραίτητα στοιχεία και το link του αυτοκινήτου για να του διευκρινίσει για ποιο αυτοκίνητο εκδηλώθηκε ενδιαφέρον. 5.5 Φόρμα εγγραφής μέλους

Εικόνα 5.1.5

Στη φόρμα αυτή (Εικόνα 5.1.5) ο επισκέπτης της σελίδας μπορεί να δηλωθεί ως μέλος. Συμπληρώνοντας τη σχετική φόρμα δίνει τα απαραίτητα στοιχεία για την εγγραφή του και δημιουργείται μια νέα εγγραφή στον πίνακα users της βάσης. Όταν χρήστης πατήσει το κουμπί Εγγραφή, γίνεται έλεγχος από το σύστημα αν έχουν συμπληρωθεί όλα τα υποχρεωτικά πεδία και αν τα στοιχεία που έδωσε ο χρήστης είναι αναμενόμενου τύπου, με χρήση της συνάρτηση Spry.Widget.ValidationTextField της AJAX. Αφού ολοκληρωθεί ο έλεγχος, τα στοιχεία στέλνονται με μέθοδο POST στο αρχείο register.php. To register.php ελέγχει αν το username και τι email που δόθηκαν υπάρχουν ήδη στο σύστημα. Αν υπάρχουν εμφανίζει σχετικό μήνυμα και σταματάει την διαδικασία εγγραφής. Αν δεν υπάρχουν, κωδικοποιεί το password που δόθηκε με κωδικοποίηση ΜD5 και δημιουργεί μία νέα εγγραφή στον πίνακα users στην βάση.

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

- 36 -

Page 37: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.6 Φόρμα εισόδου μέλους

Εικόνα 5.1.6

Ο χρήστης για να συνδεθεί στο σύστημα δίνει το Όνομα χρήστη και το Κωδικό πρόσβασης του στην ειδική φόρμα (Εικόνα 5.1.6). Πατώντας Είσοδος, τα στοιχεία αποστέλλονται στο αρχείο login.php. Το αρχείο αυτό, αρχικά κωδικοποιεί το password με κωδικοποίηση md5 για να μπορεί να κάνει σωστή σύγκριση με τη βάση. Συνδέεται στη βάση και ψάχνει να βρει αν υπάρχει εγγραφή με τα δοθέντα όνομα χρήστη και κωδικό πρόσβασης ενώ παράλληλα θα πρέπει το status αυτού του μέλους να δηλώνει ότι είναι ενεργός χρήστης. Αν δεν υπάρχει τέτοια εγγραφή τότε ο χρήστης έχει τις εξής επιλογές: α) Να εγγραφεί στη σελίδα. β) Να γίνει υπενθύμιση του κωδικού πρόσβασης. γ) Να προσπαθήσει ξανά. Αν υπάρχει η εγγραφή τότε το σύστημα ελέγχει αν πρόκειται για απλό χρήστη ή για τον administrator και τον ανακατευθύνει στην αντίστοιχη σελίδα. Τέλος ενεργοποιείτε η συνάρτηση $_SESSION ( Έναρξη Συνόδου ) για να γνωρίζει η σελίδα ποιος είναι συνδεδεμένος ώστε να του εμφανίζει σωστές πληροφορίες αλλά και για την απλοποίηση των queries. 5.7 Φόρμα υπενθύμισης κωδικού πρόσβασης

Εικόνα 5.1.7

Όταν ένας χρήστης δεν θυμάται το κωδικό πρόσβασης του, το μόνο που χρειάζεται να κάνει είναι να συμπληρώσει το email το στη παραπάνω φόρμα (Εικόνα 5.1.7). Πατώντας Επόμενο γίνετε έλεγχος για το αν υπάρχει μέλος με το συγκεκριμένο email. Αν υπάρχει ο κωδικός πρόσβασης του, αντικαθιστάτε και τη θέση του παίρνει ένα τυχαίο επταψήφιο αλφαριθμητικό. Ο νέος κωδικός πρόσβασης και το όνομα χρήστη αποστέλλονται στο email του χρήστη.

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

- 37 -

Page 38: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.8 Σελίδα διαχείρισης μέλους

Εικόνα 5.1.8.1

Η σελίδα αυτή (Εικόνα 5.1.8.1) είναι η σελίδα διαχείρισης μέλους. Από εδώ ο χρήστης μπορεί να κάνει νέες καταχωρίσεις, και να επεξεργαστεί το λογαριασμό του.

Εικόνα 5.1.8.2

Αυτή είναι η μορφή της σελίδας (Εικόνα 5.1.8.2) διαχείρισης όταν ο χρήστης έχει κάνει ορισμένες καταχωρίσεις. Όπως φαίνετε και στη σελίδα από εδώ γίνετε και η διαχείριση των καταχωρίσεων. Επιλέγοντας τη προβολή μιας καταχώρησης μεταφερόμαστε σε μια σελίδα παρόμοια με την Αναλυτική παρουσίαση αυτοκινήτου 5.4. Η μόνη διαφορά είναι ότι σε αυτή τη σελίδα απουσιάζουν τα στοιχεία του κατόχου και η φόρμα επικοινωνίας.

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

- 38 -

Page 39: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.9 Φόρμα εισαγωγής νέου αυτοκινήτου

Εικόνα 5.1.9

Στη φόρμα αυτή (Εικόνα 5.1.9) ο χρήστης μπορεί να εισάγει ένα νέο αυτοκίνητο στο πίνακα cars. Η μάρκα, το μοντέλο, το έτος και η τιμή είναι υποχρεωτικά πεδία. Η μάρκα, το μοντέλο και η κατηγορία αντλούνται δυναμικά από τους πίνακες brands, models και categories αντίστοιχα. Όταν επιλεχθεί μια μάρκα αυτομάτως ενημερώνετε το μενού επιλογής του μοντέλου και αντλεί από τη βάση μόνο τα μοντέλα της συγκεκριμένης μάρκας. Αυτό επιτυγχάνετε με χρήση της AJAX. Όταν χρήστης πατήσει το

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

- 39 -

Page 40: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

κουμπί Καταχώρηση, γίνεται έλεγχος από το σύστημα αν έχουν συμπληρωθεί όλα τα υποχρεωτικά πεδία με χρήση της συνάρτησης Spry.Widget.ValidationTextField και Spry.Widget.ValidationSelect της AJAX. Αφού ολοκληρωθεί ο έλεγχος, τα στοιχεία στέλνονται με μέθοδο POST στο αρχείο insert.php. Αν υπάρχουν φωτογραφίες, το όνομα τους καταχωρείται στη βάση και τα αρχεία ανεβαίνουν στον server περνώντας από μια επεξεργασία που δημιουργεί δυο φωτογραφίες, μια μικρή και μια μεγάλη, για κάθε μια φωτογραφία που ανεβάζει ο χρήστης. 5.10 Φόρμα διαγραφής αυτοκινήτου

Εικόνα 5.1.10

Στη φόρμα αυτή (Εικόνα 5.1.10) ο χρήστης μπορεί να διαγράψει τη καταχώρηση του. Το μόνο που έχει να κάνει είναι να επιλέξει το λόγο για τον οποίο πραγματοποιεί τη διαγραφή και να πατήσει το αντίστοιχο κουμπί. Αυτό που ουσιαστικά όμως γίνετε δεν είναι η πλήρης διαγραφή της καταχώρησης, αλλά το μόνο που διαγράφετε οριστικά είναι οι φωτογραφίες από τον server. Όσο για την καταχώρηση στη βάση παραμένει ως έχει απλά αλλάζει το status του αυτοκινήτου.

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

- 40 -

Page 41: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.11 Φόρμα επεξεργασίας αυτοκινήτου

Εικόνα 5.1.11

Η φόρμα επεξεργασίας αυτοκινήτου (Εικόνα 5.1.11) είναι ακριβώς η ίδια φόρμα με αυτή της εισαγωγής. Αυτή η φόρμα όμως μας επιστρέφετε συμπληρωμένη με τα στοιχεία του αυτοκίνητου. Με αυτό το τρόπο ο χρήστης μπορεί εύκολα να εντοπίσει και να πραγματοποιήσει τις αλλαγές που επιθυμεί.

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

- 41 -

Page 42: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.12 Φόρμα επεξεργασίας λογαριασμού μέλους

Εικόνα 5.1.12

Η φόρμα επεξεργασίας λογαριασμού μέλος (Εικόνα 5.1.12) είναι ακριβώς η ίδια φόρμα με αυτή της εγγραφής μέλους, απουσιάζει όμως ο κωδικός πρόσβασης. Επιστρέφετε συμπληρωμένη με τα στοιχεία του μέλους, έτσι μπορεί να κάνει εύκολα αλλαγές στα στοιχεία που ήδη είναι καταχωρημένα η να συμπληρώσει κάποιο στοιχείο που είχε αφήσει κενό κατά την εγγραφή του. Αν ο χρήστης επιθυμεί να αλλάξει το ψευδώνυμο χρήστη ή το email, τότε γίνετε έλεγχος στο πίνακα users για το αν είναι διαθέσιμα ή ανήκουν σε κάποιο άλλο μέλος. Στη περίπτωση που δεν είναι διαθέσιμα ο χρήστης ενημερώνεται και καλείται να προσπαθήσει ξανά. Από εδώ επίσης ο χρήστης μπορεί να μεταφερθεί στις αντίστοιχες σελίδες για να αλλάξει τον κωδικό πρόσβασης του ή να διαγράφει από μέλος της σελίδας. 5.13 Φόρμα αλλαγής κωδικού πρόσβασης

Εικόνα 5.1.13

Στη φόρμα αυτή (Εικόνα 5.1.13) ο χρήστης μπορεί να αλλάξει το κωδικό πρόσβασης του. Το μόνο που έχει να κάνει είναι να πληκτρολογήσει το κωδικό πρόσβασης που είχε ως τώρα, και έπειτα να πληκτρολογήσει δυο φορές το νέο κωδικό που έχει επιλέξει. Πατώντας Καταχώρηση γίνετε επιβεβαίωση του παλιού κωδικού, και ελέγχετε αν ο νέος είναι σωστά επαναπληκτρολογημένος.

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

- 42 -

Page 43: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.14 Φόρμα διαγραφής μέλους

Εικόνα 5.1.14

Η φόρμα αυτή (Εικόνα 5.1.14) είναι η φόρμα διαγραφής χρηστή. Η φόρμα εμφανίζετε συμπληρωμένη με τα στοιχεία του μέλους σε κατάσταση Disable. Αν ο χρήστης επιλέξει να διαγραφεί τότε γίνετε έλεγχος στο πίνακα cars για το αν υπάρχουν εγγραφές του χρήστη στο πίνακα. Αν υπάρχουν εγγραφές τότε αλλάζει το status του χρήστη και τον καθιστά ανενεργό και το ίδιο συμβαίνει και με το status των συγκεκριμένων καταχωρίσεων του χρήστη. Αν ο χρήστης δεν έχει κάνει καμία καταχώριση τότε διαγράφεται από τον πίνακα users οριστικά. Τέλος ο χρήστης επιστρέφει στην αρχική σελίδα, και με τις συναρτήσεις session_destroy() και unset() τερματίζετε η Σύνοδος και ακυρώνονται οι μεταβλητές αντίστοιχα. 5.15 Έξοδος μέλους Όταν ένα μέλος επιλέξει να εξέλθει από την εφαρμογή τότε το αρχείο logout.php τερματίζει τη Σύνοδο και ακυρώνει τις μεταβλητές συνόδου με τις συναρτήσεις session_destroy() και unset() αντίστοιχα και τον ανακατευθύνει στην αρχική σελίδα.

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

- 43 -

Page 44: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.16 Φόρμα εγγραφής - διαγραφείς στα Newsletters

Εικόνα 5.1.16

Στη φόρμα αυτή (Εικόνα 5.1.16) ο επισκέπτης μπορεί να εγγραφή στα Newsletters τις σελίδας δίνοντας το ονοματεπώνυμο του και το email του. Αρχικά είναι τσεκαρισμένη η επιλογή με την οποία ο χρήστης ενημερώνεται για όλα τα νέα μοντέλα που καταχωρούνται στη βάση. Για να ενημερώνεται για συγκεκριμένα οχήματα αρκεί να πατήσει επάνω στην προηγούμενη επιλογή για να την απενεργοποιήσει και αμέσως θα ενεργοποιηθεί η φόρμα που βρίσκετε ακριβώς από κάτω. Εκεί μπορεί να προσδιορίσει τι ακριβώς τον ενδιαφέρει έτσι ώστε να ενημερώνεται μόνο για αυτές τις καταχωρίσεις. Όταν γίνει μια νέα εγγραφή ενός νέου αυτοκινήτου, αμέσως γίνεται αναζητήσει στον πίνακα newsletter και ενημερώνονται με ένα email όσοι χρήστες ενδιαφέρονται για τη συγκεκριμένη καταχώρηση. Ο χρήστης έχει τη δυνατότητα να διαγραφεί από τα Newsletters πληκτρολογώντας το email τους στο κατάλληλο πεδίο και πατώντας έπειτα το κουμπί Διαγραφή.

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

- 44 -

Page 45: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.17 Κεντρική σελίδα Διαχειριστή

Εικόνα 5.1.17

Όταν κατά τη διάρκεια εισόδου ενός χρήστη, το σύστημα αντιληφθεί ότι πρόκειται για διαχειριστή και όχι για απλό μέλος, τον μεταφέρει αυτόματα στη κεντρική σελίδα του διαχειριστή (Εικόνα 5.1.17). Στη κεντρική σελίδα εμφανίζονται στοιχεία που έχουν να κάνουν με τα οχήματα και με τα μέλη (πωλητές). Επίσης από εδώ μπορεί να μεταβεί στη σελίδα καταχώρησης, διαγραφής, ενημέρωσης, αλλαγής στοιχείων ή να εξέλθει. Η έξοδος του διαχειριστή γίνετε με τον ίδιο τρόπο με αυτή του απλού μέλους όποτε δεν είναι απαραίτητο να επεκταθούμε. Όπως επίσης και η αλλαγή τον στοιχείων γίνετε με τον ίδιο τρόπο, μόνο που ο διαχειριστής ως προεπιλεγμένο όνομα το administrator και δεν μπορεί να αλλάξει.

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

- 45 -

Page 46: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.18 Φόρμα καταχώρισης

Εικόνα 5.1.18

Στη φόρμα αυτή (Εικόνα 5.1.18) ο διαχειριστής μπορεί να καταχωρίσει νέες μάρκες, νέα μοντέλα και κατηγορίες στους πίνακες brands, models και categories αντίστοιχα.

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

- 46 -

Page 47: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.19 Φόρμα διαγραφής

Εικόνα 5.1.19

Στη φόρμα αυτή (Εικόνα 5.1.19) ο διαχειριστής μπορεί να διαγράψει μάρκες, μοντέλα και κατηγορίες από τους πίνακες brands, models και categories αντίστοιχα.

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

- 47 -

Page 48: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.20 Φόρμα ενημέρωσης

Εικόνα 5.1.20

Στη φόρμα αυτή (Εικόνα 5.1.20) ο διαχειριστής μπορεί να ενημερώσει τα σχόλια μιας μάρκας, ενός μοντέλου η μιας κατηγορίας από τους πίνακες brands, models και categories αντίστοιχα.

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

- 48 -

Page 49: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

5.21 Ασφάλεια Συστήματος Τα θέματα ασφάλειας που έπρεπε να αντιμετωπίσουμε είχαν να κάνουν με την πρόσβαση στη βάση δεδομένων(αναλύθηκε στο κεφάλαιο 4.3), την αποθήκευση των κωδικών των μελών, αλλά και την πρόσβαση που πρέπει να έχουν διαφορετικά μέλη σε σελίδες του site.

5.21.1 Προστασία Κωδικών Πρόσβασης Ένα σημαντικό σημείο είναι η αποθήκευση των κωδικών στη βάση. Όλα τα passwords αποθηκεύονται στη βάση με MD5() κωδικοποίηση. Με αυτή την κωδικοποίηση ο κωδικός πρόσβασης γίνεται μία συμβολοσειρά από δεκαεξαδικούς χαρακτήρες. Όταν ο χρήστης προσπαθεί να συνδεθεί στο site, ο κωδικός που γράφει κωδικοποιείτε με την ίδια κωδικοποίηση και έτσι γίνετε η σύγκριση με τη βάση.

5.21.2 Προστασία Πληροφοριών Μελών

Τέλος, έχουμε αφιερώσει αρκετό χρόνο στις σελίδες που μπορεί να βλέπει το κάθε μέλος. Για παράδειγμα, όταν ένας χρήστης βρίσκετε στη φόρμα διαγραφής ή επεξεργασίας μιας καταχώρισης, στο URL φαίνεται το id της συγκεκριμένης εγγραφής, αν από «περιέργεια» γράψει ένα άλλο id, υπάρχει το ενδεχόμενο να προβάλει μια καταχώριση ενός Άλου χρήστη και να έχει τι δυνατότητα να την επεξεργαστή ή να την διαγράψει. Κάτι τέτοιο δεν είναι θεμιτό γι’αυτό και στο site υπάρχουν συνεχείς έλεγχοι για την πιστοποίηση του συνδεδεμένου χρήστη και των αιτημάτων που ζητάει από τη βάση.

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

- 49 -

Page 50: Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ Κnefeli.lib.teicrete.gr/browse/stef/epp/2007/... · 2008. 7. 11. · Αναλυτική παρουσίαση ... web

Κεφάλαιο 6 - Βιβλιογραφία - Πηγές

Ελληνική Βιβλιογραφία

Luke Wellig και Laura Thomson “Ανάπτυξη Web Εφαρμογών με PHP και MySQL”

Μάθετε PHP, MySQL και APACHE Όλα σε Ένα, MELONI J

Ξενόγλωσση Βιβλιογραφία

Web Applications Development With PHP4 PHP and MySQL Programming for the absolute beginner O'Reilly - Web Database Applications with PHP and MySQL 2nd

Edition O'Reilly - Programming PHP Beginning PHP Apache MySQL Web Development Professional PHP Programming PHP5 And MySQL Bible O'Reilly - Learning PHP and MySQL

Πηγές από το διαδίκτυο

www.php.net www.mysql.com www.apache.org www.w3c.org www.tizag.com www.htmlfixit.com www.dynamicdrive.com www.zend.com www.devshed.com www.phpfreaks.com www.mattkruse.com www.useit.com www.w3schools.com http://el.wikipedia.org/wiki/PHP

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

- 50 -