της ΕΛΕΝΗΣ ΚΥΤΙΔΟΥ ΚΑΤΙΡΤΖΗ Πτυχίο Τ.Ε.Ι. στην επιστήμη της Πληροφορικής Τ.Ε.Ι. Καβάλας Εγκρίθηκε από τον/την Πρόεδρος της εποπτεύουσας επιτροπής



Σχετικά έγγραφα
Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

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

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


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

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

XAMPP Apache MySQL PHP javascript xampp

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

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

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

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

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

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

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


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

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004

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

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Περιεχόμενα. Αντί προλόγου Πώς να χρησιμοποιήσετε το βιβλίο Κεφάλαιο 1: Πώς δημιουργώ το Προφίλ μου στο Facebook;...

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

Vodafone Business Connect

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

Manual. Εκλογές 15μελούς Σχολείου v4.0 Module καταχώρησης ψηφοδελτίων από την Εφορευτική Επιτροπή

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

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

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

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

Δικτυακοί τόποι. Η σχεδίαση ενός δικτυακού τόπου. Δρ. Ματθαίος Α. Πατρινόπουλος

Αύξηση πελατών. Λίγα λόγια για Επιτυχημένες προωθήσεις

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

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

GobiExport: Millennium Orders Γ Ρ Α Φ Ε Ι Ο Δ Ι Α Χ Ε Ι Ρ Ι Σ Η Σ Υ Λ Ι Κ Ο Υ - Τ Μ Η Μ Α Π Α Ρ Α Γ Γ Ε Λ Ι Ω Ν Ε Ν Τ Υ Π Ο Υ Υ Λ Ι Κ Ο Υ

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

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

ΠΙΣΤΟΠΟΙΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΕΦΑΡΜΟΓΩΝ ΔΙΑΔΙΚΤΥΟΥ ΜΕ ΤΗ ΧΡΗΣΗ PHP MYSQL CSS «Certified Web Developer using PHP, MySQL & CSS» SYLLABUS. Έκδοση 1.

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

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

Εγχειρίδιο Χρήστη - Μαθητή

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

Kaloudia Το No1 ηλεκτρονικό εργαλείο αναζήτησης και προώθησης παραδοσιακών προϊόντων από όλη την Ελλάδα!

Vodafone Business Connect

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

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

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

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

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

5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ

Διαχειριστικό σύστημα ονομάτων χώρου

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

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

Μάθημα 4ο. Προγράμματα

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

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

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ

Υπηρεσία διαμοιρασμού αρχείων

Εγκατάσταση της Unity

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

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

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

ΕΡΩΤΗΜΑΤΟΛOΓΙΟ ΣΧΟΛΕIΟΥ: ΕΓΧΕΙΡIΔΙΟ ΔΙΕΥΘΥΝΤΉ/ΝΤΡΙΑΣ. Doc.: CY7_CBA_ScQPrincipalManual.docx. Δημιουργήθηκε από: ETS, Core Α Contractor

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

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

MANUAL PRESTASHOP 1.6

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

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

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

Ανακατασκευή του site του Εργαστηρίου Αρχιτεκτονικής και ικτύων Υπολογιστών

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

Βασικές Οδηγίες Χρήσης της Εφαρμογής

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

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

Βασικές λειτουργίες διαδανεισμού μέσα από το σύστημα SmILLe

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

server : Ο υπολογιστής του καθηγητή που θέλουμε να ελέγχει τους υπόλοιπους του εργαστηρίου client : Οι υπολογιστές των μαθητών

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

databases linux - terminal (linux / windows terminal)

Περιεχόμενα. Τεχνικό εγχειρίδιο χρήσης IBNEWSLETTER

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

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

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

Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης

Οδηγός Ηλεκτρονικής Αίτησης

ΣΧΕΔΙΑΣΜΟΣ ΙΣΤΟΣΕΛΙΔΑΣ ΜΕ ΤΗ ΧΡΗΣΗ ΠΡΟΤΥΠΟΥ ΙΣΤΟΣΕΛΙΔΑΣ (TEMPLATE) ΣΤΟ ΠΡΟΓΡΑΜΜΑ MICROSOFT OFFICE SHAREPOINT DESIGNER 2007

Οδηγός Χρήσης Η-Βιβλίων Ebrary ΒΙΒΛΙΟΘΗΚΗ & ΚΕΝΤΡΟ ΠΛΗΡΟΦΟΡΗΣΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΥΚΩΣΙΑΣ

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

Gmail: Η προσέγγιση της Google στο ηλεκτρονικό ταχυδρομείο

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

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

Απόσυρσης Παλαιού Εξοπλισµού Η/Υ του ΑΤΕΙΘ»

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

e-κπαίδευση Πλατφόρµα Ασύγχρονης Τηλε-κπαίδευσης Οδηγίες χρήσης για τους σπουδαστές του ΤΕΙ Αθήνας και τους επισκέπτες της δικτυακής πύλης e-κπαίδευση

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

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Δημιουργία ερωτηματολογιου με την πλατφόρμα Limesurvey

Transcript:

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Λίστα σχημάτων... ii Λίστα σχημάτων... iii Ευχαριστίες... iv Γλωσσάρι... v Κεφάλαιο I: Οργάνωση και κατασκευή ενός site... 1 Σημαντικά σημεία που συνιστούν προσοχή κατά την οργάνωση & κατασκευή... 2 Βασικά λάθη κατά τον σχεδιασμό μιας ιστοσελίδας... 4 Φάσεις ανάπτυξης ενός site... 8 Κεφάλαιο II :Προγράμματα που θα χρησιμοποιήσουμε για τον σχεδιασμό του ιστοχώρου της on-line Βιβλιοθήκης... 9 Λίγα λόγια για το MySQL... 9 Πλεονεκτήματα του MySQL... 9 Λίγα λόγια για την PHP... 10 Τι μπορεί να κάνει η PHP... 11 Πλεονεκτήματα την PHP... 13 Γιατί χρησιμοποιούμε την PHP και το MySQL... 14 Κεφάλαιο III: Σχεδιασμός της Βάσης Δεδομένων με την βοήθεια του MySql Control Center...15 Δημιουργία της Βάσης Δεδομένων... 15 Δημιουργία πινάκων της Βάσης Δεδομένων... 15 Δημιουργία του πίνακα book_accusation και ανάλυση των πεδίων του... 16 Δημιουργία του πίνακα book_material και ανάλυση των πεδίων του... 16 Δημιουργία του πίνακα books και ανάλυση των πεδίων του... 16 Δημιουργία του πίνακα books_review και ανάλυση των πεδίων του... 18 Δημιουργία του πίνακα library_item και ανάλυση των πεδίων του... 19 Δημιουργία του πίνακα places και ανάλυση των πεδίων του... 19 Δημιουργία του πίνακα rent και ανάλυση των πεδίων του... 20 Δημιουργία του πίνακα users και ανάλυση των πεδίων του... 20 Δημιουργία του πίνακα users_gategories και ανάλυση των πεδίων του... 21 Δημιουργία του πίνακα sxolia και ανάλυση των πεδίων του... 21 Εισαγωγή των δεδ/νων στους πίνακες της Βάσης μας... 23 Περιεχόμενα του πίνακα book_accusation... 23 Περιεχόμενα του πίνακα book_material... 23 Περιεχόμενα του πίνακα places... 23 Περιεχόμενα του πίνακα users... 24 Περιεχόμενα του πίνακα users_gategories... 24 Κεφάλαιο IV :Ερωτήσεις SQL για την Βάση Δεδομένων... 25

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Κεφάλαιο V :Σχεδιασμός του ιστοχώρου με την βοήθεια του Microsoft Front Page και την χρήση της γλώσσας προγραμματισμού PHP... 31 Δημιουργία του ιστοχώρου... 31 Δημιουργία κεντρική σελίδας... 32 Δημιουργία πρώτου frame κεντρικής σελίδας... 33 Δημιουργία δεύτερου frame κεντρικής σελίδας... 34 Δημιουργία τρίτου frame κεντρικής σελίδας με PHP... 35 Δημιουργία σελίδας αίτησης εγγραφής... 37 PHP script για την εισαγωγή στοιχείων που δίνει ο χρήστης για την εγγραφή του στον πίνακα της βάσης δεδ/νων... 38 Δημιουργία σελίδας πληροφοριών σχετικά με την δημιουργία του ιστοχώρου... 42 PHP script για τον έλεγχο της εισόδου των φοιτητών... 43 Δημιουργία κεντρικής σελίδας φοιτητών... 46 Σελίδες που εμφανίζονται χρησιμοποιώντας τα κουμπιά της κεντρικής σελίδας φοιτητών... 48 Σελίδα κανόνες δανεισμού... 48 Σελίδα υπηρεσίες της βιβλιοθήκης... 48 Σελίδα αναζητήσεων υλικού βιβλιοθήκης... 49 PHP script για τις αναζητήσεις υλικού της βιβλιοθήκης... 53 PHP script για την σύνθετη υλικού της βιβλιοθήκης... 59 Σελίδα Βάσης Δεδομένων... 65 Σελίδα Σχόλια... 65 PHP script για την εισαγωγήσχολίου... 66 PHP script για τον έλεγχο της εισόδου των διαχειριστών... 68 Κεντρική σελίδα διαχειριστών... 70 Σελίδα διαχείρισης της βάσης δεδομένων... 71 Σύνδεσμος Κριτική Βιβλίων... 71 PHP script για την εισαγωγή κριτικής... 73 PHP script για την διαγραφή κριτικής... 75 Σύνδεσμος Σχόλια... 76 PHP script για την εισαγωγή σχόλιου... 78 PHP script για την διαγραφή σχόλιου... 79 Σύνδεσμος Ενοικίασης... 80 PHP script για την εισαγωγή ενοικίασης... 83 PHP script για την διαγραφή ενοικίασης... 85 Σύνδεσμος Υλικού Βιλιοθήκης... 86 PHP script για την εισαγωγή υλικού... 89 Σελίδα για την διαγραφή- τροποποίηση υλικού... 91 PHP script για την διαγραφή- τροποποίηση υλικού... 94 Σύνδεσμος Χρήστες... 96 PHP script για την εισαγωγή χρήστη... 98 PHP script για την διαγραφή χρήστη... 101 ii

Σύνδεσμος Κατηγορίες Υλικού... 102 PHP script για την εισαγωγή κατηγορία υλικού... 102 PHP script για την διαγραφή τροποποίηση κατηγορία υλικού... 104 Σύνδεσμος Κατηγορίες Χρήστη... 105 PHP script για την εισαγωγή κατηγορία Χρήστη... 105 PHP script για την διαγραφή τροποποίηση κατηγορία Χρήστη... 107 Σύνδεσμος Κατηγορίες Τομείς Υλικού... 108 PHP script για την εισαγωγή κατηγορία Τομέα Υλικού... 108 PHP script για την διαγραφή τροποποίηση κατηγορία Τομέα Υλικού... 109 Σύνδεσμος Τοποθεσίες που βρίσκονται τα βιβλία... 111 PHP script για την εισαγωγή Τοποθεσίας... 111 PHP script για την διαγραφή τροποποίηση Τοποθεσίας... 112 iii

Λίστα σχημάτων Αριθμός Σελίδα 1. Παράθυρο που εμφανίζεται για την δημιουργία της Βάσης 15 2. Παράθυρο που εμφανίζεται για την δημιουργία των πεδίων των πινάκων 15 3. Πίνακας book_accusation 16 4. Πίνακας book_material 16 5. Πίνακας books 16 6. Πίνακας books_review 18 7. Πίνακας library_item 19 8. Πίνακας places 19 9. Πίνακας rent 20 10. Πίνακας users 20 11. Πίνακας users_gategories 21 12. Πίνακας sxolia 21 13. Περιεχόμενα του πίνακα book_accusation 23 14. Περιεχόμενα του πίνακα book_material 23 15. Περιεχόμενα του πίνακα places 23 iv

Λίστα σχημάτων Αριθμός Σελίδα 16. Περιεχόμενα του πίνακα users 24 17. Περιεχόμενα του πίνακα users_gategories 24 v

ΕΥΧΑΡΙΣΤΙΕΣ Η συντάκτρια επιθυμεί να εκφράσει την ειλικρινή του ευγνωμοσύνη στον καθηγητή κ. Βασίλειο Χατζή για την σημαντική βοήθεια κατά το πρώτο στάδιο του προγραμματισμού αυτού του έργου αλλά και για την αρωγή του κατά την εκπόνηση της εργασίας αυτής. Ένα θερμό ευχαριστώ στα μέλη του εκπαιδευτικού συμβουλίου για την πολύτιμη συνεισφορά τους. vi

ΓΛΩΣΣΑΡΙ ΜySQL Πολύ γρήγορο δυνατό σύστημα διαχείρισης βάσεων δεδομένων - πολυνηματικός διακομιστής πολλαπλών χρηστών Php ευρέως χρησιμοποιούμενη,ανοιχτού κώδικα, γενικού σκοπού scripting γλώσσα προγραμματισμού,κατάλληλη για ανάπτυξη εφαρμογών στο web, η οποία ενσωματώνεται και σε HTML. Διακομιστής Είναι ένας ειδικός υπολογιστής ο οποίος φιλοξενεί τις σελίδες που βλέπετε όταν επισκέπτεστε μια διεύθυνση Ιστού με τον φυλλομετρητή σας vii

Κ ε φ ά λ α ι ο 1 ΟΡΓΑΝΩΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΕΝΟΣ SITE Η οργάνωση είναι το κλειδί της επιτυχίας. Δεν μπορείτε να κατασκευάσετε ένα επιτυχημένο site χωρίς να υπολογίζετε και να καταγράφετε την κάθε σας κίνηση. Πρέπει να τα σχεδιάζετε όλα. Η οργάνωση των σελίδων δεν είναι μόνο το navigation bar, αλλά το κάθε τι που έχει να κάνει με το site. Από το περιεχόμενό του έως το navigation, όπως και το πώς θα γίνει η προώθησή του. Εάν η οργάνωση δεν είναι από τα δυνατά σας σημεία, αυτό θα φανεί και μέσα από τις σελίδες σας. Εμείς φτιάξαμε μια λίστα με μερικά πράγματα που θα πρέπει να προσέξετε για να μη βρεθείτε προ εκπλήξεων. Α. Αρχίστε κάθε νέο site φτιάχνοντας ένα νέο κατάλογο και πάρετε ένα αντίγραφο ασφαλείας. Δεν μπορείτε να φτιάξετε ένα νέο site χωρίς την κατάλληλη αρχειοθέτηση. Έχετε χαρτιά από τον ISP σας, έχετε τα χαρτιά με τους κωδικούς πρόσβασης και τις βασικές οδηγίες από την υπηρεσία που χρησιμοποιείτε για να τοποθετείτε τις σελίδες σας. Κρατήστε όλα αυτά τα χαρτιά μαζί. Το ξέρω πως αυτό ακούγεται πολύ απλό, και ίσως κάπως ανόητο να το λέμε, αλλά πόσοι από εμάς το κάνουν; Κάποια στιγμή αυτά τα χαρτιά θα σας χρειαστούν και τότε θα εύχεστε να ήταν όλα μαζί. Κρατήστε τα ως αρχείο στον σκληρό δίσκο και τυπώστε τα στο χαρτί ή κρατήστε αντίγραφα ασφαλείας. Οι υπολογιστές χαλάνε, τα αρχεία μπορεί και να χαθούν. Αρχειοθετήστε οτιδήποτε αναφέρετε στο περιεχόμενο και την διάρθρωση των σελίδων σας. Αυτή είναι η ασφάλειά σας στην περίπτωση που κάτι δεν πάει καλά ή όταν θα θέλετε να προσθέσετε νέες υπηρεσίες ή σελίδες και δεν ξέρετε πως θα πρέπει να τις παρουσιάσετε μέσα στο site σας. Ακόμα κι όταν φτιάχνετε αυτές τις σελίδες για κάποιον άλλον θα πρέπει να κρατήσετε ένα αντίγραφο και για εσάς, κάποια στιγμή θα σας χρειαστούν. Φτιάξτε ένα ξεχωριστό κατάλογο για τα παλιά σας αρχεία. Ποτέ μη γράφετε μια νέα έκδοση κάποιας σελίδας πάνω στην παλιά χωρίς πρώτα να έχετε κάνει αντίγραφό της. Μπορεί κάποια στιγμή να χρειαστεί να πάρετε κάποια στοιχεία από μια παλιά σελίδα που δεν περιέχονται στην καινούρια. Και έτσι μπορείτε να δείξετε και περισσότερη δουλειά στον πελάτη σας, δείχνοντάς του κάποια από τα στάδια της δουλειά σας. Κάθε φορά που θέλετε να ανανεώσετε ένα site πρώτα εκτυπώστε όλες τις σελίδες του

