Comments
Description
Transcript
Α Σ Ε Ι
ΑΝΩΣΑΣΟ ΣΕΦΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΤΣΙΚΟ ΙΔΡΤΜΑ ΚΡΗΣΗ ΦΟΛΗ ΣΕΦΝΟΛΟΓΙΚΩΝ ΕΥΑΡΜΟΓΩΝ ΣΜΗΜΑ ΕΥΑΡΜΟΜΕΝΗ ΠΛΗΡΟΥΟΡΙΚΗ ΚΑΙ ΠΟΛΤΜΕΩΝ Πτυχιακή Εργασία «ύστημα διαχείρισης για την υποστήριξη της υπηρεσίας Dial-Up» πουδαστής: Θεοδώρου Ιωάννης Α.Μ. 739 Καθηγητής: Βασιλάκης Κώστας Ηράκλειο 2009 1 Ευχαριστίες Επιτέλους έφτασα στο τέλος της φοιτητικής μου ζωής. Όλα αυτά τα όμορφα και δημιουργικά χρόνια τελείωσαν και θα ήταν μεγάλη παράληψη να μην ευχαριστήσω κάποιους ανθρώπους που με στήριξαν και με βοήθησαν ώστε να φτάσω σε αυτό το στόχο. Πάνω απ’ όλα θέλω να ευχαριστήσω τους γονείς μου που με θυσίες και μόχθο με συντηρούσαν τόσα χρόνια και επένδυσαν πάνω μου ώστε να γίνω καλύτερος άνθρωπος και σημαντικός για την κοινωνία. Επίσης πρέπει να ευχαριστήσω τους καθηγητές μου που όλα αυτά τα χρόνια προσπάθησαν να κάνουν το καλύτερο για μένα και να με καθοδηγήσουν σε νέους ορίζοντες γνώσης. Θέλω να ευχαριστήσω όλους αυτούς που βοήθησαν για την υλοποίηση αυτής της εργασίας. Η συνεισφορά τους ήταν σημαντική τόσο σε εργασία όσο και σε ψυχολογική υποστήριξη κατανόηση. Σέλος ευχαριστούμε τα μέλη της εξεταστικής επιτροπής κ. Βασιλάκη , τον κ.Μαλάμο και τον κ.Κότσαλη , που μας έκαναν την τιμή να αξιολογήσουν την προσπάθειά μας. ας Ευχαριστώ Γιάννης 2 Πεξηερόκελα Μέρος 1 ο ο Κεφάλαιο 1 Σρεδηαζκόο Ιζηνζειίδαο 1.1 Όηαλ ε εκθάληζε ζπγθξνύεηαη κε ηελ επρξεζηία 1.2 Ο ξόινο ηεο εκθάληζεο θαη ηεο επρξεζηίαο ζε έλα δηθηπαθό ηόπν ο Κεφάλαιο 2 Σπζηήκαηα Γηαρείξηζεο Πεξηερνκέλνπ 2.1 Σύζηεκα Γηαρείξηζεο Πεξηερνκέλνπ CMS 2.2 Οξηζκόο ηνπ Web-CMS 2.3 Γεκηνπξγία κίαο ζειίδαο ηελ δεθαεηία ηνπ ΄90,ζήκεξα θαη κε CMS 2.4 Γηαηί ρξεηαδόκαζηε έλα CMS; 2.5 Γπλαηόηεηεο θαη ραξαθηεξηζηηθά ελόο CMS 2.6 Γηαζέζηκα CMS 2.7 Κιεηζηνύ θώδηθα CMS 2.8 Αλνηρηνύ θώδηθα CMS 2.9 Αλαζθόπεζε ο Κεφάλαιο 3 Γιώζζεο Καη Πξνγξάκκαηα Πνπ Φξεζηκνπνηήζεθαλ 3.1 HTTP 3.2 Πσο ιεηηνπξγνύλ νη δηαθνκηζηέο Web 3.3 Apache θαη ην Κίλεκα Αλνηρηνύ Κώδηθα (Open Source) 3.4 Λίγα ιόγηα γηα ην Joomla 3.5 Γιώζζεο Πξνγξακκαηηζκνύ ζην Internet 3.6 Javascript 3.7 PHP 3.8 MySQL 3.9 Αλαζθόπεζε ο Κεφάλαιο 4 Υπεξεζία θαηαιόγνπ LDAP 4.1 Τη είλαη ην LDAP 4.2 LDAP από ηερληθή ζθνπηά 4.3 Κξίζε-Σύγθξηζε-Δθαξκνγέο ο Κεφάλαιο 5 Joomla! 5.1 Joomla! Γεληθά 5.2 Δγθαηάζηαζε Joomla 5.3 Παξνπζίαζε ησλ ζηνηρείσλ ηεο ζειίδαο καο 5.4 Expose Flash Gallery 5.5 Δγθαηάζηαζε Forum 3 Μέρος 2 ο Κεφάλαιο 6 Γεκηνπξγία Ιζηόηνπνπ ο 6.1 Απαηηήζεηο ηνπ Σπζηήκαηνο 6.2 Αξρηηεθηνληθή ηεο βάζεο 6.3 Administrator Control Panel 6.4 Σρεδίαζε ηνπ site 6.5 Σύλδεζε Ldap server κε ην Σύζηεκα ο Κεφάλαιο 7 Σπληήξεζε 7.1 Backup θαη Restore 7.2 Μεηαθνξά site ζε άιιν server Δπηγξακκαηηθά Σπκπεξάζκαηα Βηβιηνγξαθία 4 ο Μέρος 1 Κεθάιαην 1 ν χεδιασμός Ιστοσελίδας 5 1.1 Σρεδηαζκόο Ιζηνζειίδσλ: Όηαλ ε Δκθάληζε Σπγθξνύεηαη κε ηελ Δπρξεζηία Η ρξήζε ηνπ Γηαδηθηύνπ από ηηο επηρεηξήζεηο ηεο ρώξαο καο νινέλα απμάλεηαη. Οη δηθηπαθνί ηόπνη ρξεζηκνπνηνύληαη πιένλ ηόζν σο κέζν πξνβνιήο ησλ επηρεηξήζεσλ όζν θαη σο βάζε γηα ειεθηξνληθέο ζπλαιιαγέο κε πειάηεο ή/θαη κε άιιεο επηρεηξήζεηο. Ωζηόζν, παξόιν πνπ ν αξηζκόο ησλ ηζηνζειίδσλ δηαξθώο κεγαιώλεη, ε πνηόηεηα θαηαζθεπήο ηνπο ζε όηη αθνξά ηελ θαιαηζζεζία θαη ηελ επρξεζηία δελ έρεη θζάζεη αθόκα ζην επηζπκεηό επίπεδν.” Μέζα από ηελ πινήγεζε ζε sites επηρεηξήζεσλ, κπνξεί εύθνια θαλείο λα παξαηεξήζεη ζειίδεο κε θαλελόο είδνπο γξαθηζηηθή επηκέιεηα ή κε ππεξβνιηθά πνιιά γξαθηθά θαη εηθόλεο, ζειίδεο πνπ δελ παξέρνπλ παξά ειάρηζηε πιεξνθόξεζε ζην ρξήζηε ή πνπ απιώο απσζνύλ ην ρξήζηε θαη ηνλ πείζνπλ λα κελ μαλά επηζθεθζεί ην δηθηπαθό ηόπν. Έλαο από ηνπο βαζηθνύο ιόγνπο ηνπ θαηλόκελνπ είλαη ε έιιεηςε ζσζηήο θηινζνθίαο αιιά θαη ζρεδηαζκνύ θαηά ηε δηάξθεηα δεκηνπξγίαο εηαηξηθώλ ηζηνζειίδσλ. Η θηινζνθία αθνξά ζηηο θαηεπζπληήξηεο γξακκέο βάζεη ησλ νπνίσλ δνκνύληαη νη ηζηνζειίδεο. Έλαο δηθηπαθόο ηόπνο πξέπεη λα απαληά ζε κεξηθά απιά αιιά βαζηθά εξσηήκαηα: ζε πνηνπο απεπζύλεηαη, πνηνο ν ζθνπόο ηεο παξνπζίαζεο, ζε ηη πξνζδνθά ε επηρείξεζε από ηε ρξήζε ηνπ Internet. Ο ζρεδηαζκόο αθνξά ζηα ηερληθά ραξαθηεξηζηηθά πνπ πξνδηαγξάθνπλ ην δηθηπαθό ηόπν, όπσο ν ηξόπνο παξνπζίαζεο θαη εκθάληζεο ηεο πιεξνθνξίαο, ε ηαρύηεηα πξόζβαζεο, ην κέγεζνο ηεο παξνπζίαζεο θ.ιπ. 1.2 Ο ξόινο ηεο εκθάληζεο θαη ηεο επρξεζηίαο ζε έλα δηθηπαθό ηόπν Υπάξρνπλ δύν βαζηθνί ηξόπνη πξνζέγγηζεο ηνπ ζρεδηαζκνύ κηαο ηζηνζειίδαο, ε γξαθηζηηθή κέζνδνο θαη ε κέζνδνο ηερληθήο πξνζέγγηζεο. Σηε γξαθηζηηθή κέζνδν ζρεδηαζκνύ, ν ζρεδηαζηήο- γξαθίζηαο δίλεη ην βάξνο ηεο ζρεδίαζεο ζηελ θαιαηζζεζία, ζηελ ςπρνινγία ηνπ ρξήζηε θαη ζηνλ εληππσζηαζκό κέζσ νπηηθναθνπζηηθώλ εθέ. Η ηερληθή πξνζέγγηζε ηνπ ζρεδηαζκνύ ιακβάλεη ππόςε θαλόλεο θαη ηερληθνύο πεξηνξηζκνύο, πνπ νδεγνύλ ζηε ζρεδίαζε ελόο εύρξεζηνπ πεξηβάιινληνο επηθνηλσλίαο κε ηνλ επηζθέπηε, γεγνλόο πνπ θαζηζηά ηελ πινήγεζε επθνιόηεξε. Μνινλόηη ε θαιαηζζεζία απνηειεί θύξην ραξαθηεξηζηηθό ζηε δεκηνπξγία πνιιώλ web sites, ζηελ επηρεηξεκαηηθή θνηλόηεηα ν ζηόρνο ηεο εηαηξηθήο παξνπζίαζεο ζην Γηαδίθηπν εζηηάδεηαη ζπλήζσο (εθηόο από ηελ απιή δηαθήκηζε) ζηελ ελεκέξσζε ησλ ρξεζηώλ θαη ζηηο ειεθηξνληθέο ζπλαιιαγέο κεηαμύ εηαηξηώλ θαη πειαηώλ ή ησλ εηαηξηώλ κεηαμύ ηνπο. 6 Δδώ, νη ρξήζηεο δηαθέξνπλ αξθεηά από ηνπο πειάηεο πνπ επηζθέπηνληαη έλα "θπζηθό" θαηάζηεκα. Η αλαδήηεζε ζπγθεθξηκέλεο πιεξνθνξίαο ζην Internet ζα πξέπεη λα νινθιεξώλεηαη όζν ην δπλαηόλ γξεγνξόηεξα θαη κε ηνλ ιηγόηεξν δπλαηό θόπν. Όηαλ ν ρξήζηεο δελ γλσξίδεη ηη αθξηβώο ςάρλεη, ηόηε ε πινήγεζε ζα πξέπεη λα ηνπ δίλεη ηε δπλαηόηεηα λα αλαθαιύςεη θάηη πνπ ζα ηνπ θεληξίζεη ην ελδηαθέξνλ όζν ην δπλαηόλ γξεγνξόηεξα. Αλ ν δηθηπαθόο ηόπνο απνηύρεη ζε απηόλ ην ζηόρν, ν επηζθέπηεο ζα ράζεη γξήγνξα ην ελδηαθέξνλ ηνπ θαη ζα θηλεζεί ζε άιιεο ειεθηξνληθέο πεγέο πιεξνθόξεζεο κε αληίζηνηρν πεξηερόκελν γηα λα βξεη απηό πνπ ςάρλεη. Καηά ζπλέπεηα, ζα πξέπεη λα δίλεηαη ηδηαίηεξε έκθαζε ηόζν ζηελ εμππεξέηεζε ησλ αλαγθώλ ησλ ρξεζηώλ, κε ηνλ θαιύηεξν δπλαηό ηξόπν, όζν θαη ζηνλ εκπινπηηζκό κε εηθαζηηθέο-γξαθηζηηθέο απεηθνλίζεηο. 7 Κεφάλαιο 2 ο υστήματα Διαχείρισης Περιεχομένου (CMS) 8 2.1 Σύζηεκα Γηαρείξηζεο Πεξηερνκέλνπ CMS Σύζηεκα Γηαρείξηζεο Πεξηερνκέλνπ (Content Management System) είλαη έλα ζύζηεκα πνπ δηαρεηξίδεηαη ηα ηθαλνπνηεκέλα ζπζηαηηθά ελόο web site.Υπάξρνπλ πνιινί νξηζκνί γηα ην ζύζηεκα απηό πνπ ζα καο δώζεη λα θαηαιάβνπκε ηη αθξηβώο ζεκαίλεη. Μεξηθνί νξηζκνί είλαη νη εμήο : Έλα CMS ππνζηεξίδεη ηελ δεκηνπξγία, δηαρείξηζε, δηάζεζε, έθδνζε θαη αλαθάιπςε εηαηξηθώλ πιεξνθνξηώλ. Λνγηζκηθό ην νπνίν ρξεζηκνπνηείηαη γηα ηελ νξγάλσζε θαη εμππεξέηεζε ζπλεξγαηηθήο δεκηνπξγίαο εγγξάθσλ θαη άιινπ ηύπνπ πεξηερνκέλσλ. Λνγηζκηθό ην νπνίν ρξεζηκνπνηείηαη γηα ηελ δεκηνπξγία ηεο ππνδνκήο πάλσ ζηελ νπνία ζα ζηεζεί έλαο δπλακηθόο δηθηπαθόο ηόπνο. Έλα παθέην ινγηζκηθνύ ζρεδηαζκέλν γηα ηελ δηαρείξηζε ελόο ηζηνηόπνπ. Γηαρεηξίδεηαη νιόθιεξν ηνλ θύθιν δσήο κίαο ζειίδαο από ηελ δεκηνπξγία ηεο κέρξη ηελ αξρεηνζέηεζε ηεο. Γεκνθηιήο ιύζε γηα ηελ δεκηνπξγία custom portals. 2.2 Οξηζκόο ηνπ Web-CMS Η Γηαρείξηζε Πεξηερνκέλνπ Ιζηνύ (WCM) πεξηιακβάλεη ηηο ιεηηνπξγίεο εθείλεο νη νπνίεο εκπιέθνληαη ζηε δεκηνπξγία θαη δηάζεζε ςεθηαθνύ πεξηερνκέλνπ ζε πξόζσπα όπσο πειάηεο, πξνκεζεπηέο, ζπλεξγάηεο θαη πξνζσπηθό ηα νπνία πξνζπειαύλνπλ πεξηερόκελα ηνπ ηζηνύ κέζν internet. Έλα Σύζηεκα Γηαρείξηζε Πεξηερνκέλνπ Ιζηνύ (WCMS) απνηειείηαη από ηα εξγαιεία ινγηζκηθνύ ηα νπνία ρξεζηκνπνηνύληαη γηα λα παξέρνπλ απηνκαηνπνηεκέλε ππνζηήξημε ζε δξαζηεξηόηεηεο WCM. 9 2.3 Γεκηνπξγία κίαο ζειίδαο ηελ δεθαεηία ηνπ ’90,ζήκεξα θαη κε cms Τελ δεθαεηία ηνπ ’90 γηα λα δεκηνπξγήζνπκε ηελ ζειίδα ζηα δεμηά, έπξεπε λα μέξνπκε πώο λα γξάςνπκε ηνλ θώδηθα ζηα αξηζηεξά. Σήκεξα ε κνξθνπνίεζε (design) δηαρσξίδεηαη από ηελ HTML ζε έλα CSS αξρείν, αιιά αθόκε απαηηείηαη ε γλώζε γξαθήο ηνπ θώδηθα ζηα αξηζηεξά γηα λα δεκηνπξγεζεί ε ζειίδα ζηα δεμηά. 10 Με έλα CMS απηό πνπ ρξεηάδεηαη λα μέξεη θάπνηνο ζήκεξα είλαη πώο λα γξάςεη ην θόθθηλν θείκελν ζηα αξηζηεξά γηα λα δεκηνπξγήζεη ηε ζειίδα ζηα δεμηά. 2.4 Γηαηί ρξεηαδόκαζηε έλα CMS; Έλα CMS ρξεηαδόκαζηε γηα ηνπο εμήο 4 ιόγνπο : 1. Έρνπκε απνδνηηθή νξγάλσζε ηεο εηαηξηθήο πιεξνθνξίαο. 2. Γίλεηαη δηακνηξαζκόο πεξηερνκέλνπ ηόζν ελδνεηαηξηθά (intranet) όζν θαη ζην internet. 3. Έρνπκε επέιηθηε ιύζε αξρεηνζέηεζεο. 4. Υπάξρεη δηεπθόιπλζε ζηε δεκηνπξγία ζπλεξγαηηθώλ (collaborative) δηθηπαθώλ ηόπσλ. 11 2.5 Γπλαηόηεηεο θαη ραξαθηεξηζηηθά ελόο CMS Όπσο κπνξνύκε λα δηαπηζηώζνπκε από όια ηα παξαπάλσ ην Σύζηεκα Γηαρείξηζεο Πεξηερνκέλνπ παξέρεη ζηνλ θάζε ρξήζηε πνιιέο δπλαηόηεηεο . Παξέρεη ηελ δπλαηόηεηα ηεο δηαρείξηζεο-ζπληήξεζεο ελόο ηζηόηνπνπ από απινύο ρεηξηζηέο ρσξίο ηελ απαίηεζε γηα εκπινθή εηδηθνύ ηερληθνύ πξνζσπηθνύ. Δίλαη κηα δπλαηόηεηα πνιύ ζεκαληηθή ώζηε λα θάλεη αλζξώπνπο λα αζρνιεζνύλ κε ηελ θαηαζθεπή έζησ θαη κίαο πξνζσπηθήο ηνπο ηζηνζειίδαο θαη λα κελ ρξεηαζηεί θάπνηνλ εηδηθό. Αθόκα παξέρεη ηελ επθαηξία ν δηαρεηξηζηήο ηνπ λα επηθεληξσζεί ζην πεξηερόκελν θαη όρη ζηελ ηερλνινγία. Απηνκαηνπνηεί ηεο εξγαζίεο ξνπηίλαο πρ. εθαξκόδεη ηελ ίδηα κνξθνπνίεζε (layout) ζε όιεο ηηο ηζηνζειίδεο. Οη επηινγέο (menus) θαη γεληθόηεξα ε πινήγεζε αλαπαξάγεηαη επίζεο απηόκαηα. Παξέρεη απιά εξγαιεία γηα ηελ δεκηνπξγία ηνπ πεξηερνκέλνπ θαζώο θαη ηελ δπλαηόηεηα δηαρείξηζεο ηεο δνκήο ηνπ ηζηόηνπνπ, ηεο εκθάληζεο ησλ δεκνζηεπκέλσλ ζειίδσλ θαζώο θαη ηεο πινήγεζεο ζε απηέο. Οη αιιαγέο κπνξνύλ λα γίλνπλ νπνηαδήπνηε ώξα απαηηεζνύλ, εκέξα ή λύρηα. Απηό είλαη πνιύ ζεκαληηθό πιενλέθηεκα γηαηί ε επηρείξεζε κπνξεί λα βαζίδεηαη ζηελ ηζηνζειίδα σο έλα ζεκαληηθό δίαπιν επηθνηλσλίαο κε ηνπο πειάηεο ηεο. Αθόκα όιεο ηηο ηερληθέο ιεπηνκέξεηεο ηηο ρεηξίδεηαη ην ίδην ην ζύζηεκα, επηηξέπνληαο έηζη νπνηνλδήπνηε λα δηαρεηξηζηεί θαη λα ελεκεξώλεη ηνλ ηζηόηνπν. Τέινο νη εξγαζίεο κπνξνύλ λα γίλνληαη από πνιινύο θαη δηαθνξεηηθνύο κεηαμύ ηνπ πξνζσπηθνύ ηεο επηρείξεζεο θαη όρη κόλν από θάπνηνλ θαηαξηηζκέλν ηερληθό. Τν ζύζηεκα ζα ¨επηηεξεί¨ πνηνο θάλεη ηη, απνθεύγνληαο έηζη πηζαλέο κε επηζπκεηέο θαηαζηάζεηο ιάζνπο. Όια ηα άιια δπλακηθά ραξαθηεξηζηηθά ηνπ ζπζηήκαηνο επηηξέπνπλ ζηνλ ηζηόηνπν λα αλαπηύζζεηαη ζπγρξόλσο κε ηελ επηρείξεζε ζαο. Δπηηαρύλεη ηελ δηαδηθαζία αιιαγώλ θαη δεκηνπξγίαο λέσλ ζειίδσλ, ππάξρεη κεγαιύηεξε νκνηνκνξθία θαη ζπλνρή, ην ζύζηεκα πινήγεζεο είλαη πεξηζζόηεξν βειηησκέλν, ππάξρεη επειημία, θάλεη ρξήζε ηεο κείσζεο ησλ επαλαιήςεσλ ησλ ίδησλ πιεξνθνξηώλ θαη ηα έμνδα ζπληήξεζεοδηαρείξηζεο κεηώλνληαη. Πάλσ από όια …ππνζηήξημε ησλ επηρεηξεκαηηθώλ ζηόρσλ θαη ζηξαηεγηθώλ π.ρ. έλα CMS κπνξεί λα βνεζήζεη ζηε βειηίσζε-αύμεζε ησλ πσιήζεσλ, ζηελ αύμεζε ηεο ηθαλνπνίεζεο ηνπ πειάηε ή ζην λα βνεζήζεη ζηελ επηθνηλσλία κε ην θνηλό. . 2.6 Γηαζέζηκα CMS Τα δηαζέζηκα CMS πνπ ππάξρνπλ ζήκεξα είλαη δπν εηδώλ. Υπάξρνπλ ηα θιεηζηνύ θώδηθα CMS θαη ηα αλνηρηνύ θώδηθα. Σηελ ζπλέρεηα ζα αλαθεξζνύκε ζε απηά ηα δύν είδε. Γηα ηελ πινπνίεζε απηήο ηεο εξγαζίαο ζα ρξεζηκνπνηήζνπκε CMS αλνηρηνύ θώδηθα. Η εμήγεζε ζα δνζεί ζε παξαθάησ ελόηεηα. 12 2.7 Κιεηζηνύ θώδηθα CMS Τα θιεηζηνύ θώδηθα ζπζηήκαηα δηαρείξηζεο πεξηερνκέλνπ δελ ζα καο απαζρνιήζνπλ γηα ηελ πινπνίεζε ηεο εξγαζίαο. Παξόια απηά κπνξνύκε λα θάλνπκε κηα αλαθνξά γη’απηά. Γηα ηα θιεηζηνύ θώδηθα CMS ππάξρνπλ θαη πιενλεθηήκαηα αιιά θαη κεηνλεθηήκαηα. Σηα πιενλεθηήκαηα ζπγθαηαιέγνληαη ε εκπνξηθή ππνζηήξημε πνπ είλαη ζαθώο πξνζδηνξηζκέλε, ζπλήζσο είλαη εηνηκνπαξάδνην, ππάξρεη θαιύηεξε ηεθκεξίσζε θαη εθπαίδεπζε θαη ηέινο ππάξρεη κεγάιε αζθάιεηα ζην ζύζηεκα καο. Αληίζεηα ζηα κεηνλεθηήκαηα ηνπ θιεηζηνύ θώδηθα κπνξνύκε λα θάλνπκε αλαθνξά ζην θόζηνο ην νπνίν κπνξεί λα είλαη θαη πνιύ κεγάιν πνιιέο θνξέο. Απηό ην θόζηνο κπνξνύκε λα ην δηαρσξίζνπκε ζην βαζηθό, ζην θόζηνο παξακεηξνπνίεζεο θαη ζην θόζηνο νινθιήξσζεο κε ηα ππάξρνληα εηαηξηθά ζπζηήκαηα. Γεκνθηιή CMS θιεηζηνύ θώδηθα είλαη ηα εμήο : 1. Vignette Content Management 2. IBM Workplace Web Content Management 3. Jalios JCMS 4. Powerfront CMS 2.8 Αλνηρηνύ θώδηθα CMS Τελ ζεκαζία ηεο ιέμεο αλνηρηνύ θώδηθα κπνξνύκε λα ηελ θαηαλνήζνπκε θάλνληαο αλαθνξά ζηηο εθαξκνγέο. Οη εθαξκνγέο αλνηρηνύ θώδηθα επηηξέπνπλ ηελ πξόζβαζε θαη ηελ αιιαγή ηνπ πεγαίνπ θώδηθα. Σπρλά ηεο θαηεβάδνπκε ρσξίο θάπνην θόζηνο ην νπνίν είλαη έλα πνιύ βαζηθό πξνηέξεκα. Τππηθά απαηηνύλ ηνπιάρηζηνλ θάπνηεο ηερληθέο γλώζεηο γηα λα ζηεζνύλ θαη λα ιεηηνπξγήζνπλ. Υπνζηεξίδνληαη από κηα θνηλόηεηα ρξεζηώλ θαη πξνγξακκαηηζηώλ θαη ηέινο ζπρλά, ζπλνδεύνληαη από αξθεηά ¨plug-ins¨ ηα νπνία δεκηνπξγεί θαη πξνζθέξεη ε θνηλόηεηα. Αληίζεηα ζηα κεηνλεθηήκαηα κπνξνύκε λα θάλνπκε αλαθνξά ζε δπν. Πξώηνλ όηη εζηηάδεηαη πεξηζζόηεξν ζηελ ηερληθή αξρηηεθηνληθή θαη ζύλνιν ραξαθηεξηζηηθώλ παξά ζηελ εκπεηξία ηνπ ρξήζηε θαη δεύηεξν ην όηη ππάξρεη έιιεηςε εκπνξηθήο ππνζηήξημεο. Γεκνθηιή CMS αλνηρηνύ θώδηθα είλαη : 1. To Joomla ην νπνίν ζα θάλνπκε ρξήζε γηα ηελ πινπνίεζε ηεο δηαρείξηζεο καο 2. Drupal 3. Plone 4. Typo3 5. XoopS 13 2.9 Αλαζθόπεζε Αο ζπλνςίζνπκε ηώξα ηα παξαπάλσ. Ο όξνο Content Managementt Systems (CMS, Σπζηήκαηα Γηαρείξηζεο Πεξηερνκέλνπ) αλαθέξεηαη ζηηο εθαξκνγέο πνπ επηηξέπνπλ ζηνλ πειάηε λα δηαρεηξίδεηαη ην δηθηπαθό ηνπ πεξηερόκελν, όπσο θείκελα, εηθόλεο, πίλαθεο θ.ιπ., κε εύθνιν ηξόπν, ζπλήζσο παξόκνην κε απηόλ ηεο ρξήζεο ελόο θεηκελνγξάθνπ. Οη εθαξκνγέο δηαρείξηζεο πεξηερνκέλνπ επηηξέπνπλ ηελ αιιαγή ηνπ πεξηερόκελνπ ρσξίο λα είλαη απαξαίηεηεο εηδηθέο γλώζεηο ζρεηηθέο κε ηε δεκηνπξγία ηζηνζειίδσλ ή γξαθηθώλ. Οη αιιαγέο ηνπ site κπνξνύλ λα γίλνπλ από νπνηνλδήπνηε ππνινγηζηή πνπ είλαη ζπλδεκέλνο ζην Γηαδίθηπν, ρσξίο λα ρξεηάδεηαη λα έρεη εγθαηεζηεκέλα εηδηθά πξνγξάκκαηα επεμεξγαζίαο ηζηνζειίδσλ, γξαθηθώλ θ.ιπ. Μέζσ ελόο απινύ θπιινκεηξεηή ηζηνζειίδσλ (browser), ν ρξήζηεο κπνξεί λα ζπληάμεη έλα θείκελν θαη λα ελεκεξώζεη άκεζα ην δηθηπαθό ηνπ ηόπν. Σπλήζσο δπζθνιεύνληαη λα απνθαζίζνπλ ηη “ρξεηάδεηαη”, ώζηε λα δεκηνπξγήζνπλ έλα site, ην νπνίν ζα αλαλεώλεηαη ζπλερώο πξνθεηκέλνπ λα παξέρεη αμηόπηζηε ελεκέξσζε πξνο ηνπο επηζθέπηεο ηνπ. Ο πην παξεμεγεκέλνο παξάγνληαο απόθαζεο εζηηάδεηαη ζηελ επηινγή κεηαμύ ελόο δπλακηθνύ site πνπ πεξηέρεη βάζε δεδνκέλσλ γηα ηελ ζπλερή ελεκέξσζε θαη ελόο ζηαηηθνύ site πνπ πεξηέρεη απιέο ηζηνζειίδεο (ζηελ νπζία κία ζπιινγή πιεξνθνξηώλ). Τν πεξηερόκελν ηνπ site ηεο εηαηξείαο ζαο ρσξίδεηαη ζε δύν νκάδεο. Σηελ νκάδα ηεο νπνίαο νη ζειίδεο είλαη ζηαηηθέο (ζηαζεξέο) θαη ζηελ νκάδα ηεο νπνίαο νη ζειίδεο ζα είλαη δπλακηθέο. • Σηαηηθέο ζειίδεο είλαη απηέο πνπ ην πεξηερόκελν ηνπο δελ ζα κεηαβάιιεηαη ελώ γηα λα γίλεη απηό ζα απαηηείηαη λέα παξέκβαζε από ηελ εηαηξεία πνπ ζαο έρεη θαηαζθεπάζεη ην site. • Γπλακηθέο ζειίδεο είλαη απηέο πνπ ην πεξηερόκελν ηνπο ζα ελεκεξώλεηαη κε βάζεη επηινγέο ή αλαδεηήζεηο από βάζε δεδνκέλσλ κε ηελ νπνία ζα είλαη ζπλδεδεκέλεο νη ζειίδεο. Σηηο Γπλακηθέο ζειίδεο ππάξρεη έλα βαζηθό ζηήζηκν ρσξίο λα ραζεί ην ύθνο ή λα είλαη δηαθνξεηηθέο από ηηο Σηαηηθέο ζειίδεο αιιά ηα δεδνκέλα πνπ ζα πξνβάιινληαη ζα είλαη αλάινγα κε ηελ ελόηεηα δεδνκέλσλ 14 . Απηό πνπ απνθαινύκε πνιιέο θνξέο «δπλακηθό πεξηερόκελν» ζε έλα web site δελ είλαη άιιν παξά νη πιεξνθνξίεο πνπ παξνπζηάδνληαη ζην site θαη κπνξνύλ λα αιιάμνπλ από ηνπο ίδηνπο ηνπο δηαρεηξηζηέο ηνπ κέζσ θάπνηαο δηαρεηξηζηηθήο εθαξκνγήο πνπ νπζηαζηηθά κπνξεί λα εηζάγεη (πξνζζέηεη), δηνξζώλεη θαη λα δηαγξάθεη εγγξαθέο ζε πίλαθεο βάζεσλ δεδνκέλσλ όπνπ ηηο πεξηζζόηεξεο θνξέο θαηαρσξνύληαη όιεο απηέο νη πιεξνθνξίεο. Απηό ζεκαίλεη πσο δελ ρξεηάδεηαη γηα ηελ παξνπζίαζε ησλ πιεξνθνξηώλ καο ζην site καο, λα δεκηνπξγνύκε πνιιέο μερσξηζηέο ηζηνζειίδεο, αιιά ρξεζηκνπνηνύκε έλαλ εληαίν ζρεδηαζκό θαη ζηα ζεκεία όπνπ ζέινπκε λα εκθαλίδεηαη ην πεξηερόκελν καο, ππάξρεη ν ζρεηηθόο θώδηθαο πνπ έρνπλ γξάςεη νη πξνγξακκαηηζηέο γηα θάπνηα ζπγθεθξηκέλε γιώζζα πξνγξακκαηηζκνύ (ASP, PHP, Coldfusion, Perl, CGI θιπ) ν νπνίνο αλαιακβάλεη λα εκθαλίζεη ηηο ζσζηέο πιεξνθνξίεο ζηηο ζσζηέο ζέζεηο. Η ιεηηνπξγηθόηεηα ελόο ζπζηήκαηνο δηαρείξηζεο πεξηερνκέλνπ, κπνξεί λα αλαιπζεί ζηηο εμήο βαζηθέο θαηεγνξίεο: • δεκηνπξγία πεξηερνκέλνπ • δηαρείξηζε πεξηερνκέλνπ • δεκνζίεπζε • παξνπζίαζε Τέινο αλαθεξζήθακε ζηα CMS αλνηρηνύ θώδηθα θαη θιεηζηνύ θώδηθα. Γηα ηελ πινπνίεζε ηεο δηαρείξηζεο γηα ηελ ππνζηήξημε ηεο ππεξεζίαο Dial-Up ζα ρξεζηκνπνηήζνπκε αλνηρηνύ θώδηθα θαη ζπγθεθξηκέλα ζα θάλνπκε ρξήζε ηνπ Joomla Δίλαη έλα πξόγξακκα ην νπνίν είλαη δσξεάλ , εύρξεζην γηα νπνηνλδήπνηε ρξήζηε θαη ηέινο ππνζηεξίδεηαη από κηα θνηλόηεηα πξνγξακκαηηζηώλ ε νπνία έρεη κεγάιε εμέιημε. . 15 Κεθάιαην 3ν Γλώσσες Και Προγράμματα Που Φρησιμοποιήθηκαν 16 3.1 HTTP Υπάξρνπλ δύν πιεπξέο ζην πξσηόθνιιν HTTP. Η πξώηε είλαη ην ζύλνιν ησλ κελπκάησλ πνπ απνζηέιινληαη από ηνλ πειάηε πνπ ηξέρεη ηνλ browser θαη ε δεύηεξε είλαη ην ζύλνιν ησλ απαληήζεσλ ηνπ δηαθνκηζηή. Θα εμεηάζσ πξώηα ην πξώην ζύλνιν κελπκάησλ. Τν πην θνηλό παξάδεηγκα κελύκαηνο από ηελ πιεπξά ηνπ πειάηε είλαη ην κήλπκα / αίηεκα GET. Απηό πνπ θάλεη είλαη απιά λα δεηήζεη από ηνλ δηαθνκηζηή θάπνην αξρείν ή άιιν πόξν. Παξαθάησ δίλεηαη έλα ζπγθεθξηκέλν παξάδεηγκα: GET /index.html HTTP/1.1 User-Agent: Lynx/2.4 Connection: Keep-Alive Host: www.openaccess.com Accept: text/html Η πξώηε γξακκή δηεπθξηλίδεη όηη ν browser ζέιεη λα αλαθηήζεη ην αξρείν index.html θαη όηη απηήλ ηελ ζηηγκή ρξεζηκνπνηεί ηελ έθδνζε 1.1 ηνπ πξσηνθόιινπ HTTP. Η επόκελε γξακκή δειώλεη όηη ν ρξήζηεο ηξέρεη ηελ έθδνζε 2.4 ηνπ Lynx browser. Η επόκελε ζεηξά δειώλεη όηη ν browser επηζπκεί ηελ δηαηήξεζε ηεο ζύλδεζεο κε ηνλ Web browser, γηα παξάδεηγκα γηα λα θαηεβάζεη εηθόλεο πνπ πεξηέρνληαη ζε κία ζειίδα πνπ δεηείηαη. Η επόκελε ζεηξά πξνζδηνξίδεη ηνλ ππνινγηζηή ζηνλ νπνίν βξίζθεηαη απνζεθεπκέλν ην αξρείν . Τέινο, ε ηειεπηαία γξακκή ελεκεξώλεη ηνλ δηαθνκηζηή Web όηη γηα ηελ αίηεζε απηή απνδέρεηαη κόλν αξρεία θεηκέλνπ πνπ πεξηέρνπλ θώδηθα HTML. Όηαλ ην αίηεκα πεξηιακβάλεη ηελ επεμεξγαζία κίαο θόξκαο ηα δεδνκέλα πνπ κεηαθέξνληαη από ηελ θόξκα ζ' αθνινπζήζνπλ ηελ ηειεπηαία από ηηο ζεηξέο ηεο θεθαιίδαο. Η πξώηε ζεηξά είλαη γλσζηή σο ζεηξά αηηήκαηνο θαη νη αθόινπζεο σο ζεηξέο θεθαιίδαο. Κάζε ζεηξά θεθαιίδαο απνηειείηαη από κηα ιέμε θιεηδί αθνινπζνύκελε από άλσ θαη θάησ ηειεία θαη έλα όξηζκα, πνπ αληηζηνηρεί ζηελ ηηκή ηεο ιέμεο θιεηδί. Όηαλ ν δηαθνκηζηήο παξαιακβάλεη ην κήλπκα, αληαπνθξίλεηαη ζ' απηό πνπ δήηεζε ν browser. Έηζη, γηα παξάδεηγκα, αλ ην αίηεκα αθνξνύζε έλα αξρείν HTML ην νπνίν ππάξρεη ζηα αξρεία ελόο δηαθνκηζηή Web ηόηε ε απάληεζε ζα ήηαλ ε αθόινπζε: HTTP/1.1 200 OK Date: Thu, 22 July 1998 18:40:55 GMT Server: Apache 1.3.5 (Unix) PHP/3.0.6 Last-Modified: Mon, 19 July 1997 16:03:22 GMT Content-Type: text/html Content-Length: 12987 Η απάληεζε απνηειείηαη από ηξία κέξε. Τν πξώην κέξνο είλαη ε πξώηε ζεηξά πνπ δειώλεη όηη ν δηαθνκηζηήο ρξεζηκνπνηεί ηελ έθδνζε 1.1 ηνπ πξσηνθόιινπ HTTP θαη όηη ην αίηεκα ηνπ browser δελ πξνθάιεζε θάπνην ιάζνο (ην 200 αληηπξνζσπεύεη έλαλ θώδηθα θαηάζηαζεο πνπ δειώλεη αθξηβώο απηό). Απηό νλνκάδεηαη γξακκή θαηάζηαζεο. Η επόκελε νκάδα ζεηξώλ είλαη γλσζηή σο πιεξνθνξίεο θεθαιίδαο. Έρεη ηελ ίδηα κνξθή κε ηηο πιεξνθνξίεο θεθαιίδαο πνπ εληνπίδνληαη ζην αίηεκα ελόο πειάηε. Η πξώηε γξακκή πξνζδηνξίδεη ηνλ ρξόλν επεμεξγαζίαο ηνπ αηηήκαηνο, ε επόκελε ζεηξά ηνλ 17 δηαθνκηζηή (Apache) πνπ αληαπνθξίλεηαη ζην αίηεκα, ε ακέζσο επόκελε δηεπθξηλίδεη ην πόηε ελεκεξώζεθε γηα ηειεπηαία θνξά ν πόξνο, ε πξνηειεπηαία δηεπθξηλίδεη όηη ην αξρείν είλαη έλα αξρείν θεηκέλνπ πνπ πεξηέρεη θώδηθα HTML (απηό είλαη γλσζηό σο ηύπνο MIME) θαη ε ηειεπηαία ζεηξά απνδίδεη ην κέγεζνο ηνπ αξρείνπ ζε ραξαθηήξεο. 3.2 Πώο ιεηηνπξγνύλ νη δηαθνκηζηέο Web Ο δηαθνκηζηήο Web είλαη έλαο εμεηδηθεπκέλνο δηαθνκηζηήο αξρείσλ πνπ δηαλέκεη αξρεία ηα νπνία πεξηέρνπλ ηζηνζειίδεο, εηθόλεο γξαθηθώλ, sound clips, video clips θαη άιια πνιπκέζα. Όηαλ έλαο ρξήζηεο εθηειεί κηα ελέξγεηα, όπσο ηα λα παηήζεη έλα ζύλδεζκν ή λα θαηαζέζεη κία θόξκα, απνζηέιιεηαη ζηνλ δηαθνκηζηή έλα κήλπκα, ην νπνίν κεηαθέξεη ηελ ελέξγεηα πνπ έιαβε ρώξα, καδί κε ηα ζρεηηθά δεδνκέλα, γηα παξάδεηγκα ην όλνκα κέζα ζ' έλα πεδίν θεηκέλνπ ην νπνίν πιεθηξνινγήζεθε από ηνλ ρξήζηε. Τν κήλπκα πνπ ζηάιζεθε από ηνλ browser ιακβάλεηαη από ηνλ δηαθνκηζηή Web, ν νπνίνο ζηελ ζπλέρεηα απνθαζίδεη ηη πξέπεη λα γίλεη: εάλ, γηα παξάδεηγκα, κία ηζηνζειίδα πξέπεη λα ζηαιεί ζηνλ ρξήζηε ή εάλ πξέπεη λα εθηειεζηεί θάπνην πξόγξακκα. Σηελ ηειεπηαία πεξίπησζε, απηό ίζσο ζπλεπάγεηαη ηελ επεμεξγαζία κηαο απνζεθεπκέλεο ηζηνζειίδαο πξηλ ηελ απνζηνιή ηεο πξνο ηνλ browser. Απηή ε επεμεξγαζία ζπδεηείηαη ζην επόκελν θεθάιαην. Τν αίηεκα εθηειείηαη θαη ν δηαθνκηζηήο εηνηκάδεηαη γηα ην επόκελν αίηεκα ην νπνίν κπνξεί λα πξνέξρεηαη από ηνλ ίδην ππνινγηζηή / browser πνπ έζεζε ην πξνεγνύκελν αίηεκα αιιά κπνξεί θαη όρη. Τα αηηήκαηα θαη νη απαληήζεηο πνπ αλαθέξακε, εθθξάδνληαη κ' έλα πξσηόθνιιν γλσζηό σο Hypertext Transfer Protocol, γλσζηό σο HTTP. 3.3 Apache θαη ην Κίλεκα Αλνηθηνύ Κώδηθα (open source) Ο Apache είλαη ν πην δηάζεκνο δηαθνκηζηήο πνπ ρξεζηκνπνηείηαη ζην web. Δίλαη δηαζέζηκνο γηα κηα πνηθηιία δηαθνξεηηθώλ ιεηηνπξγηθώλ ζπζηεκάησλ, κε ην UNIX λα είλαη ην πην δηάζεκν. Ο Apache είλαη ζεκαληηθόο γηα δύν ιόγνπο: πξώηνλ, δηαηίζεηαη δσξεάλ θαη δεύηεξνλ, ν πεγαίνο θώδηθαο ηνπ είλαη ειεύζεξα δηαζέζηκνο. Ο Apache απνηειεί ζεκαληηθό κέξνο ελόο θηλήκαηνο γλσζηνύ σο Κίλεκα Αλνηθηνύ Κώδηθα. Η θηινζνθία πίζσ από απηό είλαη όηη ην ινγηζκηθό έρεη γίλεη ηόζν "κπαξόθ" θαη πεξίπινθν πνπ θακία εηαηξεία δελ κπνξεί λα έρεη πιήξε γλώζε όισλ ησλ πξνβιεκάησλ θαη ησλ ιαζώλ πνπ κπνξεί λα εκθαληζηνύλ. Ο κόλνο ηξόπνο κε ηνλ νπνίν κπνξεί λα γίλεη απηό 18 είλαη κέζσ ηεο δηάζεζεο ζε κηα κεγάιε θνηλόηεηα πξνγξακκαηηζηώλ ηνπ πεγαίνπ θώδηθα θαη ηεο άδεηαο ζε απηνύο λα αλαδεηήζνπλ θαη λα δηνξζώζνπλ πξνβιήκαηα ζ' απηόλ. Μ' απηόλ ηνλ ηξόπν ζα ππάξρεη κία γξήγνξε δηάδνζε δηνξζώζεσλ θαη βειηηώζεσλ ησλ πξνγξακκάησλ. Ο δηαθνκηζηήο Web, καδί κε ηα επηρεηξεκαηηθά αληηθείκελα κηαο εθαξκνγήο, ιεηηνπξγεί σο ην κεζαίν επίπεδν ελόο ζπζηήκαηνο ηξηώλ επηπέδσλ, κε ηνλ browser λα έρεη ηελ ζέζε ηνπ επηπέδνπ παξνπζίαζεο θαη ηνλ δηαθνκηζηή βάζεο δεδνκέλσλ λα ιεηηνπξγεί σο ην επίπεδν ηεο βάζεο δεδνκέλσλ. 3.4 Λίγα ιόγηα γηα ην Joomla To Joomla! είλαη ε εθαξκνγή πνπ ρξεηάδεζηε γηα λα δεκνζηεύζεηε ζην δηαδίθηπν κηα πξνζσπηθή ηζηνζειίδα, αιιά θαη έλαλ νιόθιεξν εηαηξηθό δηθηπαθό ηόπν. Δίλαη πξνζαξκόζηκν ζε πεξηβάιινληα επηρεηξεκαηηθήο θιίκαθαο όπσο ηα intranets κεγάισλ επηρεηξήζεσλ ή νξγαληζκώλ. Οη δπλαηόηεηεο επέθηαζήο ηνπ είλαη πξαθηηθά απεξηόξηζηεο. Οη δπλαηόηεηεο ρξήζεο ηνπ Joomla! πεξηνξίδνληαη κόλνλ από ηε δεκηνπξγηθόηεηά ζαο. Κάπνηνη ρξεζηκνπνηνύλ ην Joomla! γηα δηαζθέδαζε, γηα ηε θαηαζθεπή κηαο πξνζσπηθήο ή νηθνγελεηαθήο ηζηνζειίδαο. Δλζσκαηώλνληαο δηάθνξα, δηαζέζηκα δσξεάλ, πξόζζεηα εξγαιεία / επεθηάζεηο, δηεπξύλνληαη νη δπλαηόηεηεο θαη ιεηηνπξγίεο ηνπ Joomla!, θάλνληάο ην κηα εθαξκνγή αμηόπηζηε γηα ηελ αλάπηπμε ζνβαξώλεηαηξηθώλ δηθηπαθώλ ηόπσλ. Τν Joomla! ρξεζηκνπνηεί κηα ηζρπξή templating engine πνπ ζαο δίλεη ηε δπλαηόηεηα λα ρξεζηκνπνηήζεηε δηθό ζαο, εμαηνκηθεπκέλν, template. Γηα ην ζθνπό απηό κπνξείηε είηε λα δεκηνπξγήζεηε δηθό ζαο template, είηε λα θαηεβάζεηε από ην δηαδίθηπν έλα από ηα εθαηνληάδεο (πεξίπνπ 500) πνπ δηαηίζεληαη δσξεάλ, είηε λα αγνξάζεηε θάπνην από απηά πνπ πσινύληαη, είηε λα παξαγγείιεηε ηελ θαηαζθεπή ελόο ζε έλαλ επαγγεικαηία. Από ηε ζηηγκή πνπ ζα δεκηνπξγεζεί ην δηθό ζαο template, δελ ρξεηάδνληαη παξά ηξία θιηθ, ώζηε ην πεξηερόκελν ηνπ δηθηπαθνύ ζαο ηόπνπ λα πξνζαξκνζηεί ζηε κνξθή ηνπ. Μπνξείηε λα πξνζζέζεηε πεξηερόκελν ζηνλ ηζηόηνπό ζαο από νπνηνλδήπνηε ππνινγηζηή δηαζέηεη ζύλδεζε ζην δηαδίθηπν. Πιεθηξνινγήζηε ην θείκελν, αλεβάζηε ηηο θσηνγξαθίεο, δεκνζηεύζεηε!. Φξεζηκνπνηήζηε ην Joomla! γηα λα ζπλεξγαζηείηε κε όζνπο κπνξνύλ λα ζπκβάιινπλ ζηελ επεμεξγαζία ηνπ πεξηερνκέλνπ. Γώζηε ηε δπλαηόηεηα ζε ζπλεξγάηεο ζαο λα δεκνζηεύζνπλ πεξηερόκελν, ζην πιαίζην αζθαιώο ησλ αξκνδηνηήησλ ηνπο. Δίλαη εύθνιν. Μπνξνύλ λα ην θάλνπλ από θάζε ππνινγηζηή κε ζύλδεζε ζην δηαδίθηπν. Πξνζζέζηε forum, photo galleries, βηβιηνζήθεο αξρείσλ, βηβιία επηζθεπηώλ θαη θόξκεο επηθνηλσλίαο: ιίγεο από ηηο εθαηνληάδεο πξόζζεηεο εθαξκνγέο πνπ θπθινθνξνύλ γηα ην Joomla. 19 Σηελ εηθόλα πνπ αθνινπζεί κπνξνύκε λα δνύκε ην control panel ηνπ administrator. Σε επόκελν θεθάιαην ζα αλαιύζνπκε πεξηζζόηεξν Joomla. 20 3.5 Γιώζζεο Πξνγξακκαηηζκνύ ζην Internet Οη ελδνγελείο αδπλακίεο ηεο HTML, κηαο θαηεμνρήλ γιώζζαο κνξθνπνίεζεο ππεξθεηκέλνπ, ζύληνκα νδήγεζαλ ζηελ αλάπηπμε γισζζώλ πξνγξακκαηηζκνύ ζην internet. Η ρξήζε ησλ γισζζώλ πξνγξακκαηηζκνύ θξίζεθε απαξαίηεηε αθνύ ε εμάπισζε ηνπ Internet θαη ε ρξήζε ησλ ζειίδσλ HTML γηα αιιειεπίδξαζε κε ηνπο ρξήζηεο (δπλακηθή απνζηνιή θαη ιήςε δεδνκέλσλ) δελ κπνξνύζε λα πξαγκαηνπνηεζεί κέζσ ηεο HTML Αξρηθά, αλαπηύρζεθε από ηελ εηαηξεία Netscape ε γιώζζα JavaScript ε νπνία, όπσο θαη ε ΗTML κεηαθξάδεηαη από ηνλ Web Browser θαηά ηελ εκθάληζε ηεο ζειίδαο. H Microsoft αλέπηπμε απ' ηελ πιεπξά ηεο κηα δηθή ηεο έθδνζε ηεο γιώζζαο JavaScript ηελ νπνία νλόκαζε JScript θαη κηα έθδνζε ηεο γιώζζαο Basic εηδηθά γηα ην Internet πνπ νλόκαζε VBScript. Έηζη πιένλ κε ηελ ρξήζε ησλ παξαπάλσ γισζζώλ είλαη δπλαηό λα ειεγρζνύλ θαη λα πξνγξακκαηηζηνύλ όια ζρεδόλ ηα αληηθείκελα πνπ κπνξεί λα πεξηέρεη κία ηζηνζειίδα θαη κε ηε ρξήζε είηε εληνιώλ δηαδηθαζηηθνύ ραξαθηήξα, είηε εληνιώλ δηαθιάδσζεο, όπσο γηα παξάδεηγκα ε δνκή [if … then… else…]. Η ρξήζε ηέηνηνπ είδνπο "πξνγξακκάησλ" ή όπσο νλνκάδνληαη "scripts" είλαη δηαδηθαζία πνπ έρεη κεγάιεο απαηηήζεηο ζε πξνγξακκαηηζκό θαη απεπζύλεηαη ζε πξνγξακκαηηζηέο θαη κόλν. 3.6 JavaScript H JavaScript δελ είλαη Java θαη νύηε ζρεηίδεηαη κε ηελ Java – To αξρηθό ηεο όλνκα ήηαλ “LiveScript” – Τν όλνκα άιιαμε όηαλ ε Java έγηλε δεκνθηιήο – Τα statements ζηελ JavaScript κνηάδνπλ κε ηα statements ηεο Java επεηδή θαη νη δύν έρνπλ δαλεηζηεί πνιιά ζηνηρεία από ηελ C Η JavaScript δελ ρξεζηκνπνηείηαη γηα πιήξε πξνγξάκκαηα αιιά: – Μηθξά θνκκάηηα θώδηθα πεξηιακβάλνληαη ζε ζειίδεο HTML γηα λα απμήζνπλ ηελ ιεηηνπξγηθόηεηά ηνπο. – Σπλήζσο ρξεζηκνπνηνύληαη ζε ζπλδπαζκό κε θόξκεο ζε HTML ζειίδεο. Η JavaScript είλαη ζρεηηθά αλεμάξηεηε πιαηθόξκαο – Πνιιέο θνξέο ππάξρεη αζπκβαηόηεηα αλάκεζα ζηνπο browsers. Ο θώδηθαο JavaScript πεξηιακβάλεηαη ζε <script> tags: 21 – <script type="text/javascript"> document.write("<h1>Hello World!</h1>") ; </script> 3.7 PHP Η PHP, ηεο νπνίαο ηα αξρηθά αληηπξνζσπεύνπλ ην "PHP: Hypertext Preprocessor" είλαη κηα επξέσο ρξεζηκνπνηνύκελε, αλνηρηνύ θώδηθα, γεληθνύ ζθνπνύ scripting γιώζζα πξνγξακκαηηζκνύ, ε νπνία είλαη εηδηθά θαηάιιειε γηα αλάπηπμε εθαξκνγώλ γηα ην Web θαη κπνξεί λα ελζσκαησζεί ζηελ HTML. Απιή απάληεζε, αιιά ηη ζεκαίλεη; Έλα παξάδεηγκα : <html> <head> <title> Example </title> </head> <body> <?php echo "Hi, i'm a PHP script!"; ?> </body> </html> Παξαηεξήζηε πσο απηό είλαη δηαθνξεηηθό από έλα script γξακκέλν ζε άιιεο γιώζζεο πξνγξακκαηηζκνύ όπσο ε Perl ή ε C : Αληί λα γξάθεηε έλα πξόγξακκα κε πνιιέο εληνιέο γηα λα εμάγεηε HTML, γξάθεηε έλα HTML script κε θάπνην ελζσκαησκέλν θώδηθα γηα λα θάλεη θάηη (ζε απηή ηελ πεξίπησζε, λα εκθαλίδεη θάπνην θείκελν). Ο θώδηθαο PHP είλαη εζώθιεηζηνο ζε εηδηθά tags (εηηθέηεο) αξρήο θαη ηέινπο πνπ ζαο επηηξέπνπλ λα κεηαθέξεζηε κέζα θαη έμσ από ην "PHP mode" (PHP ηξόπν ιεηηνπξγίαο). Απηό πνπ δηαρσξίδεη ηελ PHP από θάηη ζαλ client-side Javascript είλαη όηη ν θώδηθαο εθηειείηαη ζηνλ server (εμππεξεηεηή). Αλ είραηε έλα script ζαλ ην παξαπάλσ ζηνλ server ζαο, ν client ζα έπαηξλε ηα απνηειέζκαηα ηεο εθηέιεζεο απηνύ ηνπ script, ρσξίο λα ππάξρεη θαλέλαο ηξόπνο λα θαηαιάβεη ηη θώδηθαο ππάξρεη από θάησ. Μπνξείηε αθόκε λα ξπζκίζεηε ηνλ web server ζαο λα ρεηξίδεηαη όια ηα HTML αξρεία ζαο κε ηελ PHP, θαη ηόηε πξαγκαηηθά δελ ππάξρεη ηξόπνο ν ρξήζηεο λα θαηαιάβεη ηη έρεηε θάησ από ην καλίθη ζαο. Τα θαιύηεξν πξάγκα ζηελ PHP είλαη όηη είλαη εμαηξεηηθά απιή γηα έλα λενθεξκέλν αιιά πξνζθέξεη πνιιέο πξνεγκέλα ραξαθηεξηζηηθά γηα έλα επαγγεικαηία πξνγξακκαηηζηή. Μελ ηξνκάδεηε όηαλ δηαβάδεηε ηελ καθξνζθειή ιίζηα κε ηα ραξαθηεξηζηηθά ηεο PHP. Μπνξείηε λα εμνηθεησζείηε κέζα ζε πνιύ ιίγν ρξόλν θαη λα αξρίζεηε λα γξάθεηε απιά script ζε ιίγεο ώξεο. Αλ θαη ε αλάπηπμε ηεο PHP εζηηάδεηαη ζε server-side scripting, κπνξείηε λα θάλεηε πνιύ πεξηζζόηεξα κε απηή. Τη;;; 22 Οηηδήπνηε. Η PHP επηθεληξώλεηαη θπξίσο ζην server-side scripting, έηζη κπνξείηε λα θάλεηε νηηδήπνηε έλα άιιν CGI πξόγξακκα κπνξεί λα θάλεη, όπσο λα καδέςεη δεδνκέλα, λα παξάγεη δπλακηθό πεξηερόκελν ζειίδσλ, ή λα ζηείιεη θαη λα πάξεη cookies. Αιιά ε PHP κπνξεί λα θάλεη πνιύ πεξηζζόηεξα. Υπάξρνπλ ηξεηο θύξηνη ηνκείο πνπ ρξεζηκνπνηείηαη έλα PHP script. Server-side scripting. Απηό είλαη ην πην παξαδνζηαθό θαη ην θύξην πεδίν γηα ηελ PHP. Φξεηάδεζηε ηξία πξάγκαηα γηα λα δνπιέςεη απηό. Τνλ PHP κεηαγισηηηζηή (parser) (CGI ή server module), έλα webserver (εμεπεξεηεηή ζειίδσλ) θαη έλα web browser ("θπιινκεηξεηή"). Πξέπεη λα ηξέμεηε ηνλ webserver, κε κηα ζπλδεδεκέλε εγθαηάζηαζε ηεο PHP. Μπνξείηε λα πξνζπειάζεηε ηα απνηειέζκαηα ηνπ PHP πξνγξάκκαηνο κε έλα web browser, βιέπνληαο ηελ ζειίδα PHP κέζα από ηνλ server. Γηα πεξηζζόηεξεο πιεξνθνξίεο, δείηε ηελ παξάγξαθν νδεγίεο εγθαηάζηαζεο. Command line scripting. Μπνξείηε λα θηηάμεηε έλα PHP script γηα λα ην ηξέρεηε ρσξίο server ή browser. Φξεηάδεζηε κόλν ηνλ PHP κεηαγισηηηζηή γηα λα ηελ ρξεζηκνπνηήζεηε κε απηό ηνλ ηξόπν. Απηόο ν ηύπνο είλαη ηδαληθόο γηα script πνπ εθηεινύληαη ζπρλά κε ηε ρξήζε ηεο cron (ζε *nix ή Linux) ή κε ηνλ Task Scheduler (ζηα Windows). Απηά ηα script κπνξνύλ επίζεο λα ρξεζηκνπνηεζνύλ γηα απιέο εξγαζίεο επεμεξγαζίεο θεηκέλνπ. Γείηε ηελ ελόηεηα ζρεηηθά κε ηελ Command line ρξήζε ηεο PHP γηα πεξηζζόηεξεο πιεξνθνξίεο. Δγγξαθή client-side GUI εθαξκνγώλ (Γξαθηθά πεξηβάιινληα ρξεζηώλ). Η PHP ίζσο λα κελ είλαη ε πην θαιή γιώζζα γηα λα γξάςεη θαλείο παξαζπξηαθέο εθαξκνγέο, αιιά αλ μέξεηε PHP πνιύ θαιά θαη ζέιεηε λα ρξεζηκνπνηήζεηε θάπνηα πξνρσξεκέλα ραξαθηεξηζηηθά ηεο PHP ζηηο client-side εθαξκνγέο ζαο, κπνξείηε επίζεο λα ρξεζηκνπνηήζεηε ην PHP-GTK γηα απηνύ ηνπ είδνπο ηα πξνγξάκκαηα. Έρεηε επίζεο ηε δπλαηόηεηα λα γξάθεηε cross-platform εθαξκνγέο κε απηό ηνλ ηξόπν. Τν PHP-GTK είλαη κηα επέθηαζε ηεο PHP θαη δελ ζπκπεξηιακβάλεηαη ζηελ θύξηα δηαλνκή. Η PHP κπνξεί λα ρξεζηκνπνηεζεί ζε όια ηα θύξηα ιεηηνπξγηθά ζπζηήκαηα, ζπκπεξηιακβαλνκέλνπ ηνπ Linux, πνιιώλ εθδνρώλ ηνπ Unix (HP-UX, Solaris θαη OpenBSD), Microsoft Windows, Mac OS X, RISC OS θαη πηζαλώο ζε άιια. Η PHP ππνζηεξίδεη επίζεο ηνπο Apache, Microsoft Internet Information Server, Personal Web Server, Netscape θαη iPlanet servers, 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 κπνξεί λα δεκηνπξγεί απηόκαηα απηά ηα αξρεία θαη λα ηα απνζεθεύεη ζην ζύζηεκα αξρείσλ, αληί λα ηα εθηππώλεη, απνηειώληαο έηζη κηα serverside cache γηα ην δπλακηθό ζαο πεξηερόκελν. 23 Έλα από ηα πην δπλαηά θαη ζεκαληηθά ραξαθηεξηζηηθά ηεο PHP είλαη ε ππνζηήξημε πνπ έρεη γηα έλα κεγάιν ζύλνιν βάζεσλ δεδνκέλσλ. 3.8 MySQL H MySQL είλαη έλα πιήξεο ζύζηεκα δηαρείξηζεο ζρεζηαθώλ βάζεσλ δεδνκέλσλ. Υπνζηεξίδεη έλα ππνζύλνιν ηνπ Ansi SQL θαη πεξηιακβάλεη πνιιέο επεθηάζεηο. Έρεη έλα C API πνπ είλαη παξόκνην κε ηεο mSQL. Μεξηθά ραξαθηεξηζηηθά γλσξίζκαηα: πνιπλεκαηώδεο. όιε ε θπθινθνξία θσδηθνύ πξόζβαζεο θξππηνγξαθείηαη. όιεο νη ζηήιεο πεξηιακβάλνπλ πξνθαζνξηζκέλεο ηηκέο. έιεγρνο θαη ηξνπνπνίεζε πηλάθσλ. ςεπδώλπκα πηλάθσλ θαη ζηειώλ ζύκθσλα κε ηα πξόηππα SQL92. κε δηαξworkflow κλήκεο. όιεο νη ζπλελώζεηο (joins) γίλνληαη ζε έλα πέξαζκα. εγγξαθέο ζηαζεξνύ θαη κεηαβιεηνύ κήθνπο. Γηεπαθέο: SQL, ODBC, C, Perl, JAVA, C++, Python, PHP command line Μέζνδνη πξόζβαζεο: B-tree ζην δίζθν, hash tables ζηε κλήκε Πνιπρξεζηηθό: Ναη Γνζνιεςίεο: Ναη, ππνζηεξίδεη θαη foreign key constraints Καηαλεκεκέλν: Όρη, ππάξρεη ε δπλαηόηεηα γηα mirroring Γιώζζα Δξσηεκάησλ: SQL Όξηα: Πάλσ από 32 indexes / table. Κάζε index απνηειείηαη από 1 έσο 16 ζηήιεο. Τν κέγηζην πιάηνο ηνπ index είλαη 500 bytes Αλζεθηηθόηεηα: Ο θώδηθαο ηνπ B-tree είλαη εμαηξεηηθά ζηαζεξόο, εθηθηή ε 24-σξε ιεηηνπξγία Υπνζηεξηδόκελεο Πιαηθόξκεο: BSDOS, SunOS, Solaris, Linux, IRIX, AIX, OSF1, BSD/OS, FreeBSD 24 3.9 Αλαζθόπεζε Σην θεθάιαην πνπ κόιηο ηειεηώζακε θάλακε αλαθνξά ζην πξσηόθνιιν HTTP ην νπνίν εμππεξεηεί ηνλ πειάηε κε ηνλ δηαθνκηζηή ζην λα παίξλνπλ θαη λα δέρνληαη κελύκαηα. Κάλακε αλαθνξά ζην Joomla ην νπνίν ζα είλαη ην Σύζηεκα Γηαρείξηζεο Πεξηερνκέλνπ αλνηρηνύ θώδηθα κε ην νπνίν ζα πινπνηήζνπκε ην ζύζηεκα δηαρείξηζεο γηα ηελ ππνζηήξημε ηεο Dial-Up ζύλδεζεο. Δμεγήζακε ηη είλαη θαη πώο ιεηηνπξγνύλ νη γιώζζεο πξνγξακκαηηζκνύ πνπ ζα ρξεζηκνπνηεζνύλ θαη νη νπνίεο είλαη JavaScript , ε PHP θαη ε MySQL. Με ηηο δύν πξώηεο γιώζζεο ζα γίλεη ε αλάπηπμε ηνπ ηζηνηόπνπ καο θαη κε ηελ ηειεπηαία ηελ MySQL ζα θξαηάκε όια ηα ζηνηρεία πνπ ρξεηάδεηαη γηα λα ιεηηνπξγήζεη ν ηζηόηνπνο, δειαδή ζα είλαη ε βάζε καο. 25 Κεθάιαην 4ν Τπηρεσία καταλόγου LDAP 26 4.1 Τη είλαη ην LDAP LDAP, Lightweight Directory Access Protocol: Δλ ζπληνκία, πξόθεηηαη γηα κία ηερλνινγία πνπ παξέρεη εμεηδηθεπκέλεο ιεηηνπξγίεο αλαδήηεζεο θαη δηαρείξηζεο ρξεζηώλ ή, γεληθόηεξα, πόξσλ. Οη ππεξεζίεο απηέο αλαθέξνληαη κε ην γεληθόηεξν ηίηιν «Υπεξεζίεο Καηαιόγνπ» (Directory Services), θαζώο μεθίλεζαλ πξνζθέξνληαο πξσηίζησο πξόζβαζε ζε ιίζηεο κε πξνζσπηθά ζηνηρεία αηόκσλ, όπσο όλνκα, ηειέθσλν, email. Γξήγνξα όκσο, κε ηε βνήζεηα πξσηνθόιισλ όπσο ηα DAP θαη LDAP, εμειίρζεθαλ ζε απνδνηηθέο ιύζεηο δηαρείξηζεο ηέηνησλ εγγξαθώλ. Η ηερλνινγία LDAP έξρεηαη λα θαιύςεη ην θελό πνπ αθήλνπλ νη βάζεηο δεδνκέλσλ ζηα επαλαιακβαλόκελα κνηίβα δηαρείξηζεο αηόκσλ, πνπ ζπλαληώληαη ζηηο επηρεηξήζεηο θαη ηνπο νξγαληζκνύο. Πξνηππνπνηεί δνκέο ηηο νπνίεο νη δηαρεηξηζηέο ζπζηεκάησλ νύησο ή άιισο ήηαλ αλαγθαζκέλνη λα εθεπξίζθνπλ θαη ηαπηόρξνλα πξνζθέξεη εμεηδηθεπκέλεο ιεηηνπξγίεο γηα ηελ απνδνηηθή δηαρείξηζή ηνπο. Αθξηβώο απηά ηα ραξαθηεξηζηηθά ζπκβάιινπλ ζηελ ηαρεία θαη επξεία απνδνρή ηεο ηερλνινγίαο LDAP. Σην ίδην πλεύκα, είλαη θαλεξό πσο ε ηερλνινγία LDAP δελ έξρεηαη λα αληηθαηαζηήζεη ηηο βάζεηο δεδνκέλσλ, αιιά κάιινλ λα δνπιέςεη παξάιιεια κε απηέο ζε έλα επηρεηξεζηαθό πεξηβάιινλ: Η αλαγθαηόηεηα ύπαξμεο ελόο ζπζηήκαηνο βάζεο δεδνκέλσλ ήηαλ -θαη παξακέλεη- αδηακθηζβήηεηε· ε έιεπζε ηνπ LDAP απιώο ακθηζβεηεί ην θαηά πόζν κία βάζε δεδνκέλσλ είλαη ην ηδαληθό ζύζηεκα γηα ηε δηαρείξηζε εγγξαθώλ ρξεζηώλ. Πέξα από ηηο βαζηθέο δπλαηόηεηεο πνπ παξέρεη ην πξσηόθνιιν LDAP, έλα επηρεηξεζηαθό πεξηβάιινλ επσθειείηαη επίζεο από ππεξεζίεο πνπ βαζίδνληαη ζε απηό, θπξίσο ζε επίπεδν ηαπηνπνίεζεο θαη εθρώξεζεο δηθαησκάησλ. Τα ηειεπηαία ρξόληα παξαηεξείηαη κία αικαηώδεο αύμεζε ζηελ αλάπηπμε ηέηνησλ εθαξκνγώλ, ελώ ηαπηόρξνλα όιν θαη πεξηζζόηεξεο επηρεηξήζεηο, ηδξύκαηα θαη νξγαληζκνί πηνζεηνύλ ηελ ηερλνινγία απηή. 27 4.2 LDAP από ηερληθή ζθνπηά Ο όξνο εγγξαθή θαηαιόγνπ (directory entry) αλαθέξεηαη ζηηο νληόηεηεο πνπ πεξηιακβάλεη έλαο θαηάινγνο LDAP. Τέηνηεο κπνξεί λα είλαη άηνκα, πόξνη, νξγαλσηηθέο κνλάδεο, γθξνππ θ.α. Κάζε εγγξαθή ππαθνύεη ζε έλα ηεξαξρηθό κνληέιν νλνκαηνινγίαο, δειαδή βξίζθεηαη «εληόο» κίαο γεληθόηεξεο εγγξαθήο. Γηα παξάδεηγκα, ε εγγξαθή ρξήζηε john doe (κπνξεί λα) βξίζθεηαη κέζα ζηελ εγγξαθή people, πνπ είλαη κία νξγαλσηηθή κνλάδα. Με ηε ζεηξά ηεο, απηή αλήθεη ζηελ εγγξαθή example, έλαο νξγαληζκόο πνπ αλήθεη ζηελ εγγξαθή gr. Τν απνηέιεζκα είλαη ε αξρηθή εγγξαθή λα κπνξεί λα πξνζπειαζηεί κε ην αλαγλσξηζηηθό dn = "cn=john doe, ou=people, o=example, c=gr". Τν αλαγλσξηζηηθό dn ζεκαίλεη distinguished name θαη είλαη πξνθαλήο ε αλαινγία ηνπ κε ην ζρήκα νλνκαηνινγίαο ηνπ Internet. Από ηερληθήο άπνςεο, ην πξσηόθνιιν LDAP βαζίδεηαη ζε έλα API γηα ιεηηνπξγίεο αλαδήηεζεο, πξνζζήθεο θαη κεηαβνιήο εγγξαθώλ, θαζώο θαη ζε κία (ζπλήζσο ελζσκαησκέλε) βάζε δεδνκέλσλ γηα ηελ απνζήθεπζή ηνπο. Τν πξσηόθνιιν βαζίδεηαη ζην κνληέιν client-server: Ο server αλακέλεη θαη εμππεξεηεί αηηήζεηο από πειάηεο πνπ ζπλδένληαη καδί ηνπ κέζσ δηθηύνπ. Αλ έλαο server δελ κπνξεί λα εμππεξεηήζεη κία αίηεζε (γηα παξάδεηγκα, κία εγγξαθή πνπ αλαδεηείηαη δελ ππάξρεη, ή o server δελ έρεη δηθαίσκα λα πξαγκαηνπνηήζεη ηε δεηνύκελε ιεηηνπξγία), κπνξεί λα παξαπέκςεη ηνλ πειάηε ζε άιινλ εμππεξεηεηή ή λα πξνσζήζεη ν ίδηνο ηελ αίηεζε ζε δηαθνξεηηθό server. Οη εθαξκνγέο πνπ πινπνηνύλ ην πξσηόθνιιν LDAP είλαη πξνζαλαηνιηζκέλεο ζηελ εμππεξέηεζε κεγάινπ αξηζκνύ αηηήζεσλ, από αλώλπκνπο θαη δηαζθνξπηζκέλνπο πειάηεο. Γηα ην ιόγσ απηό, έρεη δνζεί ηδηαίηεξε κέξηκλα ζε δεηήκαηα απόδνζεο θαη αζθάιεηαο. Γηα παξάδεηγκα, ε απόδνζε απμάλεηαη κέζσ ηνπ θαηακεξηζκνύ ηνπ θόξηνπ εξγαζίαο ζε απνκαθξπζκέλα ζπζηήκαηα, δεκηνπξγώληαο πνιιαπιέο ξέπιηθεο ηνπ θαηαιόγνπ. Η αζθάιεηα εμαζθαιίδεηαη κέζα από έλαλ επέιηθην κεραληζκό πξνζζήθεο εληνιώλ ειέγρνπ πξόζβαζεο (ACIs – Access Control Instructions). Δπί ηνπ παξόληνο, ν ρώξνο ηνπ LDAP θπξηαξρείηαη από ηξεηο εθαξκνγέο: 1. Sun Java System Directory Server Τν παθέην ηεο Sun είλαη ίζσο ε δεκνθηιέζηεξε πινπνίεζε ηνπ πξσηνθόιινπ. Τν όλνκα ηνπ ινγηζκηθνύ έρεη κία πνιύπαζε ηζηνξία: Αξρηθά, δηαδόζεθε κε ηελ επσλπκία iPlanet Directory Server, θαζώο ήηαλ πξντόλ ηελ νκώλπκεο εηαηξίαο, ελώ ζηε ζπλέρεηα πέξαζε ζηε Netscape θαη κεηνλνκάζηεθε ζε Netscape Directory Server. Η εθαξκνγή θαηέιεμε ζηε Sun, πνπ ηελ νλόκαζε Sun ONE Directory Server γηα λα ηε κεηνλνκάζεη πξόζθαηα ζηνλ ηίηιν πνπ έρεη ηώξα. 2. OpenLDAP Πξόθεηηαη γηα ηελ opensource πινπνίεζε ηνπ LDAP. Η πινπνίεζε απηή, αθνινπζώληαο ην πλεύκα ησλ εκεξώλ, θεξδίδεη δηαξθώο έδαθνο, ελώ έρεη ήδε εδώ θαη πνιύ θαηξό θαηαθέξεη λα απνζπάζεη πνιύ ζεηηθέο θξηηηθέο. 28 3. Microsoft Active Directory Η πινπνίεζε ηεο Microsoft δελ απνηειεί αλεμάξηεην παθέην, θαζώο ελζσκαηώλεηαη ζηε ζεηξά Server ησλ ιεηηνπξγηθώλ ζπζηεκάησλ Windows ηεο εηαηξείαο. Αλ θαη πξνζαξκνζκέλε ζηηο απαηηήζεηο ησλ νηθείσλ εθαξκνγώλ ηεο εηαηξείαο, ε πινπνίεζε πξνζθέξεη ππνζηήξημε ησλ πξνδηαγξαθώλ ηνπ πξσηνθόιινπ. 4.3 Κξίζε-Σύγθξηζε-Δθαξκνγέο Τν πξσηόθνιιν LDAP ζπλήζσο ζπγθξίλεηαη κε ηηο βάζεηο δεδνκέλσλ, γηαηί είλαη απηή ε ππνδνκή πνπ θαιείηαη λα αληηθαηαζηήζεη. Παξαθάησ παξνπζηάδεηαη έλαο πίλαθαο κε νξηζκέλα από ηα πιενλεθηήκαηα θαη κεηνλεθηήκαηα ρξήζεο ηεο ηερλνινγίαο LDAP: Υπέξ: - Παξέρεη βειηηζηνπνηεκέλεο δνκέο γηα ηε δηελέξγεηα κεγάινπ αξηζκνύ αλαγλώζεσλ. - Παξέρεη έλαλ πνιύ επέιηθην θαη ζπκπαγή κεραληζκό εθρώξεζεο δηθαησκάησλ. - Δπηηξέπεη ηελ άκεζε νκαδνπνίεζε εγγξαθώλ θαη ηελ εληαία αληηκεηώπηζή ηνπο. - Βαζίδεηαη ζε έλα πξνηππνπνηεκέλν πξσηόθνιιν θαη γηα ην ιόγσ απηό αλεμάξηεην από ηελ πιαηθόξκα πνπ ρξεζηκνπνηείηαη γηα ηελ πξνζπέιαζή ηεο. - Τν ηεξαξρηθό κνληέιν νλνκαηνινγίαο επηηξέπεη ηε κνλόζεκε πξνζπέιαζε ησλ εγγξαθώλ. Καηά: - Η πιεηνςεθία ησλ νξγαληζκώλ δηαζέηεη ήδε κία θαιά νξγαλσκέλε ππεξεζία δηαρείξηζεο ρξεζηώλ, ρξεζηκνπνηώληαο παξαδνζηαθέο βάζεηο δεδνκέλσλ θαη ε κεηάβαζε από ην έλα κνληέιν ζην άιιν δελ είλαη απιή. - Η δηαρείξηζε ελόο εμππεξεηεηή LDAP πξνζζέηεη επηπιένλ βάξνο ζηελ ζπλνιηθή δηαρείξηζε ησλ ππνινγηζηηθώλ ζπζηεκάησλ ελόο νξγαληζκνύ. - Οη εθαξκνγέο LDAP δελ είλαη θαηάιιειεο γηα ηελ απνζήθεπζε αληηθεηκέλσλ κεγάινπ κεγέζνπο, ή αληηθεηκέλσλ πνπ αλαλεώλνληαη ζπρλά. 29 - Η ρξήζε ηνπ LDAP δελ έρεη λόεκα αλ δελ αλαπηπρζνύλ επηπιένλ ππεξεζίεο πνπ ζα θάλνπλ ρξήζε ησλ δπλαηνηήησλ ηνπ. Όπσο αλαθέξεηαη θαη ζην ηειεπηαίν επηρείξεκα θαηά ηεο ρξήζεο ηεο ηερλνινγίαο LDAP, ε επηηπρία ηεο εμαξηάηαη ζε κεγάιν βαζκό από ηηο ππεξεζίεο πνπ ζα βαζηζηνύλ ζε απηό. Πξαγκαηηθά, αλ θαη πνιινί νξγαληζκνί ρξεζηκνπνηνύλ ηελ ππεξεζία θαηαιόγνπ κόλν γηα αλαδήηεζε αηόκσλ, ηα ηειεπηαία ρξόληα αλαπηύζζεηαη κία δπλακηθή ρξήζεο ηνπ LDAP γηα ηελ παξνρή πην εμειηγκέλσλ ππεξεζηώλ. Δλδεηθηηθά αλαθέξνληαη ε εμ νινθιήξνπ δηαρείξηζε ρξεζηώλ, ην Single Sign-on, ε δηαρείξηζε επηπέδνπ πξόζβαζεο ζε πόξνπο θαη ππεξεζίεο αιιά θαη πνιιά άιια. 30 Κεθάιαην 5ν JOOMLA ! 31 5.1 Joomla! Γεληθά Τν Joomla CMS είλαη έλα βξαβεπκέλν ζύζηεκα δηαρείξηζεο πεξηερνκέλνπ, αλνηθηνύ θώδηθα, πνπ καο βνεζά λα αλαπηύμνπκε WebSites κε εύθνιν θαη γξήγνξν ηξόπν. Πεξηιακβάλεη έλα κεγάιν αξηζκό ραξαθηεξηζηηθώλ γλσξηζκάησλ πνπ κπνξνύκε πνιύ εύθνια λα δηακνξθώζνπκε. Δίλαη θαηάιιειν γηα απιέο όζν θαη ζύλζεηεο εθαξκνγέο γηα ην Internet. Ιδηαίηεξν ραξαθηεξηζηηθό ηνπ είλαη ε απιόηεηα ηνπ ζπλνδεπκέλν από πιήζνο δπλαηνηήησλ. Σπλνπηηθά: • Δπθνιία , απιόηεηα • Πιήζνο επεθηάζεσλ • Μεγάιε θνηλόηεηα ρξεζηώλ • Μεγάινο αξηζκόο επαγγεικαηηώλ πνπ ην ζηεξίδεη • Διιεληθή ππνζηήξημε από θνηλόηεηα ρξεζηώλ θαη επαγγεικαηηώλ Τν Joomla, Web Content Management System (WCMS) επηηξέπεη ζηνλ content δηεπζπληή ή ην ζπληάθηε, πνπ κπνξεί λα κελ μέξνπλ ηελ HTML ή νπνηαδήπνηε άιιε γιώζζα πξνγξακκαηηζκνύ, λα δηαρεηξηζηεί, λα δεκηνπξγήζεη, λα ηξνπνπνηήζεη, θαη λα αθαηξέζεη ην πεξηερνκέλνπ από ην site ηνπο ρσξίο ηελ αλάγθε ελόο πεπεηξακέλνπ Webmaster. Τν ζεκαληηθόηεξν πξάγκα πξέπεη λα μέξεηε εζείο είλαη ηη αλάγθε έρεηε από έλα CMS είλαη γηα πην ζθνπό ζέιεηε ηε ρξεζηκνπνίεζε ηνπ κέζσ ηνπ Ιζηνύ - γηα ηελ επηρείξεζή ζαο. Τν ινγηζκηθό πίζσ από ην CMS παίξλεη ην πεξηερόκελν πνπ εηζάγεηαη θαη ην ζπληάζζεη έηζη ώζηε ην site λα ελεκεξώλεηαη ακέζσο. Τα ραξαθηεξηζηηθά γλσξίζκαηα ηνπ Web CMS πνηθίιινπλ, αιιά πεξηζζόηεξν πεξηιακβάλνπλ Web-based δεκνζίεπζε, ηελ δηαρείξηζε ηεο δηάηαμεο, ηνλ έιεγρν γηα λέεο εθδόζεηο, θαη ην indexing, ηελ αλαδήηεζε, θαη ηηο ιεηηνπξγίεο αλάθηεζεο. Τν Joomla CMS έρεη έλα επξύ θάζκα ραξαθηεξηζηηθώλ γλσξηζκάησλ θαη επηινγώλ ζρεδηαγξάκκαηνο, θαη ιεηηνπξγεί κε κηα ηεξάζηηα ζεηξά από ελόηεηεο θαη ζπζηαηηθά γηα λα δώζεη ζε εζάο θαη ζηνπο ρξήζηεο ζαο ηελ πξόζζεηε ιεηηνπξγία. Παξαδείγκαηα απηνύ πνπ κπνξείηε λα ελζσκαηώζεηε ζε κηα Joomla! πεξηνρή πεξηιακβάλεη: • δεκηνπξγία menu επηινγώλ θαη content ζειίδεο ρξεζηκνπνηώληαο θείκελα θαη εηθόλεο. • πξνζζήθε ηκεκάησλ εηδήζεσλ θαη απηόκαηε αλαλέσζε ηνλ πην πξόζθαησλ εηδήζεσλ • πξνζζήθε news feeds • πξνζζήθε ςεθνθνξηώλ • δεκηνπξγία forum • δεκηνπξγία αζθαιώλ πεξηνρώλ όπνπ κόλν νη εγγεγξακκέλνη ρξήζηεο κπνξνύλ λα θάλνπλ login • πξνζζέηνληαο έλα έγγξαθν ζηελ download πεξηνρή θαη θαηάινγνο εγγξάθσλ ζύκθσλα κε ηνλ ηύπν ηεο • δεκηνπξγία pop-ups • δηαρείξηζε θαη αλαβάζκηζε ησλ downloads κε κηα δηαρείξηζε εγγξάθσλ 32 5.2 Δγθαηάζηαζε ηνπ Joomla Πώο γίλεηαη ε εγθαηάζηαζε ηνπ joomla ζε έλαλ server; Τη ρξεηάδεηαη πξνζνρή; Σεκαληηθό βήκα ζηελ εγθαηάζηαζε είλαη ε δεκηνπξγία ηεο Βάζεο Γεδνκέλσλ γηα ηελ ζσζηή ιεηηνπξγία ησλ ειιεληθώλ θαη από απηό ην βήκα αξρίδνπκε: Ξεθηλάκε ηνλ Apache Server θαη επηιέγνπκε ην phpmyadmin Κάλνπκε ηηο παξαπάλσ αιιαγέο θαη δεκηνπξγνύκε κηα θελή βάζε. Δάλ δελ γίλνπλ νη παξαπάλσ αιιαγέο όηαλ ζα εηζάγνπκε δεδνκέλα ζηα ειιεληθά ζηελ βάζε δεδνκέλσλ καο δελ ζα εκθαλίδνληαη ζσζηά. Δληνπίδνπκε ην αξρείν includes/database.php θαη θάλνπκε uncomment ηε γξακκή 90. Γειαδή από // @mysql_query("SET NAMES 'utf8'", $this->_resource); Γίλεηαη @mysql_query("SET NAMES 'utf8'", $this->_resource); Σηελ ζπλέρεηα αξρίδνπκε ηελ εγθαηάζηαζε ηνπ Joomla! 33 Η πξώηε νζόλε πνπ καο βγάδεη είλαη γηα λα νξίζνπκε ηελ βάζε δεδνκέλσλ καο. Σην Tab Host Name βάδνπκε localhost. Σηα Tabs MySQL User Name θαη Password ζπκπιεξώλνπκε ην username θαη ην password πνπ καο έρνπλ δώζεη γηα λα κπνξεί ην Joomla! λα θάλεη ζύλδεζε κε ηελ βάζε καο. Δάλ ζηήζνπκε ην Joomla! ζε ηνπηθό server ην username είλαη root θαη ζαλ password βάδνπκε ην pass πνπ έρνπκε νξίζεη θαηά ηελ εγθαηάζηαζε ηνπ server. Σην όλνκα ηεο βάζεο ζπκπιεξώλνπκε κε ην όλνκα ηεο θελή βάζε δεδνκέλσλ πνπ θηηάμακε πην πξηλ. 34 Σηα επόκελα βήκα καο δεηάεη λα νξίζνπκε έλα όλνκα γηα ην site καο, θαη λα νξίζνπκε ην path θαη ην url ηνπ site καο. Τηο πεξηζζόηεξεο θνξέο δελ αιιάδνπκε απηέο ηεο παξακέηξνπο κόλν εάλ είκαζηε ζίγνπξνη. Τέινο ζπκπιεξώλνπκε ηα ππόινηπα πεδία κε ην mail ηνπ administrator ηνπ site θαζώο θαη ην password γηα λα κπνξνύκε λα θάλνπκε login ζην control panel ηνπ Joomla. Σην ηειεπηαίν βήκα ηεο εγθαηάζηαζεο καο γίλεηε κηα επηβεβαίσζε ησλ όζν έρνπκε θάλεη θαη καο ππελζπκίδεη λα ζβήζνπκε ην installation folder. 5.3 Παροσζίαζη ηων ζηοιτείων ηης ζελίδας μας Ακέζσο κεηά ηελ επηηπρεκέλε εγθαηάζηαζε, εξρόκαζηε αληηκέησπνη κε κηα ζειίδα πνπ δελ είλαη θαη εύθνιν λα αλαγλσξίζνπκε ηα ζηνηρεία ηεο, θαη είλαη αθόκε πην δύζθνιν ινηπόλ λα ηα δηαρεηξηζηνύκε. Δίλαη ε εηθόλα πνπ έρνπκε κπξνζηά καο ρξεζηκνπνηεί ην πξνθαζνξηζκέλν template. Τν template ιίγε ζεκαζία έρεη απηή ηε ζηηγκή, γηαηί κπνξεί εύθνια λα ηξνπνπνηεζεί. Τν δεηνύκελν ηώξα είλαη λα γλσξίζνπκε από πνηα θνκκάηηα απνηειείηαη ε δπλακηθή joomla ηζηνζειίδα καο θαη πνηα είλαη, ηα ζπζηαηηθά ηεο. 35 Σηελ παξαπάλσ θσηνγξαθία έρνπκε μερσξίζεη ηα κέξε ηεο ζειίδαο καο θαη ηα έρνπκε πξνζδηνξίζεη ρξσκαηηθά. Αο ηα δνύκε, έλα έλα: Δίλαη ηα menu, πνπ βνεζάλε ηνλ επηζθέπηε λα πξνζαλαηνιηζηεί ζην πεξηερόκελν ελόο δηθηπαθνύ ηόπνπ. Σηελ εηθόλα καο ηα έρνπκε ζεκεησκέλα κε κπιε ρξώκα . Απηή ηη ζηηγκή, ζηελ ηζηνζειίδα καο εκθαλίδνληαη 3 ζηνηρεία κελνύ: To top menu. Σπλήζσο απηό βξίζθεηαη ζην πάλσ κέξνο ηεο ζειίδαο θαη δίλεη θαηεύζπλζε ζηνλ επηζθέπηε πξνο ζεκαληηθά ζεκεία ηνπ δηθηπαθνύ καο ηόπνπ (θεληξηθή ζειίδα, επηθνηλσλία, πξντόληα θιπ) To main menu. Δίλαη ην θύξην ζύζηεκα γηα ηελ πινήγεζε ηνπ επηζθέπηε ζην δηθηπαθό καο ηόπν. Καηά θαλόλα εκθαλίδεηαη ζηελ ίδηα ζέζε, ζε θάζε ηζηνζειίδα ηνπ δηθηπαθνύ ηόπνπ, βνεζώληαο έηζη ζηνλ πξνζαλαηνιηζκό ηνπ επηζθέπηε. 36 Τν other menu. Δίλαη έλα επηπιένλ κελνύ, πνπ δίλεη πξόζζεηεο πιεξνθνξίεο θαη θαηεπζύλζεηο ζηνλ επηζθέπηε καο. Γελ είλαη αλάγθε λα εκθαλίδεηαη ζε όιεο ηηο ζειίδεο, θαη ε ηνπνζέηεζή ηνπ κπνξεί λα αιιάμεη. Γεύηεξν ζπζηαηηθό ζηνηρείν ηεο ζειίδαο καο, είλαη πεξηερόκελν, πιεξνθνξίεο θαη ελέξγεηεο πνπ έρνπλ ζρέζε κε ηνλ επηζθέπηε: είλαη εθεί πνπ ν επηζθέπηεο δίλεη ηε δηθή ηνπ ζπκκεηνρή ζην δηθηπαθό καο ηόπν (interactivity). Pathway. Δδώ ζεκεηώλεηαη ην ζηίγκαηνπ επηζθέπηε, πνύ βξίζθεηαη θάζε ζηηγκή, ζε ζρέζε κε ηελ θεληξηθή ζειίδα ηνπ site καο. Search. Ο επηζθέπηεο ηνπ δηθηπαθνύ καο ηόπνπ κπνξείλα αλαδεηήζεη ζε όιν ηνπ πεξηερόκελό ηνπ, κε βάζε θάπνηεο ιέμεηο-θιεηδηά, ην πνύ θαη αλ εκθαλίδεηαη θάπνηα πιεξνθνξία. 37 Polls. Τα γλσζηά δηαδηθηπαθά δεκνςεθίζκαηα, όπνπ νη επηζθέπηεο ελόο δηθηπαθνύ ηόπνπ εθθξάδνπλ ηε γλώκε ηνπο θαη ηνπνζεηνύληαη πάλσ ζε εξσηήκαηα πνπ ηνπο ζέηνπκε. Who is online. Πόζνη επηζθέπηεο θαη πνηα εγγεγξακκέλα κέιε είλαη απηή ζηε ζηηγκή ζπλδεδεκέλα κε θάπνηα από ηηο ζειίδεο ηνπ δηθηπαθνύ καο ηόπνπ. Login. Δίζνδνο ησλ εγγεγξακκέλσλ κειώλ ζε πεξηνρή πεξηερνκέλνπ κε ειεγρόκελε πξόζβαζε. Γπλαηόηεηα εγγξαθήο ελόο επηζθέπηε σο κέινπο ζηνλ ηζηόηνπό καο. 38 Feeds. Δίλαη αξθεηά δεκνθηιή ηνλ ηειεπηαίν θαηξό, γηαηί δίλνπλ ζε όζνπο ελδηαθέξνληαη ηε δπλαηόηεηα λα πιεξνθνξνύληαη γηα ην πξόζθαην πεξηερόκελν ηνπ site καο, ρσξίο λα ην επηζθεθζνύλ. Αθήζακε ζην ηέινο ην ζεκαληηθόηεξν, ην πεξηερόκελν ηεο ηζηνζειίδαο καο, ηα ζηνηρεία θαη είλαη ηα παξαθάησ, κε ηε ζεηξά πνπ εκθαλίδνληαη: Newsflash. Δδώ δεκνζηεύνπκε, κε ιίγα ιόγηα, εηδήζεηο ή πιεξνθνξίεο πνπ ζα ζέιακε ν αλαγλώζηεο λα πξνζέμεη, θαη απηό ηηο παξνπζηάδνπκε μερσξηζηά Δδώ παξνπζηάδνληαη, κε ηε κνξθή ηνπ ηίηινπ, νη ηειεπηαίεο δεκνζηεύζεηο (Latest news) θαζώο θαη απηέο πνπ έρνπλ ηελ κεγαιύηεξε αλαγλσζηκόηεηα (Popular) . 39 Αθήζακε ζην ηέινο ηνλ θύξην θνξκό ηεο ηζηνζειίδαο, απηό πνπ νλνκάδεηαη mainbody. Σην ρώξν απηό, ζε θάζε ζειίδα παξνπζηάδεηαη θαη θάπνην δηαθνξεηηθό πεξηερόκελν. Απηά είλαη ηα ζπζηαηηθά ηεο ζειίδαο καο. Παξαθάησ ζα δνύκε ην πσο κπνξνύκε έλα έλα απηά ηα ζπζηαηηθά λα ηα δηαρεηξηζηνύκε: λα αιιάμνπκε ην όλνκά ηνπο, ηελ εκθάληζή ηνπο, ηελ ηνπνζέηεζή ηνπο. 40 5.4 Expose Flash Gallery Η Expose είλαη κηα flash gallery ε νπνία καο επηηξέπεη λα δεκηνπξγήζνπκε επδηάθξηηεο επηδείμεηο θσηνγξαθηώλ θαη video ζηνλ ηζηό. Μεξηθά ραξαθηεξηζηηθά πεξηγξάθνληαη παξαθάησ: • Standard εγθαηάζηαζε κέζσ ηνπ joomla! Component installer. • Οη εηθόλεο θνξηώλνληαη θαη αλαπξνζαξκόδνληαη • Video Flash κπνξνύλ λα θνξησζνύλ • Πλεπκαηηθά δηθαηώκαηα θαη πδαηνζήκσλ κπνξνύλ λα πξνζηεζνύλ • Πξνζζήθε κηαο πεξηγξαθήο ζε θάζε ζπιινγή, album & εηθόλα • Πξνζαξκνγή ηνπ ζρεδηαγξάκκαηνο δηεπαθώλ, ησλ κεγεζώλ θαη ησλ εηθόλσλ θνπκπηώλ • Slide show Παξαθάησ πεξηγξάθνπκε αλαιπηηθά ην control panel ηεο δηεπαθήο θαζώο θαη ηελ δεκηνπξγία Albums θαη ηελ πξνζζήθε θσηνγξαθηώλ. 5.5 Εγκαηάζηαζη Forum Γηα ηελ δεκηνπξγία forum ππάξρεη ην SMF 1.1 Ver. 3 . Δίλαη πιήξσο ζπκβαηό κε ην Joomla θαη κπνξείο λα ην θάλεηο bridge ώζηε λα πάξεη από ηελ βάζε δεδνκέλσλ ηνπο users. Όκσο θάηη ηέηνην δελ ζεσξήζεθε ζσζηό γηαηί ππήξρε πξόβιεκα κε ην registration ηνλ users θαη ραινύζε ην interface ηνπ. Σηα παξαθάησ screenshot παξνπζηάδνπκε ηελ εγθαηάζηαζε. Αξρίδνπκε θηηάρλνληαο έλα θνπκπί ζην portal καο θαη ην θάλνπκε link κε ηνλ θαηάινγν πνπ έρνπκε θάλεη extract ην forum καο. Παηώληαο ην θνπκπί απηό αξρίδεη ε εγθαηάζηαζε. 41 Σην Forum name βάδνπκε ην όλνκα πνπ ζα εκθαλίδεηε θαη ζην Forum URL ηελ ζειίδα ηνπ forum καο. Μεγάιε πξνζνρή ρξεηάδεηαη ζην ζεκείν πνπ έρνπκε ππνγξακκίζεη κε θόθθηλν γηα ην UTF-8 Character Set λα είλαη ηηθαξηζκέλν γηα λα κπνξνύκε λα έρνπκε ηελ ππνζηήξημε ειιεληθώλ θαζώο θαη όηη ε βάζε καο είλαη ζε collation UTF-8. 42 Δδώ ξπζκίδνπκε ηελ βάζε καο βάδνληαο ην username ην password κε ηα νπνία θάλνπκε connect ζηνλ MySQL server θαη ην όλνκα ηεο βάζεο καο. Παηώληαο ην proceed πεγαίλνπκε ζην επόκελν βήκα πνπ είλαη ε δεκηνπξγία administrator account όπνπ βάδνπκε username θαη password θαζώο θαη ζην ηέινο ηνλ θσδηθό ζύλδεζεο κε ηελ βάζε γηα ιόγνπο αζθάιεηαο. Τέινο επηιέγνπκε λα ζβήζεη ην installation.php αξρείν θαη έρνπκε ηελ δεκηνπξγία ηνπ θαη ηελ εκθάληζε ηνπ. 43 ο Μέρος 2 Κεθάιαην 6 ν Δημιουργία Ιστότοπου 44 6.1 Απαηηήζεηο ηνπ Σπζηήκαηνο Τν πην ζεκαληηθό ζηνηρείν γηα λα πεηύρεη έλα site είλαη ε αλάιπζε θαη θαηαγξαθεί ησλ απαηηήζεσλ ηνπ. Με ηελ θαηαγξαθή θαη ηελ αλάιπζε έρνπκε ηελ γξήγνξε θαη απιή θαηαζθεπή ηνπ. Τν site έρεη ηνλ ηίηιν Σύζηεκα δηαρείξηζεο θαη ππνζηήξημεο Dial Up ζύλδεζεο. Από ηνλ ηίηιν καο έξρεηαη ε ζθέςε γηα έλα site πνπ ζα βνεζάεη ηνλ νπνηνδήπνηε ρξήζηε αζρέησο αλ γλσξίδεη ή όρη από ειεθηξνληθνύο ππνινγηζηέο λα θάλεη Dial Up ζύλδεζε ζηνλ ππνινγηζηή ηνπ. Με ηνπο αλζξώπνπο ηνπ θέληξνπ δηαρείξηζεο δηθηύνπ ηνπ ΤΔΙ Ηξαθιείνπ ζθεθηήθακε όηη ζα ππάξρνπλ νη παξαθάησ απαηηήζεηο από ην ζύζηεκα : Γεκηνπξγία εύρξεζηνπ portal κε ζέκα ηελ ππεξεζία Dial Up Απνκαθξπζκέλε δηαρείξηζε πεξηερνκέλνπ Οδεγίεο ζύλδεζεο modem Αίηεζε ζύλδεζεο λένπ ρξήζηε γηα dialup ζύλδεζε Δπηθνηλσλία ρξήζηε-θέληξνπ δηθηύνπ Δπηθνηλσλία ηνπ ζπζηήκαηνο δηαρείξηζεο dialup κε ηνλ ldap server Αιιαγή ηνπ password ηνπ ρξήζηε ζηνλ ldap server Τν ζύζηεκα καο πξνζθέξεη απνκαθξπζκέλν έιεγρν δηαρείξηζεο πεξηερνκέλνπ. Από νπνηνδήπνηε ειεθηξνληθό ππνινγηζηή θαη κε κηα ζύλδεζε ζην internet κπνξεί θάπνηνο λα εηζέιζεη ζηελ ζειίδα θαη λα ηελ δηαρεηξηζηή. Η αλάξηεζε θάπνηνπ άξζξνπ ζηελ ζειίδα είλαη απιή. Όια ηα δεδνκέλα βξίζθνληαη ζε κία βάζε δεδνκέλσλ. Πίζσ από ηελ ζειίδα βξίζθεηαη έλα δπλαηό control panel όπσο ζα δνύκε θαη παξαθάησ. 45 6.2 Αξρηηεθηνληθή ηεο βάζεο Η βάζε δεδνκέλσλ είλαη ε θαξδηά ηνπ ζπζηήκαηνο καο. Δθεί απνζεθεύνληαη όια ηα πξάγκαηα πνπ έρεη ην site επάλσ αιιά θαη από εθεί αληινύληαη όια ηα ζηνηρεία. Ο θάθεινο πνπ πεξηέρεη ηελ βάζε πνπ απνηειείηαη από πίλαθεο είλαη ζηνλ server κε ην όλνκα data. Φαξαθηεξηζηηθή πίλαθεο πνπ βξίζθνληαη ζηελ βάζε καο είλαη νη αθόινπζνη: • Πίλαθαο jos_banner: Ο πίλαθαο απηόο πεξηέρεη ηηο θαηαρσξήζεηο ησλ δηαθεκίζεσλ. Τα πεδία απηήο ηεο βάζεο είλαη ην name ,type, clicks, imageurl, clickurl, date θαη showbanner. • Πίλαθαο jos_bannerclient: Ο πίλαθαο απηόο πεξηέρεη ηα ζηνηρεία ηνπ ηδηνθηήηε ηεο δηαθήκηζεο. Τα πεδία είλαη name, contact θαη email. • Πίλαθαο jos_categories: Σηνλ πίλαθα απηόλ θαηαρσξνύληαη νη θαηεγνξίεο πνπ έρνπκε ζην site. Τα πεδία ηεο βάζεο απηήο είλαη title, name, image θαη image position, section , date, description θαη published. • Πίλαθαο jos_components: Σηελ βάζε απηή θαηαρσξνύληαη ηα component πνπ έρνπκε είζαγεη. Τα πεδία ηεο είλαη name, link, admin_menu_link, admin_menu_alt, admin_menu_img, ordering θαη option • Πίλαθαο jos_contact_details: Πεξηέρεη ηεο πιεξνθνξίεο πνπ παξνπζηάδνληαη όηαλ παηάκε ην θνπκπί ΕΠΙΚΟΙΝΩΝΙΑ. Πεδία ηεο είλαη name, address, state, country, postcode, telephone, fax, misc info, email θαη image position • Πίλαθαο jos_contents: Σηνλ πίλαθα απηόλ θαηαγξάθνληαη όια ηα θείκελα πνπ δεκνζηεύνπκε ζηελ ηζηνζειίδα καο • Πίλαθαο jos_content_frontpage θαη jos_rating : Σηνλ πξώην πίλαθα ππάξρνπλ ηα πεδία content_id θαη ordering όπνπ κπαίλνπλ ηα id θάζε content πνπ ζα παξνπζηηάδνληαη ζηελ αξρηθή ζειίδα ηνπ site θαζώο θαη κε πνία ζεηξά. Σηνλ δεύηεξν πίλαθα απνζεθεύεηαη ην rating θάζε content αλάινγα κε ηα clicks. • Πίλαθαο jos_core_acl_aro, jos_core_acl_aro_groups, jos_core_acl_aro_sections, jos_core_acl_groups_aro_map. Σηνπο παξαπάλσ πίλαθεο ππάξρνπλ νη users θαη ηα επίπεδα πξόζβαζεο πνπ ζα εκθαλίδνληαη κέζα ζηνλ control panel γηα λα κπνξεί ν Super Administrator λα θαζνξίζεη ηνλ ηύπν ηνπ θάζε user. • Πίλαθαο jos_core_log_items: Δδώ ππάξρνπλ ηα log items, δειαδή πιεξνθνξίεο γηα ηα logins ζην site αιιά θαη ζην control panel. • Πίλαθαο jos_groups: Δδώ ππάξρνπλ ηα ζηνηρεία ησλ groups πνπ κπνξνύλ λα βιέπνπλ έλα content. 46 • Πίλαθαο jos_mambots: Δδώ θαηαρσξνύληαη όια ηα ζηνηρεία ησλ mambots. Τα πεδεία ηεο βάζεο απηήο είλαη name, element, folder, published θαη client_id • Πίλαθαο jos_menu: Δδώ ππάξρνπλ όια ηα menu πνπ έρνπκε βάιεη ζην site. Τα πεδία ηεο βάζεο είλαη menutype, name, link ,type, published, componentid, ordering θαη params. • Πίλαθαο jos_messages θαη jos_messages_cfg: Δδώ ππάξρνπλ όια ηα κελύκαηα πνπ ζηέιλνληαη ζηνλ Super Administrator θαηά ηελ εηζαγσγή ελόο content. Πεδία ηεο βάζεο είλαη ην user_id_from, user_id_to, folder_id, date_time θαη message • Πίλαθαο jos_module: Σε απηόλ ηνλ πίλαθα ππάξρνπλ ηα modules πνπ έρνπκε εηζάγεη. Πεδία ηεο βάζεο απηήο είλαη title, ordering, position, module θαη published. • Πίλαθαο jos_module_menu: Απηόο ν πίλαθαο ππάξρεη γηα λα εκθαλίδεη ηα module ζην control panel. • Πίλαθαο jos_newsfeeds: Σε απηόλ ηνλ πίλαθα θαηαρσξνύληαη όιεο νη πιεξνθνξίεο γηα ην newsflash πνπ εκθαλίδνληαη ζηελ frontpage. Τα πεδία ηεο βάζεο απηήο είλαη name, link, published θαη ordering. • Πίλαθαο jos_poll_data, jos_poll_date, jos_poll_menu θαη jos_polls: Οη πίλαθεο απηνί ρξεζηκνπνηνύληαη γηα ηηο ςεθνθνξίεο. • Πίλαθαο jos_sections: Δδώ ππάξρνπλ ηα sections γηα θάζε θαηεγνξία menu. Πεδία ηνπ πίλαθα απηνύ είλαη title, name, description, ordering θαη published. • Πίλαθαο jos_session: Ο πίλαθαο απηόο ππάξρεη γηα θαηαρσξνύληαη θαη εκθαλίδνληαη ζην control panel πνηνη έρνπλ θάλεη login. • Πίλαθαο jos_template_position θαη jos_template_menu: Σηνπο πίλαθεο απηνύο ππάξρνπλ ηα ζηνηρεία ησλ template πνπ ρξεζηκνπνηνύκε ζην site θαζώο θαη ηελ δνκή ηνπ θάζε template. • Πίλαθαο jos_users: Σηνλ πίλαθα απηό θαηαρσξνύληαη νη users πνπ έρνπλ εγγξαθή ζην site. Τα πεδία ηεο βάζεο είλαη name, username, email, password, usertype, block, sendEmail, register Date , lastvisit Date θαη activation. • Πίλαθαο jos_usertypes: Δδώ ππάξρνπλ ηα πεδία πξόζβαζεο ησλ users. • Πίλαθαο jos_weblinks: Σηνλ πίλαθα απηόλ ππάξρνπλ όιεο νη πιεξνθνξίεο γηα ηα Links πνπ κπαίλνπλ ζην αληίζηνηρν section. Πεδία ηεο βάζεο απηήο είλαη title, url, description, date, hits, published θαη ordering 47 6.3 Administrator Control Panel Μπαίλνληαο ζην control panel ε εηθόλα πνπ βιέπνπκε είλαη ε αθόινπζε : Αο αλαθεξζνύκε ιίγν ζηα θνπκπηά πνπ ππάξρνπλ ζην θέληξν ηνπ control panel. Σην πξώην θνπκπί βιέπνπκε ην εηθνλίδην κπνξνύκε λα πξνζζέζνπκε έλα λέν άξζξν. . Παηώληαο ην Τν επόκελν έρεη ζρέζε κε ηελ ηνπνζέηεζε ηνπ άξζξνπ. Παηώληαο ην 48 θνπκπί καο δίλεη ηελ δπλαηόηεηα λα δηαρεηξηζηνύκε ηα άξζξα γηα ην αλ ζέινπκε λα εκθαλίδνληαη θαη πνύ. Τν επόκελν θνπκπί καο δίλεη ηελ δπλαηόηεηα λα δηαρεηξηζηνύκε ηελ ζειίδα πνπ εκθαλίδεηαη κε ην πνπ εηζέιζνπκε ζην site. Τν θνπκπί πνπ αθνινπζεί είλαη ην ελόηεηεο. Με ην θνπκπί ηηο ελόηεηεο. Με ην .Δθεί δεκηνπξγνύκε ηηο δεκηνπξγνύκε ηηο θαηεγνξίεο πνπ ζα ρσξίζνπκε ειέγρνπκε ηηο θσηνγξαθίεο. Με ην δηαρεηξηδόκαζηε όια ηα menu πνπ απαξηίδνπλ ηελ ζειίδα καο όπσο ην main menu , user menu , other menu θαη ην top menu.. 49 Με ην θνπκπί δηαιέγνπκε ηελ γιώζζα πνπ ζέινπκε λα ρξεζηκνπνηήζνπκε ζην site καο αιιά θαη ζην control panel ηνπ administrator. Τν επόκελν θνπκπί είλαη ην ζειίδαο. ζην νπνίν βιέπνπκε ηνπο ρξήζηεο ηεο Τειεπηαίν θνπκπί είλαη ην ζην νπνίν έρνπκε ηελ δπλαηόηεηα λα ξπζκίζνπκε δηάθνξα όπσο αλ ην site είλαη ππό θαηαζθεπή ή ην όλνκα πνπ ζα καο εκθαλίδεηαη ην site. 50 6.4 Σρεδίαζε ηνπ site Μεηά ηελ εγθαηάζηαζε ηνπ joomla ε εηθόλα πνπ βιέπνπκε είλαη : Μέζα από ην admin control panel επηιέγνπκε Installers -> Template site θαη επηιέγνπκε ην template πνπ καο αξέζεη. Αθνύ θάλνπκε απηό παηάκε ην θνπκπί EDIT CSS όπνπ θαη θηηάρλνπκε ηελ γξακκαηνζεηξά, ηα ρξώκαηα ην ύςνο ησλ γξακκάησλ, ην background ρξώκα, ην ύθνο ησλ θνπκπηώλ, θαη ηηο δηαζηάζεηο ηνπ site. Έηζη επηιέμακε θαη εκείο template θαη ην site καο βξίζθεηαη ζηελ κνξθή πνπ απεηθνλίδεη ε παξαθάησ εηθόλα : 51 Ξεθηλώληαο από ηελ αξρηθή ζειίδα ζρεδηάζακε ην main menu ηνπνζεηώληαο 6 menu γηα ηνλ ρξήζηε. Τα νλόκαηα πνπ ζα θαίλνληαη ηα νξίζακε κέζα από menu manager. Γεκηνπξγήζακε ηελ αξρή, ηηο ξπζκίζεηο, ηελ αίηεζε, ηελ επηθνηλσλία, ηνπο ζπλδέζκνπο, θαη ην θόλην. Η επόκελε εηθόλα καο δείρλεη πσο έγηλε ε δεκηνπξγία απηώλ. 52 Η επόκελε εηθόλα δείρλεη ην απνηέιεζκα ηεο δεκηνπξγίαο. Σπλερίδνληαο ηελ δεκηνπξγία ηεο αξρηθήο ζειίδαο πξνζζέζακε ηα modules ώξα, polls, ηελ είζνδν γηα ηνπο ρξήζηεο θαη ην πόζνη ρξήζηεο είλαη online. Τέινο πξνζζέζακε 2 άξζξα ζηελ αξρηθή ζειίδα ηα νπνία είλαη ελεκεξσηηθά γηα ηνλ ρξήζηε γηα λα γλσξίδεη ηη ρξεηάδεηαη λα έρεη από εμνπιηζκό γηα λα θάλεη dial up ζύλδεζε θαη γηα ην ηη είλαη ν ldap. Έηζη ε αξρηθή καο ζειίδα έρεη θηηαρηεί. Σηελ ζπλέρεηα εξρόκαζηε λα θηηάμνπκε ην main menu πνπ δεκηνπξγήζακε θαη βιέπνπκε ζηελ εηθόλα. 53 Σην article manager δεκηνπξγνύκε ηη ζέκαηα ζέινπκε λα πεξηέρνληαη κέζα ζηηο ελόηεηεο ηνπ main menu. Σηηο ξπζκίζεηο ζα βάινπκε εηθόλεο θαη βήκαηα ηα νπνία ζα θαζνδεγνύλ ηνλ ρξήζηε γηα ην πώο ζα δεκηνπξγήζεη dial-up ζηνλ ππνινγηζηή ηνπ. Σηνπο ζπλδέζκνπο ζα ηνπνζεηήζνπκε δηάθνξα ρξήζηκα links γηα ηνπο ρξήζηεο. Σην θόλην ηνπνζεηνύκε δηάθνξα ρξώκαηα γηα ην template καο. Ο ρξήζηεο ζα κπνξεί λα επηιέμεη ην ρξώκα ηεο αξεζθείαο ηνπ. Δίλαη κηα ηερληθή ε νπνία βνεζάεη ηελ ζειίδα καο λα είλαη πην επράξηζηε ζηνλ ρξήζηε γηαηί επηιέγεη ην ρξώκα πνπ ηνπ αξέζεη. Η παξαθάησ θσηνγξαθία δείρλεη ην article manager από ην νπνίν έγηλαλ όια ηα παξαπάλσ. Όζνλ αθνξά ηώξα ηελ αίηεζε θαη ηελ επηθνηλσλία ρξεηάζηεθαλ γηα λα δεκηνπξγεζνύλ θάπνηνη θώδηθεο. Οη θώδηθεο απηνί είλαη γξακκέλε κε γιώζζα HTML θαη JavaScript. Ο θώδηθαο πνπ αθνινπζεί είλαη γηα λα δεκηνπξγεζνύλ ηα πεδία γηα ηελ αίηεζε πνπ κπνξεί λα θάλεη ν θάζε ρξήζηεο γηα λα ηνπ δνζεί password ώζηε λα κπνξεί λα θάλεη dial up ζύλδεζε από ην ζπίηη ηνπ κέζσ ηνπ θέληξνπ δηαρείξηζεο ηνπ ΤΔΙ Ηξαθιείνπ. 54 <tr> <td width="100%" align="left"> <div class="formFields"> <label for="PF101">Ολνκαηεπώλπκν</label><span class="performs_required"> *</span><br /> <input type="text" name="textItem1" class="inputbox" accesskey="1" size="35" id="PF101" tabindex="101"> <div class="performs_help">Πιεθηξνινγήζηε ην Ολνκαηεπώλπκό ζαο</div> </div> </td> </tr> <tr> <td width="100%" align="left"> <div class="formFields"> <label for="PF102">Γηεύζπλζε</label><span class="performs_required"> *</span><br /> <input type="text" name="textItem2" class="inputbox" accesskey="2" size="40" id="PF102" tabindex="102"> <div class="performs_help">Πιεθηξνινγήζηε ηελ Γ/λζή ζαο</div> </div> </td> </tr> <tr> <td width="100%" align="left"> <div class="formFields"> <label for="PF102">E-mail</label><span class="performs_required"> *</span><br /> <input type="text" name="textItem9" class="inputbox" accesskey="2" size="40" id="PF102" tabindex="102"> <div class="performs_help">Πιεθηξνινγήζηε ην E-mail ζαο</div> </div> </td> </tr> <tr> 55 <td width="100%" align="left"> <div class="formFields"> <label for="PF103">Τειέθσλν</label><span class="performs_required"> *</span><br /> <input type="text" name="textItem3" class="inputbox" accesskey="3" size="10" id="PF103" tabindex="103"> <div class="performs_help">Πιεθηξνινγήζηε ην ηειέθσλό ζαο</div> </div> </td> </tr> <tr> <td width="100%" align="left"> <div class="formFields"> <label for="PF104">Αξ. Μεηξώνπ (Μόλν γηα ζπνπδαζηέο)</label><br /> <input type="text" name="textItem4" class="inputbox" accesskey="4" size="6" id="PF104" tabindex="104"> <div class="performs_help">Πιεθηξνινγήζηε ηνλ αξηζκό κεηξώνπ ζαο κόλν αλ είζηε πξνπηπρηαθόο ζπνπδαζηήο</div> </div> </td> </tr> <tr> <td width="100%" align="left"> <div class="formFields"> <label for="PF105">Ιδηόηεηα</label><br /> <select type="select" name="textItem5[]" class="inputbox" accesskey="5" size="1" tabindex="105" id="PF105">\n<option value="Δθπαηδεπηηθόο" selected>Δθπαηδεπηηθόο</option> <option value="Γηνηθεηηθόο">Γηνηθεηηθόο</option> <option value="ΔΤΠ">ΔΤΠ</option> <option value="Ωξνκίζζηνο">Ωξνκίζζηνο</option> <option value="Σπνπδαζηήο">Σπνπδαζηήο</option> <option value="Μεηαπηπρηαθόο">Μεηαπηπρηαθόο</option> <option value="Δμ. Σπλεξγάξεο">Δμ. Σπλεξγάηεο</option> 56 <option value="Αιιν">Αιιν</option> </select> <div class="performs_help">Δπηιέμηε ηελ ηδηόηεηά ζαο</div> </div> </td> </tr> <tr> <td width="100%" align="left"> <div class="formFields"> <label for="PF106">Τκήκα</label><br /> <select type="select" name="textItem6[]" class="inputbox" accesskey="6" size="1" tabindex="106" id="PF106">\n<option value="Λνγηζηηθήο">Λνγηζηηθήο</option> <option value="Γηνίθεζεο Δπηρεηξήζεσλ">Γηνίθεζεο Δπηρεηξήζεσλ</option> <option value="Τνπξηζηηθώλ Δπηρεηξήζεσλ">Τνπξηζηηθώλ Δπηρεηξήζεσλ</option> <option value="Πνιηηηθώλ Γνκηθώλ Έξγσλ">Πνιηηηθώλ Γνκηθώλ Έξγσλ</option> <option value="Ννζειεπηηθήο">Ννζειεπηηθήο</option> <option value="Θεξκνθεπηαθώλ Καιιηεξγηώλ & Αλζνθνκίαο">Θεξκνθεπηαθώλ Καιιηεξγηώλ & Αλζνθνκίαο</option> <option value="Φπηηθήο Παξαγσγήο">Φπηηθήο Παξαγσγήο</option> <option value="Κνηλσληθήο Δξγαζίαο">Κνηλσληθήο Δξγαζίαο</option> <option value="Δθαξκνζκέλεο Πιεξνθνξηθήο & Πνιπκέζσλ">Δθαξκνζκέλεο Πιεξνθνξηθήο & Πνιπκέζσλ</option> <option value="Μεραλνινγίαο">Μεραλνινγίαο</option> <option value="Ηιεθηξνινγίαο">Ηιεθηξνινγίαο</option> <option value="Παξαθαιώ Δπηιέμηε Τκήκα" selected>Παξαθαιώ Δπηιέμηε Τκήκα</option> </select> <div class="performs_help">Δπηιέμηε ην Τκήκα, ζην νπνίν αλήθεηε (Μόλν γηα Δθπ/θνύο, Σπνπδαζηέο)</div> </div> </td> </tr> <tr> <td width="100%" align="left"> 57 <div class="formFields"> <label for="PF107">Δμάκελν Δηζαγσγήο</label><br /> <input type="text" name="textItem7" class="inputbox" accesskey="7" size="5" id="PF107" tabindex="107"> <div class="performs_help">Πιεθηξνινγήζηε ην εμάκελν εηζαγσγήο ζαο ζην ΤΔΙ (πρ. ην εαξηλό 2007:2007Δ ελώ ην ρεηκεξηλό 2007:2007Φ). Τν Πεδίν ζπκπιεξώλεηαη κόλν από ζπνπδαζηέο </div> </div> </td> </tr> <tr> <td width="100%" align="left"> <div class="formFields"> <label for="PF108">Δπηζπκεηό όλνκα Φξήζηε</label><br /> <input type="text" name="textItem8" class="inputbox" accesskey="8" size="10" id="PF108" tabindex="108"> <div class="performs_help">Πιεθηξινγήζηε ην επηζπκεηό όλνκα ρξήζηε κε πεδνύο ιαηηληθνύο ραξαηήξεο. (Οη Σπνπδαζηέο δελ ζπκπιεξώλνπλ απηό ην πεδίν)</div> </div> </td> </tr> <tr> <td width="100%" align="left"> <div class="formFields"> <label for="PF110">Σρόιηα - Παξαηεξήζεηο</label><br /> <textarea type="textarea" name="textItem10" class="inputbox" accesskey="1" cols="40" rows="5" tabindex="110" id="PF110"></textarea> <div class="performs_help">Πιεθηξνινγήζηε ηπρόλ παξαηεξήζεηο ή ζρόιηα ζρεηηθά κε ηελ ππεξεζία</div> </div> </td> 58 Τν απνηέιεζκα από ηνλ θώδηθα απηό κπνξνύκε λα ην δνύκε ζηελ εηθόλα πνπ αθνινπζεί: Γηα λα ζηαιεί ε αίηεζε ζαο ζα ρξεηαζηεί λα ηξέρεη έλαο θώδηθαο ζε PHP. Ο θώδηθαο απηόο ζα είλαη : <?php $ToEmail = '[email protected]'; $EmailSubject = 'Aithsh dialup '; $mailheader = "From: ".$_POST["email"]."\r\n"; $textItem1 = $_POST['textItem1']; // getting the value of name $textItem2 = $_POST['textItem2']; $textItem9 = $_POST['textItem9']; $textItem3 = $_POST['textItem3']; 59 if(!$textItem1) { echo("Σπκπιεξώζηε ην πεδίν κε ην Ολνκαηεπώλπκν ζαο!"); exit; } elseif(!$textItem2) { echo("Σπκπιεξώζηε ην πεδίν κε ηελ Γηεπζπλζή ζαο!"); exit; } elseif(!$textItem9) { echo("Σπκπιεξώζηε ην πεδίν κε ην Email ζαο!"); exit; } elseif(!$textItem3) { echo("Σπκπιεξώζηε ην πεδίν κε ην Τειεθσλό ζαο!"); exit; } elseif((!strstr($textItem9,"@") || !strstr($textItem9,"."))) { echo("Έρεηε βάιεη ιάζνο Email!"); exit; } $textItem4 = $_POST['textItem4']; $textItem5 = $_POST['textItem5']; $textItem6 = $_POST['textItem6']; $textItem7 = $_POST['textItem7']; $textItem8 = $_POST['textItem8']; $textItem10 = $_POST['textItem10']; $email_body = "Name = " . $textItem1 . " , Address = " . $textItem2 . " , Email = " . $textItem9 . " , Phone = " . $textItem3 . " , N.mhtrwou = " . $textItem4 . " , Idiothta = " . $textItem5 . " , Tmhma = " . $textItem6 . " , Examhno = " . $textItem7 . " , Username = " . $textItem8 . " , Sxolia " . $textItem10; $url = 'http://www.venus.cs.teicrete.gr~dialup/'; if(mail($ToEmail, $Emailsubject,$email_body, $mailheaders)) echo("Η αίηεζε ζαο ζηάιζεθε θαλνληθά.Δπραξηζηνύκε!"); else echo("Η αίηεζε δελ ζηάιζεθε.Ξαλαπξνζπαζήζηε."); ?> 60 Γηα ηελ επηθνηλσλία ηώξα ζα ρξεηαζηεί αλάινγνο θώδηθαο γηα λα δεκηνπξγεζνύλ ηα πεδία κε ηα νπνία ν ρξήζηεο κπνξεί λα έρεη θάπνηα ζπλνκηιία κε ηνλ administrator ηνπ θέληξνπ δηαρείξηζεο ηνπ δηθηύνπ γηα ηελ επίιπζε ησλ πξνβιεκάησλ πνπ ηνλ απαζρνινύλ. Ο θώδηθαο είλαη ν παξαθάησ : <form action="contact.php" method="post"> <div class="contact_email"> <label for="contact_name"> Πιεθηξνινγήζηε ην όλνκα: </label> <br /> <input type="text" name="name" id="contact_name" size="30" class="inputbox" value="" /> <br /> <label for="contact_email"> E-Mail: </label> <br /> <input type="text" name="email" id="contact_email" size="30" class="inputbox" value="" /> <br /> <label for="contact_subject"> Θέκα κελύκαηνο: </label> <br /> <input type="text" name="subject" id="contact_subject" size="30" class="inputbox" value="" /> <br /><br /> <label for="contact_text"> Πιεθηξνινγήζηε ην κήλπκα: </label> <br /> <textarea cols="50" rows="10" name="text" id="contact_text" class="inputbox"></textarea> <br /> <br /> <input type="button" name="send" value="Απνζηνιή" class="button" onclick="validate()" /> </div> 61 To απνηέιεζκα αθνινπζεί πνπ ζα πάξνπκε θαίλεηαη ζηελ εηθόλα πνπ Ο θώδηθαο γηα λα ζηείιεη ηελ θόξκα επηθνηλσλίαο ζην email ηνπ administrator ηνπ θέληξνπ δηαρείξηζεο δηθηύνπ είλαη γξακκέλνο ζε php θαη είλαη ν παξαθάησ : <?php // You'll need to change this variable to whatever e-mail address // you want PHP to send it to. $ToEmail = "[email protected]"; // Find the variables from the HTML form, and make them into // PHP variables. Note how the name attribute of each tag // is reflected in the variable. 62 $email = $_POST['email']; //E-Mail Address $name = $_POST['name']; //Name $text = $_POST['text']; //Message // Set the subject of the e-mail $subject = "Contact Form Message from $name"; // Next, we want to validate the fields. // If a field is blank, return an error if(!$text||!$name||!$email) { echo("Σπκπιεξώζηε όια ηα πεδία."); exit; } // If the e-mail address is not vaild, return an error // This is rather complicated, basically it just checks for the // presence of a "@" and a dot elseif((!strstr($email,"@") || !strstr($email,"."))) { echo("Έρεηε δώζεη ιάζνο ην Email ζαο!"); exit; } // E-Mails have headers; metadata that is sent describing the // content of the e-mail. For our purposes, we shall include // one header - the sender's e-mail address. $headers = "From: $email"; // The form is valid, now send out the e-mail. // This uses the mail() function. It takes three main variables: // $to - the recipent // $subject - the subject // $content - the content // $headers - the headers if(mail($ToEmail, $subject, $text, $headers)) echo("Τν κήλπκα ζηάιζεθε.Δπραξηζηνύκε"); else echo("Τν κήλπκα δελ ζηάιζεθε. "); ?> 63 6.5 Σύλδεζε Ldap server κε ην Σύζηεκα Βξηζθόκαζηε ζην πην ζεκαληηθό θνκκάηη ηεο πινπνίεζεο ηνπ ζπζηήκαηνο θαη απηό δελ είλαη άιιν από ηελ ζύλδεζε ηνπ ήδε ππάξρνλ ldap server κε ην ζύζηεκα δηαρείξηζεο ηεο ππεξεζίαο dialup. Σηνλ ldap server ππάξρνπλ θαηαρσξεκέλνη πνιινί users κε όια ηα ζηνηρεία ηνπο όπσο email, δηεπζύλζεο, ηειέθσλα ηδηόηεηα ηνπο θ.α. Δκείο απηό πνπ ζέινπκε είλαη ν ρξεζηεο πνπ ππάξρεη θαηαρσξεκέλνο ζηνλ ldap λα κπνξεί λα θάλεη login ζην site θαη λα ηνπ δίλεηε ε δπλαηόηεηα λα αιιάμεη ην password ηνπ. Σπλεπώο κπνξεί θαη ν ρξήζηεο ν νπνίνο ζα θάλεη κία αίηεζε γηα dialup ζύλδεζε κέζσ ηνπ site καο λα παίξλεη ην password ηνπ από ην θέληξν δηαρείξηζεο ηνπ δηθηύνπ θαη ζπγθεθξηκέλα από ηνλ administrator θαη λα θάλεη login ζην site θαη λα έρεη ηελ δπλαηόηεηα λα αιιάμεη ην password πνπ ηνπ δόζεθε ζηνλ ldap server. Πξώηνλ γηα λα επηθνησλήζεη ην ζύζηεκα καο κε ηνλ ldap server ρξεηάδνληαη νη εμήο ξπζκίζεηο : Host : ldaps://server2.nmc.teicrete.gr Port : 636 LDAP V3 : Yes Authorisation Method : Blind and Search Base DN : ou=people,dc=example,dc=com Search String : uid = [search] User’s DN :uid = [username],ou=people,dc=example,dc=com Map:Full Name : fullName Map :E-mail : mail Map:User ID : uid Μπνξνύκε λα δνύκε θαη ηελ παξαθάησ εηθόλα κέζα από ην control panel παηώληαο ην θνπκπί Extensions > Plugin Manager > Authentication-LDAP 64 65 Με απηέο ηηο ξπζκίζεηο έρνπκε πεηύρεη ηελ ζύλδεζε ηνπ ζπζηήκαηνο καο κε ηνλ ldap server. Απηό πνπ έρεη απνκείλεη είλαη λα κπνξέζεη ν ρξήζηεο λα αιιάμεη θαη ην password ηνπ θαη όρη κόλν λα θάλεη login ην νπνίν κπνξεί λα θάλεη κε ηελ ζύλδεζε. Γηα λα πεηύρνπκε απηό πξέπεη λα αιιάμνπκε ην αξρείν components/com_user/views/user/temp1/form.php θαη λα ην ηξνπνπνηήζνπκε κε ηνλ παξαθάησ θώδηθα php : 66 function change_ldappass_go($cp_oldpass, $cp_newpass) { global $username, $ldapsmb_object, $force_smb_sync, $ldap_server, $ldap_protocol_version, $ldap_base_dn, $ldap_password_field, $ldap_user_field, $query_dn, $query_pw, $ldap_filter, $bind_as_user, $ldap_bind_as_manager, $ldap_manager_dn, $ldap_manager_pw, $change_ldapsmb, $mkntpwd, $ldapsmb_ntpassword, $ldapsmb_lmpassword, $change_smb, $smb_host, $smb_passwd, $debug; $Messages = array(); if ($debug) { array_push($Messages, 'Connecting to LDAP Server'); } $ds=ldap_connect($ldap_server); if (! $ds) { array_push($Messages, _("Can't connect to Directory Server, please try later!")); return $Messages; } if (function_exists( 'ldap_set_option')) { if (! @ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION,$ldap_protocol_version)) { array_push($Messages, _("Unable to set LDAP bind protocol version.")); if ($debug) { array_push($Messages, htmlspecialchars("LDAP bind protocol version: $ldap_protocol_version")); } return $Messages; } else { if ($debug) { array_push($Messages, htmlspecialchars("LDAP protocol version was set to $ldap_protocol_version")); } } } $dn="$ldap_user_field=$username,$ldap_base_dn"; if ($bind_as_user) { if (! @ldap_bind($ds,$dn,$cp_oldpass)) { //if we can't bind as the user then the old passwd must be wrong array_push($Messages, _("Your old password is not correct.")); if ($debug) { array_push($Messages, 'LDAP bind failed.', htmlspecialchars("BIND-DN: $dn")); } return $Messages; } else { if ($debug) { array_push($Messages, 'LDAP bind successful.', htmlspecialchars("BIND-DN: $dn")); } } elseif ($ldap_bind_as_manager) { 67 // Now, if needed, we rebind as the manager so we can read passwords and make changes. if (! @ldap_bind($ds,$ldap_manager_dn,$ldap_manager_pw)) { array_push($Messages, _("LDAP bind failed.")); if ($debug){ array_push($Messages, htmlspecialchars("BIND-DN: $ldap_manager_dn")); } return $Messages; } else { if ($debug) { array_push($Messages, 'LDAP bind successful.', htmlspecialchars("BIND-DN: $ldap_manager_dn")); } } } $newpass="{SSHA}".ldap_ssha_passwd($cp_newpass); if ($debug) { array_push($Messages, htmlspecialchars("New Password: $newpass")); } $newinfo=array(); $newinfo[$ldap_password_field][0]=$newpass; if (isset($info[0]['objectclass'])) { $objects = $info[0]['objectclass']; array_walk($objects,'lcp_arraytolower'); } else { // failsafe for missing objectclass data $objects = array(); } if ($change_ldapsmb && in_array($ldapsmb_object,$objects) && ($force_smb_sync || sqgetGlobalVar('sync_smb_pass',$sync_smb_pass,SQ_POST))) { $exe = "$mkntpwd " . escapeshellarg($cp_newpass) . " 2>&1" ; if ($debug) array_push($Messages,$exe); $retarray = array(); $retval = 1; $ntString = exec($exe, $retarray, $retval); if ($debug) $Messages = array_merge($Messages,$retarray); if ( $retval == "0" && preg_match("/^[0-9A-F]+:[0-9A-F]+$/",$ntString )) { list($lmPassword, $ntPassword) = explode (":", $ntString); $newinfo[$ldapsmb_ntpassword] = $ntPassword; $newinfo[$ldapsmb_lmpassword] = $lmPassword; } else { // could not generate ntlm passwords array_push($Messages,_("Could not generate NTLM password hashes!")); if (!empty($retarray)) { $retmsg = implode("\n",$retarray); array_push($Messages,sprintf(_("Error: %s"),htmlspecialchars($retmsg))); } return $Messages; 68 } } if (@ldap_modify($ds,$dn,$newinfo)) { $smb=0; if ($change_smb && ($force_smb_sync || sqgetGlobalVar('sync_smb_pass',$sync_smb_pass,SQ_POST))) { // First we print three lines in stdin $exe = 'echo -e ' . escapeshellarg($cp_oldpass . "\\n" . $cp_newpass . "\\n" . $cp_newpass); // then pipe to smbpasswd $exe.= " | $smb_passwd "; // add remote machine name if (!empty($smb_host)) { $exe.= '-r ' . escapeshellarg($smb_host); } // add username, get passwords from stdin (-s), redirect output to stdout $exe.= " -U " . escapeshellarg($username) . " -s 2>&1"; // Save used command for debugging if ($debug) { array_push($Messages,$exe); } // initial values $retarr = array(); $retval = 1; // exec returns last line, but we don't need it. Same line is stored in $retarr exec($exe,$retarr,$retval); // Check $retval. 0 = success, 1 = failure if ($retval) { // push $retarr to $Messages foreach($retarr as $retline) { array_push($Messages, htmlspecialchars($retline)); } } else { $smb=1 ; if ($debug) { foreach($retarr as $retline) { array_push($Messages, htmlspecialchars($retline)); } } } } else { $smb=1; } if ($smb) { // load sqm_baseuri() function for SM 1.4.0-1.4.5 include_once(SM_PATH . 'functions/display_messages.php'); $base_uri = sqm_baseuri(); // Write new cookies for the password $onetimepad = OneTimePadCreate(strlen($cp_newpass)); 69 $_SESSION['onetimepad']=$onetimepad; //do I need to do this now? $key = OneTimePadEncrypt($cp_newpass, $onetimepad); $_COOKIES['key']=$key; setcookie("key", $key, 0, $base_uri); // Give feedback if password change was successful. if (! $debug) { array_push($Messages, _("Password changed successfully")); return $Messages ; } return $Messages; } else { //smbpasswd change failed so we must re sync the ldap password back to its original $newinfo[$ldap_password_field][0]=$storedpass; if (@ldap_modify($ds,$dn,$newinfo)) { array_push($Messages, _("SMB Password change was not successful, so LDAP not changed!")); } else { array_push($Messages, _("Due to numerous password modification errors your LDAP and SMB passwords are out of sync. Please contact your administrator.")); } return $Messages; } } else { array_push($Messages, _("LDAP Password change was not successful!")); if ($debug) array_push($Messages, _("LDAP ERROR => " . ldap_error($ds))) ; return $Messages; } } /** * Generate a salted SHA1 pw. * @param string $clean_pw * @param string $salt * @return string */ function ldap_ssha_passwd($clear_pw,$salt=null) { if (!isset($salt)){ // set seed for the random number generator mt_srand((double)microtime()*1000000); $salt = substr(md5(mt_rand()), 4, 8); } if(function_exists('sha1')) { $hash = pack("H*",sha1($clear_pw . $salt)); } else if (function_exists('mHash')) { $hash = mHash(MHASH_SHA1, $clear_pw . $salt); } else { echo "Error: You will need php >= 4.3.0 or php compiled with MHASH if you are going to use SHA or SSHA passwords."; exit(); } return base64_encode($hash . $salt); } 70 ο Κεφάλαιο 7 υντήρηση 71 7.1 Backup και Restore Ασηόμαηα Δίλαη κία από ηηο πην ζεκαληηθέο ιεηηνπξγίεο ζε έλα site. Μπνξείηε λα αλαινγηζηείηε ηεο ζπλέπεηεο πνπ ζα ππήξραλ αλ γηα νπνηαδήπνηε ιόγσ ν server πνπ είρακε ην site crashαξηδε. Θα ραλόληνπζαλ αξθεηέο ώξεο δνπιείαο αιιά θαη ζεκαληηθά θείκελα. Δπηιέμακε γη’ απηό ηνλ ιόγσ έλα freeware εξγαιείν πιήξσο ζπκβαηό κε ην Joomla!. Δίλαη ην JoomlaCloner ην νπνίν ζρεδηάζηεθε γηα λα παξάγεη backup ζε νπνηνδήπνηε Joomla site κέζσ ηνπ administrator control panel θαη είλαη ζε ζέζε λα ην κεηαθέξεη ζε θάπνην ρώξν ώζηε λα απνζεθεπηεί θαη αξγόηεξα λα απνθαηαζηαζεί πιήξσο ην site καο βάζε ελόο script. Παξαθάησ ζα δνύκε κεξηθά ραξαθηεξηζηηθά ηνπ πξνγξάκκαηνο καο: Backup: • Γεκηνπξγία πιήξνπο ή κεξηθώλ backup βαζηζκέλα ζην αξρηθό καο • Γεκηνπξγία ZIP ή TAR backup βαζηζκέλα ζην configuration πνπ έρνπκε επηιέμεη • Γπλαηόηεηα λα απνθιίζνπκε components, modules & mambots από ηνλ παξαγόκελν θιώλν καο • Γπλαηόηεηα λα απνθιίζνπκε θαθέινπο ή αξρεία από ηνλ θιώλν καο είηε manual είηε από ηα settings ηνπ πξνγξάκκαηνο • Γπλαηόηεηα λα απνζεθεπηνύλ νη θιώλνη είηε ζηνλ server είηε λα κεηαθεξζνύλ ζε θάπνην άιιν server ή locally κε έλα FTP πξόγξακκα. • Γπλαηόηεηα λα δηαρεηξηζηνύκε ηα backup καο δειαδή rename/delete/move • Σηελ configuration πεξηνρή κπνξνύκε λα δεκηνπξγήζνπκε backup βάζε ησλ δπλαηνηήησλ ησλ server θαη λα επηιέμνπκε λα δεκηνπξγεζεί ην backup ρξεζηκνπνηώληαο κόλν php γηα λα επηηαρύλνπκε ηα πξάγκαηα. 72 Restore: • Ο παξαγκέλνο θιώλνο κπνξεί λα απνθαηαζηαζεί ζε έλαλ ζπλνιηθά δηαθνξεηηθό server, κε λέν server θαη mysql ιεπηνκέξεηεο • Απηόκαηε δηαδηθαζία re-write ησλ λέσλ ραξαθηεξηζηηθώλ ηνπ host ζην αξρείν δηακόξθσζεο • Γπλαηόηεηα λα απνθιείζνπκε ηελ βάζε δεδνκέλσλ καο από ην αξρείν Όπσο βιέπνπκε ζην παξαθάησ ζρήκα έρνπκε αλνίμεη ην configuration file ηνπ JoomlaCloner θαη ξπζκίδνπκε ζην Backup Path ηελ δηαδξνκή πνπ ζέινπκε λα απνζεθεύνληαη ηα αξρεία. Σην tab Zip Path θαη Mysqldump path μεηηθάξνπκε ηα Archive ώζηε λα κελ ρξεηάδεηαη ν server καο λα ππνζηεξίδεη ZIP θαη mysqldump ιεηηνπξγίεο. 73 7.2 Μεηαθνξά site ζε άιιν server Γηα πνιινύο ιόγνπο κπνξεί θάπνηνο λα απνθαζίζεη ηε κεηαθνξά ηνπ site ζε έλα λέν server. Δίλαη βαζηθό λα πξνζέμεη θαλείο ηα ραξαθηεξηζηηθά ηνπ λένπ πξηλ θαηαιήμεη ζηελ απόθαζε απηή, ώζηε λα είλαη πξάγκαηη θηιηθό ην παθέην πξνο ην Joomla. Η δηαδηθαζία πεξηγξάθεηαη κε ηα παξαθάησ 6 βήκαηα: Βήκα 1: Αληίγξαθν αζθαιείαο! Τν πξώην πξάγκα πνπ πξέπεη λα θάλνπκε, είλαη ελα εθεδξηθό αληίγξαθν γηα όια ηα αξρεία απν ηε Joomla εγθαηάζηαζε. Γεκηνπξγνύκε έλαλ θάθειν (livesite) ζην ηνπηθό ζύζηεκά ζαο, θαη θαηεβάδνπκε όια ηα αξρεία ζε εθείλν ηνλ θάθειν ρξεζηκνπνηώληαο ηελ FTP εθαξκνγή ζαο . Βήκα 2: Εμαγωγή ηεο βάζεο Σ’ απηό ην βήκα πξάγκαηη ζα βνεζεζείο αξθεηά αλ είλαη εγθαηεζηεκέλν ζην server ζνπ ην phpMyAdmin. Αθνύ βεβαησζνύκε όηη ην αξρείν SQL πεξηέρεη όιεο ηηο απαξαίηεηεο εληνιέο SQL γηα ηε δεκηνπξγία ησλ πηλάθσλ ηεο βάζεο δεδνκέλσλ θαη ηελ πιήξσζε ηνπο κε ηα ζηνηρεία καο. Τέινο λα βεβαησζνύκε όηη εμάγνπκε νιόθιεξε ηελ βάζε δεδνκέλσλ. ( Με αλνηρηή ηε βάζε κέζσ phpMyAdmin επηιέγνπκε εμαγσγή. Καιύηεξα ε εμαγσγή λα γίλεη ζε sql. Δλεξγνπνηνύκε ηελ Απνζηνιή θαη επηιέγνπκε ηύπν ζπκπίεζεο ή όρη, αλ είλαη κηθξή ε βάζε) . Βήκα 3: Ρύζκηζε ηνπ configuration.php Απηό ην βήκα είλαη πνιύ ζεκαληηθό. Πεγαίλνπκε ζην θάθειν ζην ηνπηθό ζύζηεκά καο ζην νπνίν έρνπκε θαηεβάζεη ηα αξρεία ηνπ Joomlasite ζαο!. Σηνλ θύξην θάθειν πνπ δεκηνπξγήζαηε (root), ζα βξείηε ην αξρείν κε όλνκα "configuration.php". Αλνίγνπκε απηό ην αξρείν κε έλαλ θεηκελνγξάθν θαη θάλνπκε ηηο απαξαίηεηεο αιιαγέο. Λνγηθά, ζα πξέπεη λα αιιάμνπκε ηηο αθόινπζεο παξακέηξνπο: • $mosConfig_absolute_path: Απηή είλαη ε απόιπηε δηαδξνκή ηνπ server ζηε λέν Joomla καο! εγθαηάζηαζε. Θα κνηάδεη πηζαλώο θάηη ζαλ "/path/to/joomla/installation" (Με Plesk ερεη ηε κνξθή /home/httpd/vhosts/domain.gr/httpdocs) . • $mosConfig_cachepath: Απηή είλαη ε απόιπηε δηαδξνκή ηνπ server πξνο ην Joomla/cache. Θα κνηάδεη πηζαλώο θάηη ζαλ "/path/to/joomla/installation/cache" (Με Plesk έρεη ηε κνξθή /home/httpd/vhosts/domain.gr/httpdocs/cache). • $mosConfig_live_site: Απηό είλαη url ζαο . Θα είλαη θάηη ζαλ "http://www.joomla.com". • $mosConfig_host: Απηή είλαη ε ζέζε ηνπ server πνπ θηινμελείηαη ε MySQL βάζε δεδνκέλσλ ζαο. Σηηο πεξηζζόηεξεο πεξηπηώζεηο είλαη "localhost". 74 • $mosConfig_db: Απηό είλαη ην όλνκα ηεο MySQL βάζεο δεδνκέλσλ ζαο. • $mosConfig_user: Απηό είλαη ην όλνκα ηνπ ρξήζηε ηεο βάζεο (user name). • $mosConfig_password: Απηόο είλαη ν θσδηθόο ηεο MySQL βάζεο δεδνκέλσλ ζαο . Βήκα 4: Αλεβάδνπκε ηα αξρεία ζην λέν server Φξεζηκνπνηώληαο κηα ftp εθαξκνγή (CuteFTP-FileZilla-WSftp), αλεβάδνπκε όια ηα αξρεία ζηε ζέζε ηνπ λένπ server πνπ ζέινπκε λα εγθαηαζηήζεηε ην Joomla!. Βήκα 5: Δεκηνπξγία λέαο βάζεο Μέζα από ην Control Panel ηνπ λένπ καο server δεκηνπξγνύκε κηα λέα βάζε θαη έλα ρξήζηε. Πξηλ ηελ εγθαηάζηαζε, αιιάδνπκε ηηο ξπζκίζεηο ηνπ collation ζε utf8_general_ci κέζσ ηνπ phpMyAdmin. (ALTER DATABASE nanedb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci όπνπ namedb ην όλνκα ηεο βάζεο). Βήκα 6: Είζνδνο ηωλ ζηνηρείωλ ζηελ λέα MySQL βάζε Από ην παξάζπξν εξσηήκαηνο > Δηζαγσγή αξρείσλ. Φξεζηκνπνηώληαο ην phpMyAdmin θαη ην ην sql αξρείν πνπ είρακε θάλεη εμαγσγή ζην 2ν βήκα θάλνπκε εηζαγσγή ηεο παιηάο καο βάζεο ζηε λέα. Δπηγξακκαηηθά Σην παξαθάησ θείκελν ζα αλαθέξνπκε ηελ ρξήζε ηνπ site. Γηα λα κπνύκε ζηελ ζειίδα καο γξάθνπκε ην link http://venus.cs.teicrete.gr/~dialup/ θαη καο αλνίγεη ηελ ζειίδα καο. Κάλνληαο login κπνξνύκε λα πξνζζέζνπκε θείκελν θαη θάπνην link κηαο ζειίδαο παξεκθεξέο πεξηερνκέλνπ ή γεληθνύ ελδηαθέξνληνο. Παηώληαο ηελ επηινγή ηνπ menu καο Καηαρώξεζε θεηκέλνπ καο αλνίγεη ηελ ζειίδα θαη αξρίδνπκε λα πξνζζέηνπκε ην θείκελν καο. Αθνύ ηειεηώζνπκε ηελ πιεθηξνιόγεζε παηάκε ην θνπκπί θαη ην θείκελν καο πάεη γηα έγθξηζε ώζηε λα δεκνζηεπηεί. Παξόκνηα γίλεηε θαη ε θαηαρώξεζε web link κόλν πνπ εδώ δελ ρξεηάδεηαη έγθξηζε. Πίζσ από ηελ ζειίδα καο ππάξρεη έλα ηζρπξό administrator control panel. Γηα λα δεη θάπνηνο ην panel πξέπεη λα γξάςεη http://venus.cs.teicrete.gr/~dialup/administrator/ θαη γηα λα θάλνπκε login γξάθνπκε ζαλ username : admin θαη password : **** . Γηα λα πξνζζέζνπκε θείκελν παηάκε ην θνπκπί Add Content γξάθνπκε ην θείκελν θαη παηάκε ην θνπκπί θαη ην θείκελν καο έρεη γίλεη published. Γηα λα δηαγξάςνπκε έλα θείκελν πεγαίλνπκε από ην Menu bar Contenet -> All Content Items. Δπηιέγνπκε ηελ δεκνζίεπζε θαη παηάκε ην θνπκπί . Όπσο έρνπκε αλαθέξεη θαη πην πάλσ γηα ηελ επηηπρία κηαο ηζηνζειίδαο πξέπεη λα ππάξρεη θαη ην Αξρείν Γεκνζηεύζεσλ ώζηε έλαο ρξήζηεο λα επαλέξρεηαη ζηελ ζειίδα κόλν θαη κόλν γηα ην αξρείν ηεο. Γηα λα δεκηνπξγήζνπκε έλα κελνύ θάλνπκε ηα εμήο βήκαηα. Πεγαίλνπκε ζην menu bar θαη επηιέγνπκε menu -> menu manager . Παηάκε "New", θαη δίλνπκε ην όλνκα ηνπ 75 menu, θαζώο θαη ην όλνκα ηνπ module πνπ ζα αληηζηνηρεί ζε απηό. Παηάκε "Save". Μέζα από ην menu > tomenumas (όπνπ tomenumas είλαη ην κελνύ πνπ δεκηνπξγήζακε) κπνξνύκε λα νξίζνπκε πνηα ζηνηρεία (menu items) ζα ππάξρνπλ ζην κελνύ απηό. Γηα λα πξνζζέζνπκε έλα module ή έλα component ζηελ ζειίδα καο πεγαίλνπκε ζην menu bar θαη επηιέγνπκε Installers -> Components θαη κεηα παηάκε ην θνπκπί Browse, βξίζθνπκε ην αξρείν πνπ ζέινπκε παηάκε open θαη ηέινο παηάκε Upload File And Install. Αλάινγα ηώξα ηη component έρνπκε εγθαηαζηήζεη δεκηνπξγνύκε θαη ηα απαξαίηεηα link κε κελνύ button θηι Γηα λα θξαηήζνπκε Backup πεγαίλνπκε ζην menu bar θαη επηιέγνπκε components -> Joomla Cloner. (ζει.69). Παηώληαο ην θνπκπί Generate Backup, επηιέγνπκε ην tab File Option θαη ζην θελό γξάθνπκε ην όλνκα ηνπ αξρείνπ καο θαη ηέινο παηάκε continue. Σπκπεξάζκαηα Καηάθεξα λα πινπνηήζσ ηελ δηαρείξηζε πνπ κνπ δεηήζεθε έζησ θαη αλ αληηκεηώπηζα νξηζκέλεο δπζθνιίεο ,γηαηί πηπρηαθή εξγαζία ρσξίο δπζθνιίεο θαη πξνβιήκαηα δελ ππάξρεη. Δίκαη επραξηζηήκελνο από ηελ ηειηθή κνξθή πνπ έρεη ε ζειίδα καο. ΄Δκαζα λα θαηαζθεπάδσ sites όκνξθα, εύρξηζηα αιιά θαη νπζηαζηηθά πξνο ηνλ ρξήζηε. Φξεζηκνπνίεζα θώδηθα PHP, HTML θαη JavaScript ηνπο γηα ηελ πινπνίεζε ηεο δηαρείξηζεο. Ωο ζπνπδαζηήο ηνπ ηκήκαηνο Δθαξκνζκέλεο Πιεξνθνξηθήο & Πνιπκέζσλ ηνπ Α.Τ.Δ.Ι Ηξαθιείνπ γλώξηδα ηελ γξάθε θαη ηνλ ηξόπν πνπ ιεηηνπξγνύλ νη θώδηθεο ράξε ζηνπο θαζεγεηέο πνπ είρα ζην ηκήκα κνπ θαη ηνπο επραξηζηώ γη’απηό. Μέζα από ηελ πηπρηαθή εξγαζία καζαίλεηο πνιιά πξάγκαηα πνπ ζα βνεζήζνπλ αξγόηεξα ζηελ επαγγεικαηηθή ζηαδηνδξνκία. Τέινο ειπίδσ κε ηελ δηαρείξηζε πνπ πινπνίεζα θαη ην site λα βνεζήζσ όινπο ηνπο ζπνπδαζηέο πνπ ζέινπλ λα θάλνπλ ζύλδεζε dial up κε ην θέληξν δηαρείξηζεο δηθηύνπ ηνπ Α.Τ.Δ.Ι Ηξαθιείνπ. Δπραξηζηώ όινπο όζνπο βνήζεζαλ ζηελ πινπνίεζε ηεο πηπρηαθήο κνπ εξγαζία θαη πάλσ απ’όια ηνλ θαζεγεηή κνπ θ.Βαζηιάθε πνπ ήηαλ πνιύ ζπλεξγάζηκνο. 76 Βιβλιογραθία Ελληνική Βιβλιογραθία Μάζεηε PHP, MySQL θαη APACHE Όια ζε Έλα, MELONI J Luke Wellig θαη Laura Thomson “Αλάπηπμε Web Δθαξκνγώλ κε PHP θαη MySQL” Ξενόγλωζζη Βιβλιογραθία PHP 4 Bible ζπγγξαθείο: Converse, Tim Joomla! Book ζπγγξαθείο: Scotweb.com Real World ASP.NET: Building a Content Management System ζπγγξαθείο: Stephen R. G. Fraser Πηγές από ηο διαδίκησο • www.php.net • www.mysql.com • www.w3schools.com • www.phpfreaks.com • www.joomla.org • www.myjoomla.gr • www.openldap.org • www.gracion.com/server/whatldap.html • www.noc.auth.gr/manuals/ldap/ldap/index 77