παλιού και συρράψτε τις. Είναι πιο εύκολο να ξεφυλλίζετε μερικές σελίδες από το να πηγαίνετε πάνω κάτω στους καταλόγους του δίσκου σας. Β. Η σελίδες σας θα πρέπει να είναι οργανωμένες πάνω στον server. Μη κρατάτε όλες τις σελίδες και τα γραφικά στον κεντρικό κατάλογο του server σας. Τίποτα δεν είναι πιο ανοργάνωτο από 600 αρχεία διαφορετικού τύπου σε έναν και μόνο κατάλογο. Πως θα μπορέσετε να δουλέψετε έτσι; Κι αν χρειαστεί κάποια αλλαγή μια σελίδα, πως θα την βρείτε μέσα σε όλον αυτόν τον χαμό; Τα αρχεία στον υπολογιστή σας δεν είναι οργανωμένα με αυτόν τον τρόπο, γιατί θα πρέπει να είναι έτσι τα αρχεία στον server σας; Κατασκευάστε μια δενδρική μορφή από καταλόγους, ανάλογα με το θέμα και την υπηρεσία που προσφέρουν οι συγκεκριμένες σελίδες. Φτιάξτε καταλόγους και υποκαταλόγους για κάθε μια ενότητα ξεχωριστά. Στον κεντρικό κατάλογο θα πρέπει να υπάρχει μόνο το index.html και το πολύ ένα - δύο βοηθητικά αρχεία. Τίποτα παραπάνω. Οι εικόνες θα πρέπει, και αυτές με την σειρά τους, να έχουν τους δικούς τους υποκαταλόγους ταξινομημένες ανάλογα με τον σκοπό που εξυπηρετούν μέσα στις σελίδες σας. Τα γραφικά που έχουν να κάνουν με μια συγκεκριμένη ενότητα θα πρέπει να μπαίνουν κάτω από αυτή την ενότητα ώστε ανά πάσα στιγμή να γνωρίζετε που θα βρείτε το κάθε ένα. Γ. Το navigation των σελίδων σας θα πρέπει να είναι ξεκάθαρο στον χρήστη και να μη τον παιδεύει άσκοπα. Ο βασικός κανόνας είναι πως δε θα πρέπει να χρειάζεται πάνω από τρία πατήματα στο ποντίκι του για να βρεθεί στην σελίδα που τον ενδιαφέρει. Αν αυτό που ψάχνει εσείς το έχετε καταχωνιάσει έξη σελίδες παρακάτω από την κεντρική το πιο πιθανό είναι εσείς να χάσετε έναν πιθανό πελάτη και αυτός να χάσει την ευκαιρία να αποκτήσει κάποιο από τα προϊόντα σας. Αρχίστε από την κεντρική σελίδα, βάλτε στόχο να βρείτε κάποια πληροφορία που είναι πιθανό να αναζητήσει κάποιος επισκέπτης σας. Εάν χρειαστείτε να περάσετε πάνω τρεις σελίδες για να βρεθείτε στον στόχο που έχετε βάλει, τότε θα πρέπει να αναθεωρήσετε κάποια πράγματα στο navigation του site σας. Να θυμάστε πάντα, τρία click μακριά και ούτε ένα παραπάνω. Σιγουρευτείτε πως σε κάθε ενότητα του site σας είναι ξεκάθαρο στον χρήστη από πού ήρθε και που μπορεί να πάει. Προσθέστε στην σελίδα σας κάποιο εργαλείο αναζήτησης, αλλά πρώτα δουλέψτε το εσείς. Δέστε αν φέρνει τα αποτελέσματα που αναμένετε, ότι δεν υστερεί σε ταχύτητα και πως είναι ευανάγνωστό. Ένα κακό εργαλείο αναζήτησης μάλλον σύγχυση θα φέρει στον χρήστη, παρά θα τον βοηθήσει. Διαβάστε από τα στατιστικά σας ποιες σελίδες επισκέπτονται ποιο συχνά οι χρήστες, εάν μέσα στις πρώτες είναι ο χάρτης του site σας τότε κάποιο πρόβλημα υπάρχει στο navigation και 2

θα χρειαστεί να το ξαναδείτε. Δ. Το site σας θα πρέπει να είναι συνεπή στον σχεδιασμό του. Φτιάξτε ένα αρχικό template και ακολουθήστε το πιστά σε κάθε μια από τις επιμέρους ενότητες και σελίδες. Μην αλλάζετε τα χρώματα και τα βασικά σχήματα από σελίδα σε σελίδα. Όλες οι σελίδες του site σας είναι μια ενιαία ενότητα. Μη κάνετε τον χρήστη να νιώθει πως έχει να κάνει με πολλά και διαφορετικά sites. Η πιστότητα στο επιλεγμένο σχήμα των σελίδων είναι το κλειδί για ένα site που έχει στόχο να βοηθήσει τον χρήστη να βρει αυτά που θέλει και όχι να τον αποτρέψει να συνεχίσει την αναζήτησή του μέσα από τις σελίδες σας. Μη χρησιμοποιείτε γραφικά και εικόνες που δεν έχουν καμία σχέση με τον υπόλοιπο σχεδιασμό. Καλύτερα να μη βάλετε τίποτα, παρά να βάλετε κάποια clipart που θα χαλάσουν την οπτική της σελίδας. Μη χρησιμοποιείτε περίεργα και έντονα χρώματα που κουράζουν τον χρήστη, κρατήστε την σελίδα σας απλή και ευχάριστη. Το site σας είναι ο καθρέφτης των υπηρεσιών σας και της επιχείρησής σας στο δίκτυο. Μη χαλάτε αυτή την εικόνα που με τόσο κόπο έχετε φτιάξει. Ρίξτε μια ματιά στις σελίδες σας από την απόσταση του παρατηρητή και με ένα κριτικό βλέμμα, να είστε σίγουροι πως και οι άλλοι αυτό κάνουν κάθε φορά που επισκέπτονται τον εκπρόσωπό σας μέσα στο δίκτυο. Ε. Οργανώστε το πλάνο προώθησης των σελίδων σας. Έχετε ένα site που θέλετε να το δείτε να επιτυγχάνει τους στόχους του. Αυτό δεν μπορεί να το κάνει από μόνο του, μόνο και μόνο επειδή υπάρχει κάπου εκεί στο δίκτυο. Για να επιτύχει θα πρέπει να γίνει και η ανάλογη προώθησή του μέσα από το δίκτυο, αλλά και η απαραίτητη συντήρησή του, ώστε να μη βλέπει ο κόσμος που το επισκέπτες συνέχεια τα ίδια. Σημειώστε στο ημερολόγιο σας κάποιες εργασίες που πρέπει να γίνονται περιοδικά: - Τέσσερις φορές τον χρόνο θα πρέπει να κάνετε κάποια αναθεώρηση στις περιγραφές και στις λέξεις κλειδιά. - Δύο φορές τον χρόνο θα πρέπει να καταχωρείτε τις σελίδες σας στις μηχανές αναζήτησης. - Κάθε φορά που εισάγετε μια νέα υπηρεσία να σημειώνετε την ημερομηνία ώστε να την ξαναδείτε ξανά σε δέκα μήνες τουλάχιστον, μιας και η τεχνολογία συνεχώς εξελίσσεται και συνέχεια βγαίνουν νέα πράγματα που κάνουν την δουλειά μας και την ζωή μας ευκολότερη. - Τουλάχιστον μια φορά τον χρόνο θα πρέπει να κάνετε αλλαγές στις στατικές σας σελίδες. - Να έχετε συνέχεια το νου σας για τις νέες ευκαιρίες που παρουσιάζονται κάθε μέρα και θα σας βοηθήσουν στην καλύτερη προώθηση των σελίδων σας. 3

Αυτή είναι η καλύτερη ώρα για την επιτυχία. Να θυμάστε όμως ότι θα πρέπει να είστε ιδιαίτερα προσεκτικοί στον σχεδιασμό των ιστοσελίδων ώστε να αποφύγετε τυχόν λάθη. Παρακάτω αναφέρονται μερικά από τα πιο βασικά λάθη κατά τον σχεδιασμό μιας ιστοσελίδας. 1. Η χρησιμοποίηση των Frames. Όταν χρησιμοποιούμε frames βγάζουμε, κατά κάποιο τρόπο, τον χρήστη από τα νερά του μιας και η χρησιμοποίησή τους σπάει την βασική εικόνα που έχει σχηματίσει για τις σελίδες. Άλλα προβλήματα που δημιουργούμε στον χρήστη: Δυσκολεύουμε την εκτύπωση των σελίδων, δυσκολεύουμε την καταχώριση μιας συγκεκριμένης σελίδας στα bookmarks - favorites. Ακόμα, όταν κάποιος βάζει σύνδεσμο από την σελίδα του στην δικιά μας θα πρέπει να τον κάνει να δείχνει στην κεντρική σελίδα που φτιάχνει τα frames, αλλιώς όσοι έρχονται από αυτόν τον σύνδεσμο θα βλέπουν μόνο μέρος από τα στοιχεία που εμείς θέλουμε να δούνε. 2. Η αποκλειστική χρησιμοποίηση της τελευταίας λέξης της τεχνολογίας. Μη προσπαθείτε να δελεάσετε τους χρήστες φορτώνοντας την σελίδα σας με την τελευταία τεχνολογία που υπάρχει στο WEB. Μπορεί να δελεάσετε κάποιους που ψάχνουν συνέχεια να βρουν ότι πιο νέο υπάρχει, αλλά τον κυρίως όγκο των χρηστών μάλλον θα το απωθήσετε, μιας και αυτοί αναζητούν το καλό περιεχόμενο. Όταν χρησιμοποιείτε οτιδήποτε τελευταίο που δεν έχει δοκιμαστεί ακόμα, να είστε σίγουροι πως θα χάσετε πολλούς χρήστες που ο browser τους θα κολλήσει ή θα "κρασάρει", να είστε σίγουροι πως θα απωθήσετε όσους δεν έχουν εγκαταστήσει ακόμα την τελευταία έκδοση των browsers ή την τελευταία έκδοση των plug-ins. Κάτι άλλο αρκετά ενοχλητικό για τον χρήστης είναι όταν βλέπει το μήνυμα πως για να μπει στην σελίδα μας θα πρέπει να έχει το τάδε plug-in που θα πρέπει να το κατεβάσει από την τάδε σελίδα. Αν θέλετε σώνει και καλά να κατασκευάσετε μια τέτοια σελίδα το καλύτερο που έχετε να κάνετε είναι να την φτιάξετε σε δύο εκδώσεις, μια με ωραία γραφικά και κίνηση που απαιτεί plug-in και μία κανονική, έτσι ώστε να δίνετε την επιλογή στον χρήστη. 4

3. Χρησιμοποίηση κινούμενου κειμένου και μεγάλων animations. Ποτέ μη χρησιμοποιείτε κείμενο ή εικόνες που κινούνται αδιάκοπα. Ότι κινείτε στην οθόνη επηρεάζει την περιφερειακή όραση του ανθρώπου με αποτέλεσμα να μη μπορεί με ευκολία να επικεντρώσει την προσοχή του στο βασικό κείμενο που θέλουμε να διαβάσει. Μη παίζετε με τις αισθήσεις των επισκεπτών σας, αφήστε τους στην ησυχία τους ώστε να μπορέσουν απερίσπαστα να λάβουν τις πληροφορίες που θέλουν. Ακόμα και το <BLINK> δεν είναι ότι πιο φιλικό μπορούμε να βάλουμε. 4. Δύσκολα στην απομνημόνευση URLs. Ο βασικός λόγος που τα url έγιναν λεκτικά και δεν παρέμειναν αριθμητικά ήταν για να μπορούν να απομνημονεύονται εύκολα και να είναι φιλικά προς τον χρήστη. Πολλοί χρήστες προτιμούν να πληκτρολογούν τις διευθύνσεις, ακόμα και αν τις έχουν καταχωρημένες στα favorites. Μη τους βάζετε να απομνημονεύσουν σελίδες με παράξενα ονόματα μέσα σε ακατανόητους υποκαταλόγους. Δώστε ονόματα στις σελίδες και τους υποκαταλόγους που να προσδίδουν το περιεχόμενό τους και προσπαθήστε να μη βάζετε παράξενους χαρακτήρες (όπως το ~), γιατί πολλοί χρήστες δεν ξέρουν πώς να τους πληκτρολογήσουν. 5. Σελίδες χωρίς ταυτότητα. Σιγουρευτείτε πως όλες οι σελίδες σας περιέχουν καθαρά σε πιο site ανήκουν, μιας και πολλοί χρήστες μπορεί να τις επισκέπτονται χωρίς να περάσουν πρώτα από την κεντρική σελίδα. Για τον ίδιο λόγο θα πρέπει κάθε σελίδα που υπάρχει μέσα στο site σας να έχει σύνδεσμο με την κεντρική, όπως και κάποια ένδειξη που να δείχνει σε πια ακριβός ενότητα ανήκει. 6. Μεγάλες σε μήκος σελίδες. Οι χρήστες μπορεί τώρα πια να έχουν συνηθίσει να κινούνται με τις μπάρες πάνω - κάτω στις σελίδες, αλλά κι εμείς από την μεριά μας δεν θα πρέπει να το παρακάνουμε κατασκευάζοντας σελίδες που για να διαβαστούν χρειάζεται ο χρήστης να πατήσει αρκετές φορές το Page Down. Το βασικό σε αυτή την υπόθεση είναι ότι πρέπει να θυμόμαστε πως οι πιο βασικές πληροφορίες που θέλουμε να λάβει ο χρήστης θα πρέπει να τις τοποθετήσουμε στο πρώτο μέρος της σελίδας μας και να μη την κάνουμε μεγαλύτερη από τρία Page Downs. 5

7. Κακή υποστήριξη της πλοήγησης μέσα στις σελίδες μας. Μην νομίζετε πως οι χρήστες γνωρίζουν το site σας όπως το γνωρίζετε εσείς. Να έχετε ως δεδομένο πως τους είναι δύσκολο να βρουν τις πληροφορίες που θέλουν, έτσι ώστε να φτιάξετε το site σας με μια εύχρηστη και δυνατή δομή. Αρχίστε τον σχεδιασμό με μια φιλική δομή των πληροφοριών που θέλετε να προσφέρετε και μεταδώστε πιστά αυτή την δομή στον χρήστη. Φτιάξτε έναν "χάρτη" σελίδων και πέστε στον χρήστη που είναι και που μπορεί να πάει. Ακόμα θα χρειαστείτε κάποια φόρμα αναζήτησης, μιας και η καλύτερη δομή των σελίδων δεν είναι ποτέ αρκετή. 8. Χρησιμοποίηση διαφορετικών χρωμάτων για τους συνδέσμους. Οι σύνδεσμοι που δεν έχουν επισκεφθεί από τον χρήστη είναι μπλε, οι σύνδεσμοι που έχει επισκεφθεί έχουν χρώμα κόκκινο. Μην ανακατεύετε αυτά τα χρώματα μιας και η δυνατότητα να καταλάβει ο χρήστης που έχει πάει βασίζετε πάνω σε αυτά τα χρώματα που είναι κοινά για τους περισσότερους browsers. Εάν κάνετε κάποια αλλαγή πάνω σε αυτά, καλό θα είναι να την κάνετε πολύ προσεκτικά ή ακόμα και να γράψετε κάπου το τι σημαίνει το κάθε χρώμα. 9.Πληροφορίες χρονικά άτοπες. Οι πιο πολλοί προτιμούν να ασχολούνται και την δημιουργία νέου περιεχομένου για τις σελίδες παρά να κάθονται και να συντηρούν τις ήδη υπάρχουσες. Στην πράξη, η συντήρηση των σελίδων είναι ένας φτηνός και εύκολος τρόπος να εμπλουτίζετε το περιεχόμενο του site σας, μιας και πολλές παλιές σελίδες κρατούν την επικαιρότητα τους απλά προσθέτοντας κάποιους συνδέσμους σε νέες σελίδες. Φυσικά, κάποιες σελίδες είναι καλύτερα να σβήνονται τελείως από τον server μετά από την "ημερομηνία λήξεώς" τους. 10. Μεγάλος χρόνος εμφάνισης των σελίδων. Βάση μελετών που έχουν γίνει το αν θα καταφέρεις να τραβήξεις την προσοχή του άλλου, σε μια διαφημιστική καταχώριση ή σε κάποιο έντυπο, εξαρτάτε από τα πρώτα 10 δευτερόλεπτα που το μάτι του ανθρώπου που μας ενδιαφέρει θα συναντηθεί με το δημιούργημά μας. Αυτός ο χρόνος στο Δίκτυο έχει γίνει πιο ελαστικός, μιας και οι χρήστες έχουν "εκπαιδευτεί" σε πιο μεγάλους χρόνους αναμονής, όμως δεν ξεπερνάει τα 20 δευτερόλεπτα. 6

Αυτό, για εμάς που φτιάχνουμε σελίδες, σημαίνει πως θα πρέπει να προσέξουμε ώστε η σελίδα μας να μη ξεπερνάει τα 15 με 20 δεύτερα για να εμφανιστεί ολόκληρη. Μερικοί από τους λόγους που καθυστερούν μια σελίδα είναι τα μεγάλα σε μέγεθος γραφικά, τα γραφικά backgrounds και τα μεγάλα tables. Όσοι ασχολούνται επαγγελματικά ή ακόμη και ερασιτεχνικά με τον σχεδιασμός ιστοσελίδων θα έχουν ακούσει τον όρο "Safe Palette" η αλλιώς το εύρος χρωμάτων που μπορούμε να χρησιμοποιήσουμε άνετα στις σελίδες μας και θα μας δώσουν το ίδιο χρωματικό αποτέλεσμα ανεξαρτήτου Browser ή πλατφόρμας που χρησιμοποιείται από τον χρήστη. Ακούγοντας "Safe Pallete" έρχεται στο μυαλό κάποιων ο αριθμός 216. Τον Ιανουάριο του '99 ο Bob Stein της Visibone ( http://www.visibone.com/ ) έκανε μια εκτενή έρευνα και ανακάλυψε πως υπάρχουν τελικά μόνο 125 "αληθινά" ασφαλή χρώματα και βασίζει το επιχείρημα του σε προβλήματα και ασυμβατότητες στο hardware (κάρτες γραφικών) καθώς και σε προβλήματα όρασης πολλών χρηστών (!). Ένα χρόνο μετά, οι David Lehn και Hadley Stern της Webmonkey ( http://www.webmonkey.com/ ) συνεχίζουν αυτά τα τεστ και ανακαλύπτουν πως τελικά τα μόνα χρώματα για τα οποία μπορούμε να είμαστε σίγουροι είναι μόνο 22! Οι αντιδράσεις στην κοινότητα είναι φυσικά πολλές αλλά φαίνεται πως όλο και περισσότεροι σχεδιαστές λαμβάνουν υπ' όψην τον κανόνα αυτό. Ύστερα από μία μακροσκελέσταση συζήτηση σε διεθνές forum με άλλους επαγγελματίες σχεδιαστές είναι πως πρέπει να ξεκαθαρίζουμε από την αρχή και να ορίζουμε το κοινό στο οποίο η δημιουργία μας αναφέρεται. Ένα site το οποίο θα είναι ορατό μόνο στις οθόνες κάποιας εταιρείας (intranet) και γνωρίζοντας πως απευθυνόμαστε σε παρόμοιες πλατφόρμες και λειτουργικά, μπορεί εύκολα να μας λύσει τα χέρια και να χρησιμοποιήσουμε όποιο χρώμα θέλουμε. Σελίδες που απευθύνονται σε ένα μεγαλύτερο κοινό (ίσως και παγκόσμιο) καλό θα ήταν να ακολουθεί τουλάχιστον τον κανόνα της ασφαλούς παλέτας. Όπως και να έχει θυμηθείτε πως η οθόνη σας απλά είναι η δική σας εικόνα για τη σελίδα που φτιάχνετε. Εκατοντάδες, Χιλιάδες και γιατί όχι εκατομμύρια θα δούνε τη δημιουργία σας. Προσπαθήστε όσο το δυνατόν περισσότερο το αποτέλεσμα να είναι ομοιόμορφο παντού. 7

Η ανάπτυξη ενός site μπορεί να χωριστεί σε πέντε διακριτές φάσεις : 1.Προσδιορισμός βασικών στόχων. 2.Ακριβής καθορισμός του περιεχομένου και του τρόπου προβολής. 3.Σχεδίαση. 4.Ανάπτυξη. 5.Ολοκλήρωση της εφαρμογής. Αυτό που πρέπει να τονιστεί είναι ότι τα βήματα αυτά δεν αποτελούν μία υποχρεωτική πορεία που πρέπει να ακολουθούν όλες οι εφαρμογές για τον παγκόσμιο ιστό.σκοπός είναι να αποτελέσουν πυξίδα για την ανάπτυξη προκειμένου να οδηγηθούμε στην επιτυχία. 8

Κ ε φ ά λ α ι ο 2 ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΥ ΘΑ ΧΡΗΣΙΜΟΠΟΙΗΣΟΥΜΕ ΓΙΑ ΤΟΝ ΣΧΕΔΙΑΣΜΟ ΤΟΥ ΙΣΤΟΧΩΡΟΥ ΤΗΣ ON-LINE ΒΙΒΛΙΟΘΗΚΗΣ Για τον σχεδιασμό του ιστοχώρου θα χρησιμοποιήσουμε τα εξής προγράμματα : 1. MySql 2. Apache 3. Php Για να ξεκινήσουμε όμως την ανάπτυξη της εφαρμογής θα πρέπει να κατανοήσουμε πλήρως τον ορισμό και την χρήση των προγραμμάτων αυτών. Ας τα δούμε λοιπόν αναλυτικά παρακάτω : 1. MySql Η MySql είναι ένα πολύ γρήγορο,δυνατό σύστημα διαχείρισης βάσεων δεδομένων. Μια βάση δεδομένων σας επιτρέπει να αποθηκεύετε, να αναζητάτε, να ταξινομείτε και να ανακαλείτε τα δεδομένα αποτελεσματικά. Ο MySql διακομιστής ελέγχει την πρόσβαση στα δεδομένα σας,για να μπορούν να δουλεύουν πολλοί χρήστες ταυτόχρονα, για να παρέχει γρήγορη πρόσβαση και να διασφαλίσει ότι μόνο πιστοποιημένοι χρήστες μπορούν να έχουν πρόσβαση.συνεπώς η MySql είναι ένας πολυνηματικός διακομιστής πολλαπλών χρηστών. Χρησιμοποιεί την Sql,την τυπική γλώσσα ερωτημάτων για βάσεις δεδομένων, παγκόσμια. Η MySql είναι διαθέσιμη από το 1996, αλλά η ιστορία της ξεκινά το 1979. Κέρδισε το βραβείο Choice Award του Linux Journal Readers, για τρία χρόνια συνέχεια. Μερικά από τα πλεονεκτήματα της MySql Η MySql έχει πολλά πλεονεκτήματα, όπως υψηλή απόδοση, χαμηλό κόστος, εύκολη διαμόρφωση και μάθηση και ο κώδικας προέλευσης είναι διαθέσιμος. Ακολουθεί μια πιο λεπτομερής περιγραφή αυτών των πλεονεκτημάτων. 9

Απόδοση Η MySql είναι χωρίς αμφιβολία γρήγορη.μπορείτε να δείτε την σελίδα δοκιμών στο http://web.mysql.com/benchmark.html. Πολλές από αυτές τις δοκιμές δείχνουν ότι η MySql είναι αρκετά πιο γρήγορη από τον ανταγωνισμό. Χαμηλό Κόστος Η MySql είναι διαθέσιμη δωρεάν, με άδεια ανοιχτού κώδικα, ή με χαμηλό κόστος,αν πάρετε εμπορική άδεια,αν απαιτείται από την εφαρμογή σας. Ευκολία Χρήσης Οι περισσότερες μοντέρνες βάσεις δεδομένων χρησιμοποιούν SQL.Εάν έχετε χρησιμοποιήσει ένα άλλο σύστημα διαχείρισης βάσεων δεδομένων,δεν θα πρέπει να έχετε πρόβλημα να προσαρμοστείτε σε αυτό. Η MySql είναι επίσης ευκολότερη από παρόμοια προϊόντα. Μεταφερσιμότητα Η MySql μπορεί να χρησιμοποιηθεί σε πολλά διαφορετικά συστήματα UNIX, όπως επίσης και στα Microsoft Windows. Κώδικας Προέλευσης Όπως και με την PHP,μπορείτε να πάρετε και να τροποποιήσετε τον κώδικα προέλευσης της MySql. 2.PHP To ακρώνυμο PHP αρχικά σήμαινε Personal Home Page,δηλαδή «Προσωπική αρχική σελίδα» δημιουργήθηκε το 1994 από τον Rasmus Lerdorf για την παρακολούθηση των επισκεπτών της ηλεκτρονικής του σελίδας με τα προσωπικά του στοιχεία.καθώς η χρησιμότητα και οι δυνατότητες της γλώσσας μεγάλωναν (και καθώς άρχισε να χρησιμοποιείται και σε πιο επαγγελματικές καταστάσεις ), τα αρχικά της PHP κατέληξαν να σημαίνουν PHP HyperText Preprocessor, δηλαδή «Προεπεξεργαστής υπερκειμένου PHP».(Ο ορισμός βασικά σημαίνει ότι η PHP χειρίζεται δεδομένα πριν αυτά γίνουν HTML (HyperText Markup Language ) H PHP είναι μια γλώσσα script από την πλευρά του διακομιστή, σχεδιασμένη ειδικά για το Web. Μέσα σε μία HTML σελίδα μπορείτε να ενσωματώσετε PHP κώδικα,που θα εκτελείτε κάθε φορά που θα επισκέπτεστε την σελίδα. Ο PHP κώδικας μεταφράζεται στον Web διακομιστή και δημιουργεί HTML ή άλλη έξοδο που θα δει ο επισκέπτης. 10

Η PHP είναι ένα προϊόν ανοιχτού κώδικα.θα έχετε πρόσβαση στον κώδικα προέλευσης.μπορείτε να τον χρησιμοποιήσετε, να τον αλλάξετε και να τον αναδιανείμετε, χωρίς χρέωση. Θα πρέπει επίσης να καταλάβετε ότι η PHP είναι τεχνολογία διακομιστή (server-side).αυτό αναφέρεται στο γεγονός πως ότι κάνει η PHP πραγματοποιείται στον διακομιστή (και όχι στον πελάτη,ο οποίος είναι ο υπολογιστής που χρησιμοποιεί το άτομο που βλέπει την τοποθεσία Ιστού)Ένας διακομιστής είναι ένας ειδικός υπολογιστής ο οποίος φιλοξενεί τις σελίδες που βλέπετε όταν επισκέπτεστε μια διεύθυνση Ιστού με τον φυλλομετρητή σας. Τέλος η PHP είναι ανεξάρτητη πλατφόρμας (cross-platform), κάτι που σημαίνει ότι μπορεί να χρησιμοποιηθεί σε μηχανήματα με Unix, Windows, Macintosh και άλλα λειτουργικά συστήματα. Και πάλι αναφερόμαστε στο λειτουργικό σύστημα του διακομιστή και όχι του πελάτη. Η PHP όχι μόνο είναι σε θέση να εκτελεστεί σε σχεδόν οποιοδήποτε λειτουργικό σύστημα αλλά, αντίθετα με τις περισσότερες γλώσσες προγραμματισμού,σας επιτρέπει να μεταφέρετε την δουλειά σας από την μια πλατφόρμα στην άλλη με ελάχιστες ή με καθόλου τροποποιήσεις. Τι δεν είναι η PHP Αυτό που μπερδεύει περισσότερο τους νεοφερμένους στην PHP είναι το τι δεν μπορεί να κάνει η γλώσσα. Παρόλο που μπορείτε να χρησιμοποιήσετε την γλώσσα για μια πληθώρα εργασιών, ο βασικός περιορισμός είναι ότι η PHP δεν μπορεί να χρησιμοποιηθεί για λειτουργίες στην πλευρά του πελάτη που συναντάμε σε μερικές τοποθεσίες Ιστού. Με την χρήση μιας τεχνολογίας πελάτη,όπως η JavaScript, έχετε την δυνατότητα να ανοίγετε νέα παράθυρα φυλλομετρητή, να προσθέτετε εφέ εναλλαγής ποντικιού, να δημιουργείτε αναδυόμενα παράθυρα προειδοποίησης, να αλλάζετε το μέγεθος του παραθύρου του φυλλομετρητή,να βρίσκεται το μέγεθος της οθόνης στο μηχάνημα του χρήστη,και να δημιουργείτε και να μεταβάλλετε φόρμες με δυναμικό τρόπο. Καμιά από αυτές τις εργασίες δεν μπορεί να γίνει με PHP.(επειδή η PHP εκτελείται στο διακομιστή, ενώ αυτά είναι θέματα του πελάτη ). Όταν έρθει η ώρα να κατασκευάσετε τα δικά σας έργα PHP,να θυμάστε ότι μπορείτε να χρησιμοποιήσετε PHP μόνο για να στέλνετε πληροφορίες στο φυλλομετρητή Ιστού.Δεν μπορείτε να κάνετε τίποτα άλλο μέσα στον φυλλομετρητή μέχρι να γίνει κάποια άλλη αίτηση από τον διακομιστή(να υποβληθεί κάποια φόρμα ή να πατηθεί κάποιος σύνδεσμος ). Τι μπορεί να κάνει η PHP H PHP μπορεί να κάνει η οτιδήποτε. Η PHP επικεντρώνεται κυρίως στο server-side scripting, έτσι μπορείτε να κάνετε οτιδήποτε ένα άλλο CGI πρόγραμμα μπορεί να κάνει, όπως να μαζέψει δεδομένα, να παράγει δυναμικό περιεχόμενο σελίδων, ή να στείλει και να πάρει cookies. Αλλά η PHP μπορεί να κάνει πολύ περισσότερα. 11

Υπάρχουν τρεις κύριοι τομείς που χρησιμοποιείται ένα PHP script. Server-side scripting. Αυτό είναι το πιο παραδοσιακό και το κύριο πεδίο για την PHP. Χρειάζεστε τρία πράγματα για να δουλέψει αυτό. Τον PHP μεταγλωττιστή (parser) (CGI ή server module), ένα webserver (εξυπηρετητή σελίδων) και ένα web browser ("φυλλομετρητή"). Πρέπει να τρέξετε τον webserver, με μια συνδεδεμένη εγκατάσταση της PHP. Μπορείτε να προσπελάσετε τα αποτελέσματα του PHP προγράμματος με ένα web browser, βλέποντας την σελίδα PHP μέσα από τον server. Command line scripting. Μπορείτε να φτιάξετε ένα PHP script για να το τρέχετε χωρίς server ή browser. Χρειάζεστε μόνο τον PHP μεταγλωττιστή για να την χρησιμοποιήσετε με αυτό τον τρόπο. Αυτός ο τύπος είναι ιδανικός για script που εκτελούνται συχνά με τη χρήση της cron (σε *nix ή Linux) ή με τον Task Scheduler (στα Windows). Αυτά τα script μπορούν επίσης να χρησιμοποιηθούν για απλές εργασίες επεξεργασίες κειμένου. Εγγραφή client-side GUI εφαρμογών (Γραφικά περιβάλλοντα χρηστών). Η PHP ίσως να μην είναι η πιο καλή γλώσσα για να γράψει κανείς παραθυρικές εφαρμογές, αλλά αν ξέρετε PHP πολύ καλά και θέλετε να χρησιμοποιήσετε κάποια προχωρημένα χαρακτηριστικά της PHP στις client-side εφαρμογές σας, μπορείτε επίσης να χρησιμοποιήσετε το PHP-GTK για αυτού του είδους τα προγράμματα. Έχετε επίσης τη δυνατότητα να γράφετε cross-platform εφαρμογές με αυτό τον τρόπο. Το PHP-GTK είναι μια επέκταση της PHP και δεν συμπεριλαμβάνεται στην κύρια διανομή. Αν ενδιαφέρεστε για το PHP-GTK, επισκεφτείτε την δική του ιστοσελίδα. Η 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, 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 για το δυναμικό σας περιεχόμενο. 12

Ένα από τα πιο δυνατά και σημαντικά χαρακτηριστικά της 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 επέκταση ή τις 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), μετατροπές ημερολογίου, μεταφράσεις κ.λπ. Μερικά από τα πλεονεκτήματα της PHP Κάποιοι από τους βασικούς ανταγωνιστές της PHP είναι η Perl,Microsoft Active Server Pages,Java Server & Allaire Cold Fusion. Σε σύγκριση με αυτά τα προϊόντα, η php έχει πολλά πλεονεκτήματα, όπως : Υψηλή Απόδοση Διασυνδέσεις με πολλά διαφορετικά συστήματα βάσεων δεδομένων 13

Ενσωματωμένες βιβλιοθήκες για πολλές συνηθισμένες Web διαδικασίες Χαμηλό Κόστος Ευκολία Μάθησης και Χρήσης Μεταφερσιμότητα Διαθεσιμότητα του κώδικα προέλευσης Απόδοση Η PHP είναι πολύ αποτελεσματική.με έναν φθηνό διακομιστή,μπορείτε να εξυπηρετήσετε εκατομμύρια επισκέψεων καθημερινά. Ολοκλήρωση Με Βάσεις Δεδομένων Η PHP έχει εγγενείς συνδέσεις για πολλά συστήματα βάσεων δεδομένων.εκτός από την MySql μπορείτε να συνδεθείτε κατευθείαν με τις βάσεις δεδομένων PostgreSQL,Msql,Oracle,dbm, filepro,hyperwave,informix,interbase & Sybase. Ενσωματωμένες βιβλιοθήκες Επειδή η PHP σχεδιάσθηκε για να χρησιμοποιείτε στο Web,έχει πολλές ενσωματωμένες βιβλιοθήκες, που εκτελούν πολλές χρήσιμες λειτουργίες σχετικές με το Web. Μπορείτε να δημιουργήσετε εικόνες GIF δυναμικά,να συνδεθείτε με άλλες υπηρεσίες δικτύων, να στείλετε ηλεκτρονικά ταχυδρομείο, να δουλέψετε με cookies και να δημιουργήσετε PDF έγγραφα : όλα αυτά με λίγες γραμμές κώδικα. Κόστος Η PHP είναι δωρεάν.μπορείτε να μεταφέρετε την τελευταία έκδοση από το http://www.php.net, χωρίς χρέωση. Εκμάθηση της PHP Η σύνταξη της PHP βασίζεται σε άλλες γλώσσες προγραμματισμού, βασικά στην C και στην Perl. Εάν ήδη ξέρετε την C ή την Perl ή μια γλώσσα παρόμοια με την C θα αρχίσετε να προγραμματίζετε με την PHP σχεδόν αμέσως. Μεταφερσιμότητα Η PHP είναι διαθέσιμη για πολλά λειτουργικά συστήματα.μπορείτε να γράψετε κώδικα PHP για δωρεάν συστήματα τύπου Unix όπως το Solaris και το IRIX, καθώς και για διάφορες εκδόσεις του Microsoft Windows. Κώδικας Προέλευσης Έχετε πρόσβαση στον κώδικα προέλευσης της PHP.Αντίθετα με εμπορικά,κλειστά προϊόντα, εάν υπάρχει κάτι που θέλετε να αλλάξετε ή να προσθέσετε στην γλώσσα, μπορείτε να το κάνετε. Γιατί να χρησιμοποιήσετε την PHP και την MySql ; Όταν δημιουργείτε μια τοποθεσία ηλεκτρονικού εμπορίου,υπάρχουν πολλά διαφορετικά προϊόντα που θα μπορούσατε να χρησιμοποιήσετε. 14

Θα χρειαστεί να επιλέξετε υλικό για τον Web διακομιστή,ένα λειτουργικό σύστημα,ένα λογισμικό Web διακομιστή,ένα σύστημα διαχείρισης δεδομένων και μια γλώσσα προγραμματισμού ή script. Κάποιες από αυτές τις επιλογές εξαρτώνται από τις άλλες επιλογές σας. Για παράδειγμα δεν τρέχουν όλα τα λειτουργικά συστήματα σε όλους τους υπολογιστές και υλικό, ούτε οι γλώσσες script μπορούν να συνδεθούν με όλες τις βάσεις δεδομένων κλπ. Ένα άλλο ερώτημα είναι γιατί ένας σχεδιαστής Ιστού που θέλει να δημιουργήσει μια δυναμική τοποθεσία να προτιμήσει την PHP εκ των CGI,ASP.NET, JSP. J Η PHP είναι πιο εύκολη στην εκμάθηση και στην χρήση J Η PHP γράφτηκε ειδικά για την δημιουργία δυναμικών σελίδων J Η PHP είναι δωρεάν και ανεξάρτητη πλατφόρμας J Η PHP αποτελεί σήμερα το πιο δημοφιλές εργαλείο που υπάρχει διαθέσιμο για την ανάπτυξη δυναμικών τοποθεσιών Ιστού. 15

Κ ε φ ά λ α ι ο 3 ΣΧΕΔΙΑΣΜΟΣ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ ΜΕ ΤΗΝ ΒΟΗΘΕΙΑ ΤΟΥ MYSQL CONTROL CENTER 1.ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ ΓΙΑ on-line ΒΙΒΛΙΟΘΗΚΗ Για να δημιουργήσουμε μια καινούργια βάση δεδομένων πηγαίνουμε στο μενού Action και επιλέγουμε New Database και το πρόγραμμα εμφανίζει ένα παράθυρο που μας ζητάει να εισάγουμε το όνομα της βάσης δεδομένων όπως φαίνεται στο Σχήμα 1.Αφού πληκτρολογήσουμε το όνομα της βάσης μας (on-line bibliothiki) πατάμε το ok. Σχήμα 1 2.ΣΧΕΔΙΑΣΜΟΣ ΤΩΝ ΠΙΝΑΚΩΝ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ Αφού δημιουργηθεί η βάση μας κάνουμε διπλό κλικ πάνω της και εμφανίζεται ο χώρος όπου μπορούμε να δημιουργήσουμε τους πίνακες (Tables).Κάνουμε δεξί κλικ πάνω στο Tables και απο το μενού που εμφανίζεται επιλέγουμε New Table και στο παράθυρο που εμφανίζεται (βλέπε Σχήμα 2) εισάγουμε τα πεδία του πίνακα. Με αυτόν τον τρόπο δημιουργούμε τους πίνακες τους οποίους θα δούμε αναλυτικά παρακάτω. Σχήμα 2 Ας δούμε όμως αναλυτικά έναν κάθε πίνακα ξεχωριστά. Ξεκίνάμε με τον πίνακα book_accusation ο οποίος περιγράφει τις κατηγορίες των βιβλίων και περιλαμβάνει τα εξής δύο πεδία : 16

1. το πεδίο id_accusation(primary key) που αποτελεί τον κωδικό κατηγορίας βιβλίων και είναι τύπου varchar με μήκος : 4 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) 2. και το πεδίο descr_accusation που περιγράφει την κατηγορία και είναι τύπου varchar με μήκος : 25(και αυτό είναι είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους). (βλέπε Σχήμα 3) Σχήμα 3 Ο επόμενος πίνακας είναι ο book_material που περιγράφει το υλικό βιβλίου και περιλαμβάνει τα εξής δύο πεδία : το πεδίο id_material (primary key) που αποτελεί τον κωδικό κατηγορίας βιβλίων και είναι τύπου varchar με μήκος : 4 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) και το πεδίο descr_ material που περιγράφει την κατηγορία και είναι τύπου varchar με μήκος : 20(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους). (βλέπε Σχήμα 4) Σχήμα 4 Ο επόμενος πίνακας είναι ο books που περιγράφει τα βιβλία που υπάρχουν στην βιβλιοθήκη και περιλαμβάνει δεκαπέντε πεδία τα οποία αναλύονται (βλέπε Σχήμα 5): το πεδίο id_book(primary key) που αποτελεί τον κωδικό βιβλίου και είναι τύπου int με μήκος : 4 (είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο id_material (primary key) που αποτελεί τον κωδικό κατηγορίας βιβλίων και είναι τύπου varchar με μήκος : 4 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο id_accusation(primary key) που αποτελεί τον κωδικό κατηγορίας βιβλίων και είναι τύπου varchar με μήκος : 4 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο id_ places (primary key) που αποτελεί τον κωδικό της περιοχής που βρίσκεται το βιβλίο και είναι τύπου varchar με μήκος : 5 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο book_title που αποτελεί τον ελληνικό τίτλο βιβλίου και είναι τύπου varchar με μήκος :60(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) 17

το πεδίο enbook_title που αποτελεί τον αγγλικό τίτλο βιβλίου και είναι τύπου varchar με μήκος :60 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο author_1 που αποτελεί τον συγγραφέα του βιβλίου και είναι τύπου varchar με μήκος :40(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο author_2 που αποτελεί τον δεύτερο συγγραφέα του βιβλίου(εάν υπάρχει) και είναι τύπου varchar με μήκος :40(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο publisher που αποτελεί τον εκδότη του βιβλίου και είναι τύπου varchar με μήκος :40(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο year_edition που αποτελεί την χρονιά έκδοσης του βιβλίου και είναι τύπου year με μήκος :4(είναι τύπου year γιατί αποθηκεύει ένα έτος και συγκεκριμένα σε τετραψήφια μορφή) το πεδίο book_contents που αποτελεί τα περιεχόμενα του βιβλίου και είναι τύπου longtext(είναι τύπου longtext διότι είναι πεδίο με μεγάλο μέγεθος χαρακτήρων) το πεδίο cover_book που αποτελεί το εξώφυλλο του βιβλίου και είναι τύπου blob(είναι τύπου blob διότι στο πεδίο αποθηκεύονται μεγάλες ποσότητες δυαδικών δεδομένων στην περίπτωση μας εικόνες) το πεδίο volume που αποτελεί το τεύχος και είναι τύπου int με μήκος : 4 (είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο no που αποτελεί το νούμερο του περιοδικού και είναι τύπου int με μήκος : 4 (είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο month που αποτελεί τον μήνα και είναι τύπου date (είναι τύπου date γιατί το πεδίο αναφέρεται στην ημερομηνία του περιοδικού) το πεδίο ISBN(primary key) που αποτελεί τον κωδικό ISBN και είναι τύπου bigint με μήκος : 15 (είναι τύπου bigint γιατί είναι ένας ακέραιος μεγάλου μεγέθους) το πεδίο quantity που αποτελεί την ποσότητα του συγκεκριμένου βιβλίου που υπάρχουν στην βιβλιοθήκη και είναι τύπου int με μήκος : 3(είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο edition που αποτελεί την έκδοση του βιβλίου και είναι τύπου int με μήκος :3(είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) και τέλος το πεδίο pages που αποτελεί τις σελίδες του βιβλίου και είναι τύπου bigint με μήκος :5 (είναι τύπου bigint γιατί είναι ένας ακέραιος μεγάλου μεγέθους) 18

Σχήμα 5 Ο επόμενος πίνακας είναι ο books_review που περιγράφει την κριτική που έχουν κάνει κάποιοι χρήστες στα βιβλία και περιλαμβάνει τα εξής τρία πεδία (βλέπε Σχήμα 6) : το πεδίο id_user(primary key) που αποτελεί τον κωδικό χρήστη και είναι τύπου int με μήκος : 4(είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο id_book(primary key) που αποτελεί τον κωδικό βιβλίου και είναι τύπου int με μήκος : 4 (είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγέθους) και το πεδίο review που αποτελεί την κριτική που έχουν κάνει κάποιοι χρήστες στο συγκεκριμένο βιβλίο και είναι τύπου varchar με μήκος : 50(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) Σχήμα 6 Ο επόμενος πίνακας είναι ο library_item που περιγράφει τις απαραίτητες πληροφορίες για τα βιβλία της βιβλιοθήκης (για κάθε αντίτυπο )και περιλαμβάνει τα εξής πέντε πεδία (βλέπε Σχήμα 7) : το πεδίο id_ library (primary key) που αποτελεί τον μοναδικό κωδικό βιβλιοθήκης που έχει δοθεί σε κάθε αντίτυπο του βιβλίου και είναι τύπου int με μήκος : 3 (είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο id_book(primary key) που αποτελεί τον κωδικό βιβλίου και είναι τύπου int με μήκος : 4 (είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο date_in που αποτελεί την ημερομηνία εισαγωγής του βιβλίου στην βιβλιοθήκη και είναι τύπου date (είναι τύπου date γιατί το πεδίο αναφέρεται στην ημερομηνία του περιοδικού) 19

το πεδίο renting_days που αποτελεί τις ημέρες που επιτρέπει η βιβλιοθήκη για τον δανεισμό του συγκεκριμένου βιβλίου και είναι τύπου int με μήκος : 2 (είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο rent που μας ενημερώνει εάν το συγκεκριμένο αντίτυπο είναι δανεισμένο ή όχι και είναι τύπου set (δημιουργούμε στην ουσία μία λίστα στοιχείων από τα οποία πρέπει να επιλεχθεί μία τιμή, στην περίπτωσή μας εάν το βιβλίο είναι δανεισμένο τότε επιλέγεται το yes, στην περίπτωση αυτή δηλαδή εάν το βιβλίο είναι νοικιασμένο μπορούμε κάνοντας αναζήτηση στον πίνακα RENT να βρούμε ποιος έχει δανειστεί αυτό το βιβλίο, εάν όμως το βιβλίο δεν έχει δανειστεί είναι ελεύθερο τότε επιλέγεται το no) το πεδίο id_ places (primary key) που αποτελεί τον κωδικό της περιοχής που βρίσκεται το βιβλίο και είναι τύπου varchar με μήκος : 5 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) και τέλος το πεδίο id_user(primary key) που αποτελεί τον κωδικό χρήστη ο οποίος τοποθετεί το βιβλίο στην βιβλιοθήκη για χρήση και είναι τύπου int με μήκος : 4(είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) Σχήμα 7 Ο επόμενος πίνακας είναι ο places που περιγράφει τα μέρη που μπορεί να βρίσκονται τα βιβλία της βιβλιοθήκης και περιλαμβάνει τα εξής δύο πεδία(βλέπε Σχήμα 8) : ο πεδίο id_ places (primary key) που αποτελεί τον κωδικό της περιοχής που βρίσκεται το βιβλίο και είναι τύπου varchar με μήκος : 5 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) και το πεδίο descr_ places που αποτελεί την περιγραφή του μέρους και είναι τύπου varchar με μήκος : 50. (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) Σχήμα 8 Ο επόμενος πίνακας είναι ο rent που αναφέρεται σε πληροφορίες σχετικά με τον δανεισμό του κάθε βιβλίου και περιλαμβάνει τα εξής τρία πεδία (βλέπε Σχήμα 9) : το πεδίο id_ library (primary key) που αποτελεί τον κωδικό βιβλιοθήκης που έχει δοθεί στο βιβλίο και είναι τύπου int με μήκος : 3(είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο id_user(primary key) που αποτελεί τον κωδικό χρήστη και είναι τύπου int με μήκος : 4(είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) 20

το πεδίο date_renting που αναφέρει την ημερομηνία δανεισμού του βιβλίου και είναι τύπου date(είναι τύπου date γιατί το πεδίο αναφέρεται σε ημερομηνία ) και το πεδίο date_return που αναφέρει την ημερομηνία επιστροφής του βιβλίου στην βιβλιοθήκη και είναι τύπου date. (είναι τύπου date γιατί το πεδίο αναφέρεται σε ημερομηνία) Σχήμα 9 Ο επόμενος πίνακας είναι ο users που αναφέρεται σε πληροφορίες σχετικά με τους χρήστες της βιβλιοθήκης και περιλαμβάνει τα εξής δεκατέσσερα πεδία (βλέπε Σχήμα 10) : το πεδίο id_user(primary key) που αποτελεί τον κωδικό χρήστη και είναι τύπου int με μήκος : 4(είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο id_uscat(primary key) που αποτελεί τον κωδικό κατηγορίας στην οποία ανήκει ο χρήστης και είναι τύπου char με μήκος : 3 το πεδίο name που αποτελεί το όνομα του χρήστη και είναι τύπου varchar με μήκος : 50(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο surname που αποτελεί το επώνυμο του χρήστη και είναι τύπου varchar με μήκος : 50(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο address που αποτελεί την οδό της κατοικίας του χρήστη και είναι τύπου varchar με μήκος : 30(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο postal_code που αποτελεί τον ταχυδρομικό κωδικό της περιοχής και είναι τύπου smallint με μήκος :6 το πεδίο city που αποτελεί την πόλη που κατοικεί ο χρήστης και είναι τύπου varchar με μήκος :40 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο country που αποτελεί την χώρα που κατοικεί ο χρήστης και είναι τύπου varchar με μήκος :40 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο number που αποτελεί τον τηλεφωνικό αριθμό του χρήστη και είναι τύπου varchar με μήκος :10(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο mobile_number που αποτελεί το κινητό τηλέφωνο του χρήστη και είναι τύπου varchar με μήκος :10 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο e-mail που αποτελεί την ηλεκτρονική διεύθυνση του χρήστη και είναι τύπου varchar με μήκος :30 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο photo_user που αποτελεί την φωτογραφία του χρήστη και είναι τύπου blob (είναι τύπου blob διότι στο πεδίο αποθηκεύονται μεγάλες ποσότητες δυαδικών δεδομένων στην περίπτωση μας εικόνες-φωτογραφία του χρήστη) 21

το πεδίο date_birth που αποτελεί την ημερομηνία γέννησης του χρήστη και είναι τύπου date (είναι τύπου date γιατί το πεδίο αναφέρεται σε ημερομηνία ) και τέλος το πεδίο business που αποτελεί το επάγγελμα του χρήστη και είναι τύπου varchar με μήκος : 30. (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο login είναι το ψευδώνυμο του χρήστη και είναι τύπου varchar με μήκος : 30. (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο password που αποτελεί τον κωδικό του χρήστη για την σύνδεση στην ιστοσελίδα και είναι τύπου int με μήκος : 11 και τέλος το πεδίο epibebaiwsi password που αποτελεί το πεδίο επιβεβαίωσης του κωδικού και είναι τύπου int με μήκος : 11 Σχήμα 10 Ο πίνακας είναι ο users_gategories που αναφέρεται σε πληροφορίες σχετικά με τις κατηγορίες των χρηστών της βιβλιοθήκης και περιλαμβάνει τα εξής δύο πεδία (βλέπε Σχήμα 11) : το πεδίο id_uscat(primary key) που αποτελεί τον κωδικό κατηγορίας στην οποία ανήκει ο χρήστης και είναι τύπου char με μήκος : 3 (είναι τύπου char διότι είναι αλφαριθμητικό σταθερού μεγέθους) και το πεδίο descr_uscat(primary key) που περιγράφει την κατηγορία στην οποία ανήκει ο χρήστης και είναι τύπου varchar με μήκος : 30. (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) Σχήμα 11 22

Ο τελευταίος πίνακας είναι ο sxolia που αναφέρεται στα σχόλια που κάνουν οι χρήστες για την βιβλιοθήκη του τμήματος διαχείρισης πληροφοριών και περιλαμβάνει τα εξής πεδία : το πεδίο id_user(primary key) που αποτελεί τον κωδικό χρήστη και είναι τύπου int με μήκος : 4(είναι τύπου int γιατί είναι ένας ακέραιος κανονικού μεγεθους) το πεδίο name που αποτελεί το όνομα του χρήστη και είναι τύπου varchar με μήκος : 50(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο surname που αποτελεί το επώνυμο του χρήστη και είναι τύπου varchar με μήκος : 50(είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο e-mail που αποτελεί την ηλεκτρονική διεύθυνση του χρήστη και είναι τύπου varchar με μήκος :30 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο city που αποτελεί την πόλη που κατοικεί ο χρήστης και είναι τύπου varchar με μήκος :40 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο country που αποτελεί την χώρα που κατοικεί ο χρήστης και είναι τύπου varchar με μήκος :40 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) το πεδίο sxolia που αποτελεί τα σχόλια του χρήστη και είναι τύπου varchar με μήκος :100 (είναι τύπου varchar διότι είναι αλφαριθμητικό μεταβλητού μεγέθους) Έτσι συνοπτικά έχουμε στο παρακάτω σχήμα(σχήμα 12) όλους τους πίνακες της βάσης δεδομένων με όνομα on-line bibliothiki Σχήμα 12 23

3.ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ ΣΤΟΥΣ ΠΙΝΑΚΕΣ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ on-line ΒΙΒΛΙΟΘΗΚΗ Για να εισάγουμε δεδομένα σε ένα πίνακα πρέπει να κάνουμε διπλό κλικ πάνω του και αφού μπούμε στο παράθυρο του πίνακα κάνουμε δεξί κλικ στον κενό λευκό χώρο και απο το μενού που εμφανίζεται επιλέγουμε Insert Record και στην γραμμή που εμφανίζεται εισάγουμε τα δεδομένα για την συγκεκριμένη εγγραφή. Με τον ίδιο τρόπο εισάγουμε όσες εγγραφές θέλουμε στον πίνακά μας. Έτσι έχουμε : 1)Ο πίνακας book_accusation περιέχει τις εννιά εγγραφές που φαίνονται στο παρακάτω σχήμα(σχήμα 13) Σχήμα 13 2)Ο πίνακας book_material περιέχει τις τέσσερις εγγραφές που φαίνονται στο παρακάτω σχήμα(σχήμα 14) Σχήμα 14 3) Ο πίνακας places περιέχει τις έντεκα εγγραφές που φαίνονται στο παρακάτω σχήμα(σχήμα 15) 24

Σχήμα 15 4) Ο πίνακας users περιέχει τις πέντε εγγραφές που φαίνονται στο παρακάτω σχήμα(σχήμα 16) Σχήμα 16 5) Ο πίνακας users_categories περιέχει τις τρεις εγγραφές που φαίνονται στο παρακάτω σχήμα(σχήμα 17) Σχήμα 17 Όπου ο ΔΙΑΧΕΙΡΙΣΤΗΣ έχει όλες τις εξουσίες στην βάσης μας ο ΔΙΑΧΕΙΡΙΣΤΗΣ ΒΙΒΛΙΩΝ μπορεί να διαχειρίζεται μόνο τα βιβλία τα οποία έχει τοποθετήσει στην βιβλιοθήκη Και ο ΧΡΗΣΤΗΣ που μπορεί μόνο να πάρει πληροφορίες για τα βιβλία της βιβλιοθήκης και δεν έχει καμία άλλη εξουσία 25

Κ ε φ ά λ α ι ο 4 ΕΡΩΤΗΣΕΙΣ SQL ΓΙΑ ΤΗΝ ΒΑΣΗ ΤΗΣ ΒΙΒΛΙΟΘΗΚΗΣ //Εμφανίζει όλες τις κατηγορίες χρηστών της Βάσης Δεδ/νων SELECT * FROM `users_categories` //Εμφανίζει όλα τα ονόματα των χρηστών που χρησιμοποιούν την Βάση Δεδ/νων ταξινομημένα κατά όνομα SELECT * FROM `users` ORDER BY users.name //Εμφανίζει όλα τα ονόματα των χρηστών που διαχειρίζονται την Βάση Δεδ/νων (Διαχειριστές) ταξινομημένους με βάση το επώνυμο τους SELECT users.id_user,users.name,users.surname,users_categories.descr_uscat FROM `users`,`users_categories` WHERE users_categories.id_uscat=users.id_uscat AND users.id_uscat='δια' ORDER BY users.surname //Εμφανίζει όλα τα ονόματα των χρηστών που είναι απλοί χρήστες (φοιτητές) ταξινομημένους με βάση το επώνυμο τους SELECT users.id_user,users.name,users.surname,users_categories.descr_uscat FROM `users`,`users_categories` WHERE users_categories.id_uscat=users.id_uscat AND users.id_uscat='χρη' ORDER BY users.surname //Εμφανίζει όλα τα ονόματα των χρηστών που διαχειρίζονται τα βιβλία στην Βάση Δεδ/νων (Διαχειριστές Βιλίων) ταξινομημένους με βάση το επώνυμο τους SELECT users.id_user,users.name,users.surname,users_categories.descr_uscat FROM `users`,`users_categories` WHERE users_categories.id_uscat=users.id_uscat AND users.id_uscat='δβι' ORDER BY users.surname //Εμφανίζει τα στοιχεία του χρήστη με βάση το όνομά του (π.χ. ΒΑΣΙΛΕΙΟΣ) SELECT users.id_user,users.name,users.surname,users_categories.descr_uscat,users.e_mail,u sers.business, users.password,users.login,users.address,users.city FROM `users`,`users_categories` WHERE users_categories.id_uscat=users.id_uscat AND users.name='βασιλειοσ' //Εμφανίζει τα στοιχεία του χρήστη με βάση το επώνυμο του (π.χ. ΓΕΡΟΝΤΙΔΗΣ) SELECT users.id_user,users.name,users.surname,users_categories.descr_uscat,users.e_mail,u sers.business, users.password,users.login,users.address,users.city FROM `users`,`users_categories` WHERE users_categories.id_uscat=users.id_uscat AND users.surname='γεροντιδησ' 26

//Εμφανίζει το login και το password του συγκεκριμένου χρήστη με βάση το e_mail SELECT users.password,users.login FROM `users` WHERE users.e_mail='kter@teikav.edu.gr' //Εμφανίζει το login και το password του συγκεκριμένου χρήστη με βάση το επώνυμο του SELECT users.password,users.login FROM `users` WHERE users.surname='χατζησ' //Εμφανίζει όλα τα πιθανά μέρη που μπορεί να βρίσκεται ένα βιβλίο SELECT * FROM `places` //Εμφανίζει σε ποια κατηγορία υλικού ανήκει το πεδίο του πίνακα books SELECT * FROM `book_material` //Εμφανίζει τις κατηγορίες στις οποίες χωρίζονται τα στοιχεία του πίνακα books SELECT * FROM `book_accusation` //Εμφανίζει τα βιβλία που βρίσκονται στην ΓΡΑΜΜΑΤΕΙΑ ΤΜΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='γραμ1' //Εμφανίζει τα βιβλία που βρίσκονται στην ΓΡΑΜΜΑΤΕΙΑ ΤΜΗΜΑΤΟΣ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='γραμ2' //Εμφανίζει τα βιβλία που βρίσκονται στην ΓΡΑΜΜΑΤΕΙΑ ΤΜΗΜΑΤΟΣ ΛΟΓΙΣΤΙΚΗΣ SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='γραμ3' //Εμφανίζει τα βιβλία που βρίσκονται στην ΓΡΑΜΜΑΤΕΙΑ ΤΜΗΜΑΤΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` 27

WHERE books.id_places=places.id_places AND books.id_places='γραμ4' //Εμφανίζει τα βιβλία που βρίσκονται στην ΓΡΑΜΜΑΤΕΙΑ ΤΜΗΜΑΤΟΣ ΗΛΕΚΤΡΟΛΟΓΙΑΣ SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='γραμ5' //Εμφανίζει τα βιβλία που βρίσκονται στην ΓΡΑΜΜΑΤΕΙΑ ΤΜΗΜΑΤΟΣ ΧΗΜΙΚΩΝ ΠΕΤΡΕΛΑΙΩΝ SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='γραμ6' //Εμφανίζει τα βιβλία που βρίσκονται στο ΓΡΑΦΕΙΟ του κ.χατζη SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='γραφ1' //Εμφανίζει τα βιβλία που βρίσκονται στο ΓΡΑΦΕΙΟ του κ.τερζιδη SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='γραφ2' //Εμφανίζει τα βιβλία που βρίσκονται στο ΓΡΑΦΕΙΟ του κ.παππα SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='γραφ3' //Εμφανίζει τα βιβλία που βρίσκονται στην ΓΕΝΙΚΗ ΒΙΒΛΙΟΘΗΚΗ ΤΟΥ Τ.Ε.Ι. ΚΑΒΑΛΑΣ SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='βιβλι' //Εμφανίζει τα βιβλία που βρίσκονται στα ΕΡΓΑΣΤΗΡΙΑ SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio 28

n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo ks.id_material,places.descr_places FROM `books`,`places` WHERE books.id_places=places.id_places AND books.id_places='εργασ' //Εμφανίζει τα βιβλία που είναι περιοδικά SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo k_material.descr_material FROM `books`,`book_material` WHERE books.id_material=book_material.id_material AND books.id_material='περι' //Εμφανίζει τα βιβλία που είναι άρθρα SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo k_material.descr_material FROM `books`,`book_material` WHERE books.id_material=book_material.id_material AND books.id_material='αρθρ' //Εμφανίζει τα βιβλία που είναι βιβλία SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo k_material.descr_material FROM `books`,`book_material` WHERE books.id_material=book_material.id_material AND books.id_material='βιβλ' //Εμφανίζει τα βιβλία που είναι βιβλία SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo k_material.descr_material FROM `books`,`book_material` WHERE books.id_material=book_material.id_material AND books.id_material='βιβλ' //Εμφανίζει τα βιβλία που είναι ηλεκτρονική μορφή SELECT books.id_book,books.book_title,books.enbook_title,books.author_1,books.author_2,books.publisher,books.year_editio n,books.book_contents,books.cover_book,books.isbn,books.pages,books.quantity,boo k_material.descr_material FROM `books`,`book_material` WHERE books.id_material=book_material.id_material AND books.id_material='ηλμο' //Εμφανίζει όλα τα βιβλία που αρχίζουν από Α έως Ε και είναι ταξινομημένα με βάση το όνομα του βιβλίου SELECT books.id_book,books.book_title,books.author_1,books.author_2,books.publisher,books.year_edition,books.book_conte nts,books.cover_book,books.isbn,books.pages,books.quantity FROM `books` WHERE (books.book_title LIKE 'Α%' OR books.book_title LIKE 'Β%' OR books.book_title LIKE 'Γ%' OR books.book_title LIKE 'Δ%' OR books.book_title LIKE 'Ε%') AND books.id_material ='ΒΙΒΛ' ORDER BY books.book_title 29

//Εμφανίζει όλα τα βιβλία που αρχίζουν από Ε εως Ο και είναι ταξινομημένα με βάση το όνομα του βιβλίου SELECT books.id_book,books.book_title,books.author_1,books.author_2,books.publisher,books.year_edition,books.book_conte nts,books.cover_book,books.isbn,books.pages,books.quantity,books.id_material FROM `books` WHERE (books.book_title LIKE 'Ε%' OR books.book_title LIKE 'Ζ%' OR books.book_title LIKE 'Η%' OR books.book_title LIKE 'Θ%' OR books.book_title LIKE 'Ι%' OR books.book_title LIKE 'Κ%' OR books.book_title LIKE 'Λ%' OR books.book_title LIKE 'Μ%'OR books.book_title LIKE 'Ν%'OR books.book_title LIKE 'Ξ%' OR books.book_title LIKE 'Ο%') AND books.id_material ='ΒΙΒΛ' ORDER BY books.book_title //Εμφανίζει όλα τα βιβλία που αρχίζουν από Ο εως Ω και είναι ταξινομημένα με βάση το όνομα του βιβλίου SELECT books.id_book,books.book_title,books.author_1,books.author_2,books.publisher,books.year_edition,books.book_conte nts,books.cover_book,books.isbn,books.pages,books.quantity,books.id_material FROM `books` WHERE (books.book_title LIKE 'Ο%' OR books.book_title LIKE 'Π%' OR books.book_title LIKE 'Ρ%' OR books.book_title LIKE 'Σ%' OR books.book_title LIKE 'Τ%' OR books.book_title LIKE 'Υ%' OR books.book_title LIKE 'Φ%' OR books.book_title LIKE 'Χ%'OR books.book_title LIKE 'Ψ%'OR books.book_title LIKE 'Ω%') AND books.id_material ='ΒΙΒΛ' ORDER BY books.book_title //Εμφανίζει πόσες ημέρες επιτρέπεται το συγκεκριμένο βιβλίο να δανειστεί με βάση τον τίτλο του(π.χ. ΑΓΑΠΗ) SELECT books.id_book,books.book_title,books.enbook_title,books.isbn,library_item.id_library,li brary_item.renting_days FROM `books`,`library_item` WHERE books.id_book=library_item.id_book AND books.book_title= 'ΑΓΑΠΗ' //Εμφανίζει εάν το συγκεκριμένο βιβλίο υπάρχει αντίτυπό του που δεν είναι δανεισμένο με βάση τον τίτλο του(π.χ. ΑΓΑΠΗ) SELECT books.id_book,books.book_title,books.enbook_title,books.isbn,library_item.id_library,li brary_item.rent FROM `books`,`library_item` WHERE books.id_book=library_item.id_book AND books.book_title= 'ΑΓΑΠΗ' AND library_item.rent='no' //Εμφανίζει με βάση τον κωδικό βιβλιοθήκης (π.χ. 1)πότε δανείστηκε το βιβλίο,ποιο βιβλίο είναι και ποια ημέρα θα επιστραφεί στην βιβλιοθήκη SELECT books.id_book,books.book_title,books.enbook_title,books.isbn,library_item.id_library,r ent.date_renting,rent.date_renting+library_item.renting_days date_return FROM `books`,`library_item`,`rent` WHERE books.id_book=library_item.id_book AND library_item.id_library=rent.id_library AND library_item.id_library=1 //Εμφανίζει τις κριτικές που έχει κάνει ο συγκεκριμένος χρήστης (π.χ. ΧΑΤΖΗΣ) και για ποια συγκεκριμένα βιβλία 30

SELECT users.surname,books_review.id_book,books.book_title,books.enbook_title,books.isbn, books_review.review FROM `books`,`books_review`,`users` WHERE users.id_user=books_review.id_user AND books_review.id_book=books.id_book AND users.surname='χατζησ' //Εμφανίζει τις διαφορετικές κριτικές των χρηστών που έχουν κάνει για ένα συγκεκριμένο βιβλίο με βάση τον τίτλο του βιβλίου(π.χ. ΑΓΑΠΗ) SELECT users.surname,users.name,books_review.id_book,books.book_title,books.enbook_title, books_review.review FROM `books`,`books_review`,`users` WHERE users.id_user=books_review.id_user AND books_review.id_book=books.id_book AND books.book_title='αγαπη' //Εμφανίζει ποια βιβλία έχει δανειστεί ένας συγκεκριμένος χρήστης (π.χ. ΧΑΤΖΗΣ) SELECT users.id_user,users.surname,users.name,rent.id_library,library_item.id_book,books.boo k_title,books.enbook_title FROM `books`,`users`,`rent`,`library_item` WHERE users.id_user=rent.id_user AND library_item.id_book=books.id_book AND rent.id_library=library_item.id_library AND users.surname='χατζησ' ORDER BY books.book_title //Εμφανίζει ποια βιβλία είναι δανεισμένα SELECT library_item.id_library,books.id_book,books.book_title,books.enbook_title,books.author _1,books.Author_2,books.Publisher,books.Year_edition,books.ISBN,library_item.rent FROM `books`,`library_item` WHERE library_item.id_book=books.id_book AND library_item.rent='yes' //Εμφανίζει την ημέρα επιστροφής ενός δανεισμένου βιβλίου όταν δίνουμε τον τίτλο του(π.χ. ΑΓΑΠΗ) SELECT books.id_book,books.book_title,books.enbook_title,library_item.id_library,rent.date_ren ting+library_item.renting_days date_return FROM `books`,`library_item`,`rent` WHERE library_item.id_book=books.id_book AND library_item.id_library=rent.id_library AND books.book_title='αγαπη' //Εμφανίζει πόσα αντίτυπα υπάρχουν την βιβλιοθήκη από το συγκεκριμένο βιβλίο (π.χ. ΑΓΑΠΗ) SELECT count(books.book_title) ANTITYPA FROM `books` WHERE books.book_title='αγαπη' //Εμφανίζει το πλήθος των βιβλίων που υπάρχουν στην βιβλιοθήκη SELECT count(books.id_book) biblia FROM `books` //Εμφανίζει όλους τους ξεχωριστούς τίτλους βιβλίων SELECT distinct(books.book_title) biblia FROM `books 31

Κ ε φ ά λ α ι ο 5 ΣΧΕΔΙΑΣΜΟΣ ΙΣΤΟΧΩΡΟΥ ΓΙΑ ΤΗΝ ON-LINE ΒΙΒΛΙΟΘΗΚΗ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ MICROSOFT FRONTPAGE Για να δημιουργήσουμε έναν καινούργιο ιστοχώρο χρησιμοποιούμε το μενού File και επιλέγουμε την εντολή New Page Or Web (όπως φαίνεται στην παρακάτω εικόνα) και το πρόγραμμα εμφανίζει ένα παράθυρο με διάφορες επιλογές που έχουμε για την σχεδίαση. Εμείς επιλέγουμε Empty Web και στο παράθυρο που εμφανίζει πατάμε στο ok. Έπειτα για να δημιουργήσουμε την αρχική σελίδα της βιβλιοθήκης χρησιμοποιούμε πάλι το μενού File και επιλέγουμε την εντολή New Page Or Web και αφού εμφανιστεί το παράθυρο με τις επιλογές που έχουμε για την σχεδίαση, 32

επιλέγουμε Page Templates πηγαίνουμε στην καρτέλα Frames Page και επιλέγουμε την επιλογή Header,Footer and Contents και πατάμε ok. Αμέσως μετά εμφανίζεται η σελίδα μας στην οθόνη και τώρα μπορούμε να αρχίσουμε την σχεδίαση της. Πατάμε στο κουμπί New Page του πρώτου Frame και μπορούμε τώρα να ορίσουμε το background χρησιμοποιώντας το μενού Format και επιλέγουμε την εντολή background και το πρόγραμμα εμφανίζει ένα παράθυρο στο οποίο εμείς επιλέγουμε το συγκεκριμένο χρώμα (όπως φαίνεται στην εικόνα παρακάτω). Με αυτόν τον τρόπο έχω ορίσει ότι το συγκεκριμένο τμήμα της σελίδας θα έχει σαν background το συγκεκριμένο χρώμα. Τώρα μπορώ να προσθέσω το Βασικό κείμενο και τις εικόνες που το περικλείουν. Πηγαίνω στο μενού InsertPictureWordArt και στο παράθυρο που μας ανοίγει επιλέγουμε το σχήμα το γραμμάτων και πληκτρολογούμε το εξής κείμενο ΒΙΒΛΙΟΘΗΚΗ ΤΟΥ 33

ΤΜΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΤΟΥ Τ.Ε.Ι. ΚΑΒΑΛΑΣ και έπειτα χρησιμοποιώ το μενού Insert και επιλέγω την εντολή PictureFrom File και βρίσκω τις εικόνες με όνομα TEIKAV2.jpg και imd_logo.jpg και πατάω το κουμπί Insert. Τοποθετώ τις εικόνες στα σημεία που επιθυμώ και έτσι έχω σχεδιάσει το πρώτο Frame της αρχικής σελίδας όπως φαίνεται στην παρακάτω εικόνα. Το ίδιο κάνουμε και στο επόμενο Frame. Πατάμε στο κουμπί New Page και έπειτα ορίζουμε το background χρησιμοποιώντας το μενού Format και επιλέγουμε την εντολή background και το πρόγραμμα εμφανίζει ένα παράθυρο στο οποίο εμείς τσεκάρουμε την επιλογή background picture και πατάμε στο κουμπί browse και βάζουμε το όνομα της εικόνας : background5.jpg και πατάμε ok. Έπειτα προσθέτουμε το κείμενο ΚΑΛΩΣΟΡΙΣΑΤΕ ΣΤΟΝ ΙΣΤΟΧΩΡΟ ΤΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΒΙΒΛΙΟΘΗΚΗΣ ΤΟΥ ΤΜΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ και επειδή θέλουμε να προσθέσουμε κάποιο εφέ στο συγκεκριμένο κείμενο το επιλέγουμε και πηγαίνουμε στο μενού Format και επιλέγουμε την εντολή Dynamic HTML Effects και βάζουμε στο κείμενο το εφέ που θέλουμε. Τέλος επειδή θέλω να προσθέσω κουμπιά πηγαίνω στο μενού Insert και επιλέγω την εντολή Web Component και εμφανίζεται το εξής παράθυρο και επιλέγω Link Bars και πατάω next και έπειτα επιλέγω τα κουμπιά που θέλω και πατάω next έπειτα επιλέγω την διάταξη για τα κουμπιά και πατάω στο κουμπί finish. Ανοίγει ένα παράθυρο στο οποίο μπορούμε να προσθέσουμε να κουμπιά που θέλουμε και να ορίσουμε σε ποιες σελίδες θα οδηγούν. Χρησιμοποιώντας το κουμπί Add Link προσθέτω τα κουμπιά που θέλω και κάνω τις απαραίτητες ιδιότητες για αυτά. Για το τρίτο Frame δεν θα χρησιμοποιήσω το MICROSOFT FRONTPAGE αλλά χρησιμοποιώ έναν κειμενογράφο για να γράψω κατευθείαν σε HTML. Στην επόμενη σελίδα εμφανίζεται το κομμάτι προγραμματισμού που πρέπει να πληκτρολογήσουμε για την δημιουργία της σελίδας μας. 34

1 <HTML> 2 <head> 3 //ΓΙΑ ΝΑ ΔΙΑΒΑΖΕΙ ΤΗΝ ΣΕΛΙΔΑ ΣΤΑ ΕΛΛΗΝΙΚΑ 4 <meta http-equiv=content-type content="text/html; charset=iso-8859-7"> 5 <meta http-equiv="content-language" content="el"> 6 </head> 7 <base target="main"> 8 <BODY> 9 //ΔΗΜΙΟΥΡΓΟΥΜΕ ΤΟΝ ΣΥΝΔΕΣΜΟ ΓΙΑ ΦΟΙΤΗΤΕΣ 10 <h1>για ΦΟΙΤΗΤΕΣ</h1> 11 <strong>παρακαλω ΣΥΝΔΕΘΕΙΤΕ</strong> 12 <FORM ACTION = "secret1.php" METHOD=POST> 13 <table border= 1> 14 <tr> 15 16 <td bgcolor="#99ccff"><input type ="text" name = "name1" size="20"> 17 </td> 18 </tr> 19 <tr> 20 <th bgcolor="#99ccff">password</th> 21 22 <input type ="password" name = "password1" size="20"> </td> 23 </tr> 24 <tr> 25 <td colspan =2 align = center bgcolor="#99ccff"> 26 27 </td> 28 </table> 29 </FORM> 30 //ΔΗΜΙΟΥΡΓΟΥΜΕ ΤΟΝ ΣΥΝΔΕΣΜΟ ΓΙΑ ΔΙΑΧΕΙΡΙΣΤΕΣ 31 <h1>για ΔΙΑΧΕΙΡΙΣΤΕΣ</h1> 32 <strong>παρακαλω ΣΥΝΔΕΘΕΙΤΕ</strong> 33 <FORM ACTION ="secret.php" METHOD=POST> 34 <table border= 1> 35 <tr> 36 <th bgcolor="#99ccff">login</th> 37 <td bgcolor="#99ccff"><input type ="text" name = "name" size="20" > 38 </td> 39 </tr> 40 <tr> 41 <th bgcolor="#99ccff">password</th> 42 <td bgcolor="#99ccff"> 43 <input type ="password" name = "password" size="20"> </td> 44 </tr> 45 <tr> 46 <td colspan =2 align = center bgcolor="#99ccff"> 47 <input type = submit value = "LOG IN"> 48 </td> 49 </table> 50 </FORM> 51 </BODY> 52 </HTML> Ας δούμε λίγο πιο αναλυτικά τον κώδικα Στις πρώτες 7 γραμμές έχουμε την δημιουργία ενός νέου εγγράφου αρχίζοντας με την κεφαλίδα HTML και ορίζουμε στο head η σελίδα να εμφανίζεται στα ελληνικά 35

Στο κυρίως σώμα της σελίδας γραμμές 8 έως 51 δημιουργούμε την φόρμα με τους συνδέσμους για την σύνδεση των φοιτητών και των διαχειριστών.δημιουργούμε τα πεδία που πρέπει να συμπληρώσει ο φοιτητής και ο διαχειριστής για να του επιτραπεί η είσοδος στην κεντρική σελίδα. Για τον έλεγχο των στοιχείων που συμπληρώνει ο φοιτητής η σελίδα χρησιμοποιεί το script secret1 ενώ για τον έλεγχο των στοιχείων που συμπληρώνει ο διαχειριστής η σελίδα χρησιμοποιεί το script secret. Τέλος στις γραμμές 51 και 51 κλείνουμε το κυρίως σώμα της ιστοσελίδας και την κεφαλίδα HTML. Αφού αποθηκεύσω τον παραπάνω κώδικα σαν HTML σελίδα το χρησιμοποιώ στην ιστοσελίδα μου σαν Frame. Και έτσι έχω ολοκληρώσει την κεντρική σελίδα μου, της οποίας η μορφή φαίνεται παρακάτω: ΚΕΝΤΡΙΚΗ ΣΕΛΙΔΑ 36

Το επόμενο βήμα μας είναι να σχεδιάσουμε την σελίδα της εγγραφής η οποία εμφανίζεται όταν ο χρήστης θα κάνει κλικ πάνω στο συγκεκριμένο κουμπί εγγραφής. Πηγαίνουμε λοιπόν στο μενού File και επιλέγουμε την εντολή New Page Or Web Web (όπως φαίνεται στην παρακάτω εικόνα) και το πρόγραμμα εμφανίζει ένα παράθυρο με διάφορες επιλογές που έχουμε για την σχεδίαση. Εμείς επιλέγουμε Blank page και δημιουργούμε μία καινούργια σελίδα. Για να ορίσουμε το φόντο της σελίδας αυτής (background) χρησιμοποιούμε το μενού Format και επιλέγουμε την εντολή background και το πρόγραμμα εμφανίζει ένα παράθυρο στο οποίο εμείς τσεκάρουμε την επιλογή background picture και πατάμε στο κουμπί browse και βάζουμε το όνομα της εικόνας : background5.jpg και πατάμε ok (όπως φαίνεται στην εικόνα παρακάτω). Με αυτόν τον τρόπο έχω ορίσει ότι το συγκεκριμένο τμήμα της σελίδας θα έχει σαν background την συγκεκριμένη εικόνα (background5.jpg).έπειτα πατάω με τον κέρσορα μου μέσα στην σελίδα και πληκτρολογώ το κείμενο,σχεδιάζω την φόρμα της εγγραφής και τέλος βάζω και την εικόνα με τον εξής τρόπο: χρησιμοποιώ το μενού Insert και επιλέγω την εντολή PictureFrom File και βρίσκω την εικόνα με όνομα library2.jpg και πατάω το κουμπί Insert. 37

Με τον ίδιο ακριβώς τρόπο βάζω την εικόνα με το βελάκι και για να την μετατρέψω σε σύνδεσμο με την αρχική σελίδα κάνω δεξί κλικ πάνω της και επιλέγω Hyperlink Properties και στο παράθυρο που εμφανίζεται επιλέγω ως σύνδεσμο την σελίδα index όπως φαίνεται και στο σχήμα μας και πατάω οκ. (Σχ. 1).Έτσι έχουμε ολοκληρωμένη την σελίδα μας όπως φαίνεται παρακάτω. ΣΕΛΙΔΑ ΕΓΓΡΑΦΗΣ ΝΕΟΥ ΧΡΗΣΤΗ Για την λειτουργία της συγκεκριμένης σελίδας θα πρέπει να δημιουργήσουμε ένα script το οποίο θα εισάγει τα στοιχεία που έχει πληκτρολογήσει ο χρήστης στον αντίστοιχο πίνακα της Βάσης Δεδομένων μας και να του εμφανίζει ένα μήνυμα που θα τον ενημερώνει ότι το login και το password θα του αποσταλούν στην ηλεκτρονική του διεύθυνση. Το script (insert_xristi.php ) αυτό παρουσιάζεται παρακάτω : Το script insert_xristi.php (εισάγει τα στοιχεία του χρήστη στην Βάση Δεδ/νων ) 1 <HTML> 2 <BODY> 3 <?php 4 //ΕΛΕΓΧΕΤΑΙ ΕΑΝ Ο ΧΡΗΣΤΗΣ ΕΧΕΙ ΣΥΜΠΛΗΡΩΣΕΙ ΤΑ ΑΠΑΡΑΙΤΗΤΑ ΠΕΔΙΑ 5 //ΣΕ ΠΕΡΙΠΤΩΣΗ ΜΗ ΣΥΜΠΛΗΡΩΣΕΙΣ ΕΜΦΑΝΙΖΕΙ ΜΗΝΥΜΑ ΣΤΟΝ ΧΡΗΣΤΗ 38

6 if ((!$_POST[name]!$_POST[surname]!$_POST[address]!$_POST[city]!$_POST[number]!$_POST[mail])) { 7 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 8 echo "ΔΕΝ ΕΧΕΤΕ ΣΥΜΠΛΗΡΩΣΕΙ ΤΑ ΑΠΑΡΑΙΤΗΤΑ ΠΕΔΙΑ.<br>"; 9 } else { 10 //ΕΛΕΓΧΕΙ ΕΑΝ ΤΑ ΠΕΔΙΑ ΕΧΟΥΝ ΤΟ ΑΝΑΛΟΓΟ ΜΗΚΟΣ ΧΑΡΑΚΤΗΡΩΝ 11 if (strlen($_post[name])<=50){ 12 if (strlen($_post[surname])<=50){ 13 if (strlen($_post[address])<=30){ 14 if (strlen($_post[code_number])<=6){ 15 if (strlen($_post[city])<=40){ 16 if (strlen($_post[country])<=40){ 17 if (strlen($_post[number])==10){ 18 if (strlen($_post[mobile])==10){ 19 if (strlen($_post[mail])>=6) { 20 if (strlen($_post[business])<=30){ 21 //ΣΥΝΔΕΣΗ ΣΤΗΝ MYSQL 22 //ΤΟ ΕΡΩΤΗΜΑ ΕΞΕΤΑΖΕΙ ΕΑΝ ΕΙΝΑΙ ΕΠΙΤΥΧΗΣ Η ΣΥΝΔΕΣΗ ΣΤΗΝ MYSQL 23 //ΣΕ ΠΕΡΙΠΤΩΣΗ ΑΠΟΤΥΧΙΑΣ ΤΗΣ ΣΥΝΔΕΣΗΣ ΕΜΦΑΝΙΖΕΙ ΜΗΝΥΜΑ ΑΠΟΤΥΧΙΑΣ 24 $conn =mysql_connect("localhost","root"); 25 if(!$conn) 26 { 27 echo "ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΓΙΝΕΙ Η ΣΥΝΔΕΣΗ ΣΤΗΝ MYSQL"; 28 29 } 30 mysql_select_db("on-line bibliothiki",$conn); 31 $sql= "INSERT INTO users values ('NULL', ' ', 32 '$_POST[name]','$_POST[surname]', '$_POST[address]', 33 '$_POST[code_number]', '$_POST[city]', '$_POST[country]', 34 '$_POST[number]', '$_POST[mobile]', 35 '$_POST[mail]', ' ','$_POST[date] ', ' ', ' ', ' ', '$_POST[business]' )" ; 36 //ΕΛΕΓΧΕΙ ΓΙΑ ΤΟ ΕΑΝ ΕΤΡΕΞΕ ΣΤΟ ΕΡΩΤΗΜΑ ΜΕ ΕΠΙΤΥΧΙΑ ΚΑΙ ΕΓΙΝΕ 37 //Η ΕΙΣΑΓΩΓΗ ΤΗΣ ΚΑΤΗΓΟΡΙΑΣ 38 //ΣΕ ΠΕΡΙΠΤΩΣΗ ΕΠΙΤΥΧΙΑΣ ΕΜΦΑΝΙΖΕΙ ΤΟ ΑΝΑΛΟΓΟ ΜΗΝΥΜΑ 39 //ΣΕ ΠΕΡΙΠΤΩΣΗ ΑΠΟΤΥΧΙΑΣ ΠΑΛΙ ΕΜΦΑΝΙΖΕΙ ΑΝΑΛΟΓΟ ΜΗΝΥΜΑ 40 if (mysql_query($sql, $conn)) { 41 echo"<h1>αποτελεσμα</h1><br><br<hr><br><br>"; 42 echo "<strong>η ΕΓΓΡΑΦΗ ΕΓΙΝΕ ΜΕ ΕΠΙΤΥΧΙΑ</strong><br>"; 43 echo "<strong>το LOGIN ΚΑΙ ΤΟ PASSWORD ΣΑΣ ΓΙΑ ΤΗΝ ΠΡΟΣΒΑΣΗ 44 ΣΤΟ ΙΣΤΟΧΩΡΟ ΜΑΣ ΘΑ </strong><br>"; 45 echo "<strong>θα ΣΑΣ ΑΠΟΣΤΑΛΛΟΥΝ ΜΕΣΩ E-MAIL </strong><br>"; 46 echo "<strong>ευχαριστουμε ΠΟΥ ΕΠΙΣΚΕΦΤΗΚΑΤΕ ΤON ΙΣΤΟΧΩΡΟ ΜΑΣ! </strong><br>"; 47 } else { 48 echo"<h1>αποτελεσμα</h1><br><br><hr><br><br>"; 49 echo "<strong>η ΕΓΓΡΑΦΗ ΔΕΝ ΟΛΟΚΛΗΡΩΘΗΚΕ.ΠΡΟΣΠΑΘΗΣΤΕ ΞΑΝΑ</strong>"; 50 } 51 } else { 52 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 53 echo " ΤΟ ΕΠΑΓΓΕΛΜΑ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΜΕΧΡΙ ΚΑΙ 30 ΧΑΡΑΚΤΗΡΕΣ <br><br>"; 54 55 } else 56 { 57 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 58 echo " Η ΔΙΕΥΘΥΝΣΗ E-MAIL ΔΕΝ ΕΙΝΑΙ ΕΓΚΥΡΗ <br><br>"; 59 } 39

60 61 } else 62 { 63 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 64 echo " Ο ΑΡΙΘΜΟΣ ΚΙΝΗΤΟΥ ΤΗΛΕΦΩΝΟΥ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ 10 ΧΑΡΑΚΤΗΡΕΣ <br><br>"; 65 } 66 } else 67 { 68 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 69 echo " Ο ΑΡΙΘΜΟΣ ΤΗΛΕΦΩΝΟΥ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ 10 ΧΑΡΑΚΤΗΡΕΣ<br><br>"; 70 } 71 72 } else 73 { 74 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 75 76 echo " Η ΧΩΡΑ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΜΕΧΡΙ ΚΑΙ 40 ΧΑΡΑΚΤΗΡΕΣ 77 <br><br>"; 78 } 79 80 } else 81 { 82 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 83 84 echo " Η ΠΟΛΗ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΜΕΧΡΙ ΚΑΙ 40 ΧΑΡΑΚΤΗΡΕΣ <br><br>"; 85 } 86 87 } else 88 { 89 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 90 91 echo " Ο ΤΑΧΥΔΡΟΜΙΚΟΣ ΚΩΔΙΚΑΣ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΜΕΧΡΙ ΚΑΙ 6 ΧΑΡΑΚΤΗΡΕΣ <br><br>"; 92 } 93 94 } else 95 { 96 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 97 98 echo " Η ΔΙΕΥΘΥΝΣΗ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΜΕΧΡΙ ΚΑΙ 30 ΧΑΡΑΚΤΗΡΕΣ <br><br>"; 100 } 101 } else 102 { 103 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 104 105 echo " ΤΟ ΕΠΩΝΥΜΟ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΜΕΧΡΙ ΚΑΙ 50 ΧΑΡΑΚΤΗΡΕΣ 106 <br><br>"; 107 } 108 } else 109 { 110 echo"<h1> ΑΠΟΤΕΛΕΣΜΑΤΑ</h1><br><br>"; 111 echo " ΤΟ ΟΝΟΜΑ ΘΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙΤΑΙ ΜΕΧΡΙ ΚΑΙ 50 ΧΑΡΑΚΤΗΡΕΣ <br><br>"; 112 } 40

113 } 114?> 115 <P>ΓΙΑ ΕΠΙΣΤΡΟΦΗ ΣΤΗΝ <a target="_top" href="index.htm">αρχικη 116 ΣΕΛΙΔΑ</a></P> 117 </BODY> 118 </HTML> Ας δούμε λίγο πιο αναλυτικά τον κώδικα Στις πρώτες 2 γραμμές έχουμε την δημιουργία ενός νέου εγγράφου αρχίζοντας με την κεφαλίδα HTML. Στις γραμμές 3 έως 9 δημιουργούμε το τμήμα PHP και στην συνέχεια ελέγχουμε εάν ο χρήστης έχει συμπληρώσει τα απαραίτητα πεδία για την εγγραφή του σε περίπτωση που δεν τα έχει συμπληρώσει του εμφανίζει ανάλογο μήνυμα σε περίπτωση συμπλήρωσης όμως θα πρέπει να γίνει έλεγχος του μήκους των στοιχείων που έχει συμπληρώσει ο χρήστης. Αυτό γίνεται στις γραμμές 10 έως 20.Σε περίπτωση που το μήκος κάποιου στοιχείου δεν είναι σωστό τότε εμφανίζει στο χρήστη ανάλογο μήνυμα.σε περίπτωση όμως που έχουν συμπληρωθεί σωστά τα κενά τότε προχωράει στις επόμενες γραμμές Στις γραμμές 21 έως 29 γίνεται σύνδεση στην MYSQL και ελέγχεται εάν ήταν επιτυχής η σύνδεση.σε περίπτωση αποτυχίας εμφανίζει ανάλογο μήνυμα στον χρήστη Στις γραμμή 30 γίνεται σύνδεση στην βάση δεδομένων και ελέγχεται εάν ήταν επιτυχής η σύνδεση.σε περίπτωση αποτυχίας εμφανίζει ανάλογο μήνυμα στον χρήστη Στις γραμμές 31 έως 39 έχουμε την δημιουργία του ερωτήματος για την εισαγωγή των στοιχείων στον πίνακα των χρηστών Στις γραμμές 40 έως 50 γίνεται ο έλεγχος για το εάν το ερώτημα έτρεξε με επιτυχία ή όχι και εμφανίζεται το αντίστοιχο μήνυμα στον χρήστη. Στις γραμμές 51 έως 111 έχουμε τα μηνύματα που εμφανίζονται στο χρήστη σε περίπτωση που κάποιο στοιχείο που εισάγει έχει μεγαλύτερο μήκος από το επιθυμητό. Στην γραμμή 114 κλείνει το script PHP Στην γραμμή 115 έχουμε σύνδεσμο που οδηγεί στην κεντρική σελίδα Και τέλος στις γραμμές 117 και 118 έχουμε το τέλος της σελίδας. 41

ΑΥΤΗ ΕΙΝΑΙ Η ΣΕΛΙΔΑ ΠΟΥ ΕΜΦΑΝΙΖΕΤΑΙ ΑΦΟΥ ΓΙΝΕΙ Η ΕΓΓΡΑΦΗ ΤΟΥ ΧΡΗΣΤΗ Τώρα μπορούμε να δημιουργήσουμε τον δεύτερο σύνδεσμο (την σελίδα που εμφανίζεται όταν ο χρήστης πατήσει το κουμπί Πληροφορίες. Πηγαίνουμε πάλι στο μενού File και επιλέγουμε την εντολή New Page Or Web Web (όπως φαίνεται στην παρακάτω εικόνα) και το πρόγραμμα εμφανίζει ένα παράθυρο με διάφορες επιλογές που έχουμε για την σχεδίαση. Εμείς επιλέγουμε Blank page και δημιουργούμε μία καινούργια σελίδα. Για να ορίσουμε το φόντο της σελίδας αυτής (background) χρησιμοποιούμε το μενού Format και επιλέγουμε την εντολή background και το πρόγραμμα εμφανίζει ένα παράθυρο στο οποίο εμείς τσεκάρουμε την επιλογή background picture και πατάμε στο κουμπί browse και βάζουμε το όνομα της εικόνας : background5.jpg και πατάμε ok (όπως φαίνεται στην εικόνα παρακάτω). Με αυτόν τον τρόπο έχω ορίσει ότι το συγκεκριμένο τμήμα της σελίδας θα έχει σαν background την συγκεκριμένη εικόνα (background5.jpg).έπειτα πατάω με τον κέρσορα μου μέσα στην σελίδα και πληκτρολογώ το κείμενο και βάζω την εικόνα με το βελάκι η οποία είναι πάλι σύνδεσμος με την πρώτη σελίδα. 42

Έτσι η σελίδα με τις Πληροφορίες θα έχει την ακόλουθη μορφή : Αφού τελειώσαμε με τα κουμπιά της αρχικής σελίδας θα πρέπει να πούμε ότι κάνοντας login ένας φοιτητής θα πρέπει να ελέγχετε εάν τα στοιχεία που δίνει ο φοιτητής είναι σωστά και έπειτα να του επιτρέπεται η είσοδος στην κεντρική σελίδα των φοιτητών της οποίας τον σχεδιασμό θα παρουσιάσουμε παρακάτω. Το ίδιο όμως ισχύει και για τους διαχειριστές. Έτσι θα πρέπει να δημιουργήσουμε δύο script με την βοήθεια της γλώσσας PHP,το ένα για να ελέγχει την είσοδο των φοιτητών και το άλλο για να ελέγχει την είσοδο των διαχειριστών.παρακάτω παρουσιάζονται αναλυτικά τα δύο script. Το script secret1.php (ελέγχει την είσοδο των φοιτητών ) 1 <HTML> 2 <BODY> 3 <? 4 if(!isset($_post[name1])&&!isset($_post[password1]) ) 5 { 6 //Ο ΧΡΗΣΤΗΣ ΠΡΕΠΕΙ ΝΑ ΔΩΣΕΙ ΟΝΟΜΑ ΚΑΙ ΚΩΔΙΚΟ ΣΥΝΔΕΣΗΣ 7 } else { 8 //ΣΥΝΔΕΣΗ ΣΤΗΝ MYSQL 9 //ΤΟ ΕΡΩΤΗΜΑ ΕΞΕΤΑΖΕΙ ΕΑΝ ΕΙΝΑΙ ΕΠΙΤΥΧΗΣ Η ΣΥΝΔΕΣΗ ΣΤΗΝ MYSQL 10 //ΣΕ ΠΕΡΙΠΤΩΣΗ ΑΠΟΤΥΧΙΑΣ ΤΗΣ ΣΥΝΔΕΣΗΣ ΕΜΦΑΝΙΖΕΙ ΜΗΝΥΜΑ ΑΠΟΤΥΧΙΑΣ 11 $mysql = mysql_connect("localhost","root"); 12 if(!$mysql) 13 { 14 echo "ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΓΙΝΕΙ Η ΣΥΝΔΕΣΗ ΣΤΗΝ MYSQL"; 15 exit; 16 } 17 //ΕΠΙΛΟΓΗ ΤΗΣ ΚΑΤΑΛΛΗΛΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ 18 //ΤΟ ΕΡΩΜΑΤΗΜΑ ΕΞΕΤΑΖΕΙ ΕΑΝ Η ΕΠΙΛΟΓΗ ΤΗΣ ΒΑΣΗΣ ΕΓΙΝΕ ΜΕ ΕΠΙΤΥΧΙΑ 43

19 //ΣΕ ΠΕΡΙΠΤΩΣΗ ΑΠΟΤΥΧΙΑΣ ΕΜΦΑΝΙΖΕΙ ΜΗΝΥΜΑ ΑΠΟΤΥΧΙΑΣ ΣΤΟΝ ΧΡΗΣΤΗ 20 $mysql = mysql_select_db("on-line bibliothiki"); 21 if (!$mysql) 22 { 23 echo "ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΓΙΝΕΙ Η ΕΠΙΛΟΓΗ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ "; 24 exit; 25 } 26 // ΕΡΩΤΗΣΗ ΣΤΗΝ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ ΓΙΑ ΤΟ ΕΑΝ ΥΠΑΡΧΕΙ ΑΝΤΙΣΤΟΙΧΗ ΕΓΓΡΑΦΗ 27 $query = "SELECT * FROM users WHERE login='$_post[name1]' AND 28 password='$_post[password1]' AND id_uscat='χρη' "; 29 $result =mysql_query($query); 30 $number_of_rows= mysql_num_rows($result); 31 32 if(!$result) 33 { 34 echo "ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΤΡΕΞΕΙ ΤΟ ΕΡΩΤΗΜΑ"; 35 exit; 36 } 37 // ΕΛΕΓΧΕΙ ΓΙΑ ΤΟ ΕΑΝ ΒΡΕΘΗΚΕ ΕΓΡΑΦΗ ΜΕ ΑΥΤΑ ΤΑ ΣΟΙΧΕΙΑ 38 //ΕΑΝ ΥΠΑΡΧΕΙ ΕΓΡΑΦΗ ΕΜΦΑΝΙΖΕΙ ΜΗΝΥΜΑ ΕΠΙΤΥΧΙΑΣ ΤΗΣ ΣΥΝΔΕΣΗΣ 39 //ΚΑΙ ΣΥΝΔΕΣΜΟ ΓΙΑ ΤΗΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΕΝΤΡΙΚΗ ΣΕΛΙΔΑ 40 //ΕΑΝ ΔΕΝ ΥΠΑΡΧΕΙ ΕΓΡΑΦΗ ΤΟΤΕ ΕΜΦΑΝΙΖΕΙ ΜΗΝΥΜΑ ΣΤΟΝ ΧΡΗΣΤΗ 41 //ΟΤΙ Ο ΣΥΝΔΥΑΣΜΟΣ ΚΩΔΙΚΟΥ ΚΑΙ ΟΝΟΜΑΤΟΣ ΔΕΝ ΕΙΝΑΙ ΣΩΣΤΟΣ 42 if($number_of_rows >0) 43 { 44 echo "<h1>καλοσ ΗΛΘΑΤΕ ΣΤΗΝ ΚΕΝΤΡΙΚΗ ΣΕΛΙΔΑ ΔΙΑΧΕΙΡΙΣΤΩΝ</h1> 45 <br><hr><br><br>"; 46 47 echo "<strong>η ΠΡΟΣΒΑΣΗ ΣΑΣ ΕΓΙΝΕ ΔΕΚΤΗ</strong><br>"; 48 echo "<strong>σασ ΕΥΧΟΜΑΣΤΕ ΜΙΑ ΕΥΧΑΡΙΣΤΗ ΠΛΟΗΓΗΣΗ ΣΤΟΝ 49 ΙΣΤΟΧΩΡΟ ΜΑΣ</strong><br>"; 50 51?> 52 <P> ΓΙΑ ΝΑ ΜΠΕΙΤΕ ΣΤΗΝ ΚΕΝΤΡΙΚΗ ΣΕΛΙΔΑ ΜΑΘΗΤΩΝ ΠΑΤΗΣΤΕ ΕΔΩ<BR><br> 53 <a target="_top" href="mathites.htm">κεντρικη ΣΕΛΙΔΑ ΜΑΘΗΤΩΝ</a></P> 54 55 <? 56 } 57 else 58 { 59 echo "Ο ΣΥΝΔΥΑΣΜΟΣ ΟΝΟΜΑΤΟΣ & ΚΩΔΙΚΟΥ ΔΕΝ ΕΙΝΑΙ ΣΩΣΤΟΣ.ΠΡΟΣΠΑΘΗΣΤΕ ΞΑΝΑ "; 60 } 61 } 62?> 63 </BODY> 64 </HTML> Ας δούμε λίγο πιο αναλυτικά τον κώδικα Στις πρώτες 3 γραμμές έχουμε την δημιουργία ενός νέου εγγράφου αρχίζοντας με την κεφαλίδα HTML και την αρχή του κώδικα PHP. 44

Στις γραμμές 4 έως 7 ελέγχεται εάν ο χρήστης έχει συμπληρώσει τα απαραίτητα πεδία.σε περίπτωση που τα έχει συμπληρώσει προχωράμε Στις γραμμές 8 έως 16 γίνεται προσπάθεια σύνδεσης στην MYSQL και ελέγχεται με μια IF εάν η σύνδεση έγινε με επιτυχία.σε περίπτωση αποτυχίας εμφανίζει ανάλογο μήνυμα στον χρήστη. Στις γραμμές 18 έως 25 γίνεται προσπάθεια σύνδεσης στην συγκεκριμένη βάση δεδομένων και ελέγχεται με μια IF εάν η σύνδεση έγινε με επιτυχία.σε περίπτωση αποτυχίας εμφανίζει ανάλογο μήνυμα στον χρήστη. Στις γραμμές 26 έως 36 έχουμε την δημιουργία ερωτήματος για το εάν υπάρχει αντίστοιχη εγγραφή στον πίνακα και έλεγχος για το εάν έτρεξε το ερώτημα.σε περίπτωση αποτυχίας εμφανίζεται ανάλογο μήνυμα στον χρήστη. Στις γραμμές 37 έως 61 έχουμε τον έλεγχο για το εάν βρέθηκε εγγραφή με αυτά τα στοιχεία.σε περίπτωση που υπάρχει εγγραφή εμφανίζει στον χρήστη μήνυμα επιτυχίας και ένα σύνδεσμο για την κεντρική σελίδα φοιτητών.σε περίπτωση αποτυχίας εμφανίζει ανάλογο μήνυμα αποτυχίας της σύνδεσης. Στις γραμμές 62 έως 64 έχουμε το κλείσιμο του κώδικα PHP και την ιστοσελίδας. Με το παραπάνω λοιπόν script,εάν ο χρήστης πληκτρολογήσει λάθος password ή login τότε θα του εμφανιστεί ένα μήνυμα λάθους και δεν θα του επιτραπεί η σύνδεση στην ιστοσελίδα των φοιτητών,εάν όμως δώσει σωστά τα στοιχεία τότε του επιτρέπεται η είσοδος στην ιστοσελίδα των φοιτητών. ΑΥΤΗ ΕΙΝΑΙ Η ΣΕΛΙΔΑ ΠΟΥ ΕΜΦΑΝΙΖΕΤΑΙ ΑΦΟΥ ΓΙΝΕΙ ΔΕΚΤΗ Η ΕΙΣΟΔΟΣ ΤΟΥ ΧΡΗΣΤΗ (ΔΗΛ. Ο ΚΩΔΙΚΟΣ ΚΑΙ ΤΟ LOGIN ΕΙΝΑΙ ΣΩΣΤΑ) 45

Ας δούμε λοιπόν τώρα την δημιουργία της σελίδας των μαθητών Με τον τρόπο που έχουμε αναφέρει παραπάνω δημιουργούμε μια νέα σελίδα(frames Page) Πατάω στο κουμπί New Page του πρώτου Frame και μπορούμε τώρα να ορίσουμε το background χρησιμοποιώντας το μενού Format και επιλέγουμε την εντολή background και το πρόγραμμα εμφανίζει ένα παράθυρο στο οποίο εμείς τσεκάρουμε την επιλογή background picture και πατάμε στο κουμπί browse και βάζουμε το όνομα της εικόνας : romtextb.jpg και πατάμε ok (όπως φαίνεται στην εικόνα παρακάτω). Έπειτα βάζω και την εικόνα με τον εξής τρόπο: χρησιμοποιώ το μενού Insert και επιλέγω την εντολή PictureFrom File και βρίσκω την εικόνα με όνομα TEIKAV2.jpg και πατάω το κουμπί Insert.(Με τον ίδιο τρόπο βάζω και την άλλη εικόνα : imd_logo.jpg) Τώρα μπορώ να προσθέσω το Βασικό κείμενο και τις εικόνες που το περικλείουν. Πηγαίνω στο μενού InsertPictureWordArt και στο παράθυρο που μας ανοίγει επιλέγουμε το σχήμα το γραμμάτων και πληκτρολογούμε το εξής κείμενο ΗΛΕΚΤΡΟΝΙΚΗ ΒΙΒΛΙΟΘΗΚΗ και έτσι έχω σχεδιάσει το πρώτο Frame της αρχικής σελίδας όπως φαίνεται στην παρακάτω Το ίδιο κάνουμε και στο επόμενο Frame. Πατάμε στο κουμπί New Page και έπειτα ορίζουμε το background χρησιμοποιώντας το μενού Format και επιλέγουμε την εντολή background και το πρόγραμμα εμφανίζει ένα παράθυρο στο οποίο εμείς βάζουμε μπλε χρώμα και πατάμε ok. 46