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

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

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

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

XAMPP Apache MySQL PHP javascript xampp

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

databases linux - terminal (linux / windows terminal)

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

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

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

NetBeans και σχετικά προγράμματα. Κακαρόντζας Γεώργιος Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ 1ο Θερινό Σχολείο Κώδικα

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

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

Εγχειρίδιο χρήσης δικτυακού τόπου του προγράμματος, ΆΞΟΝΑΣ 3: "Ποιότητα ζωής στις αγροτικές περιοχές και διαφοροποίηση της αγροτικής οικονομίας"

Java & Java EE 1o Μέρος: Servlets και Java Server Pages. Κακαρόντζας Γεώργιος

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

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

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

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

Εργαστήριο «Βάσεις Οικολογικών Δεδομένων και Εφαρμογές»

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

Συνοπτικός Οδηγός Χρήσης του MySQL Workbench

Βάσεις δεδομένων (Access)

Δημιουργία συναλλασσόμενου στην Γενική Λογιστική και αυτόματη σύνδεση του με λογαριασμό Πελάτη ή Προμηθευτή.

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

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

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

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

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

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

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

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

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

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

PHP/MySQL και Project

Web Programming for Dummies

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

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

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

Οδηγός Εγκατάστασης Pylon Auto Moto Cube

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

Σχεδιασμός των Πινάκων μίας Βάσης Δεδομένων

Οδηγίες για τη Χρήση του Google Drive

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

Πίνακας περιεχομένων. Περιεχόμενα ΕΓΓΡΑΦΗ ΝΕΟΥ ΧΡΗΣΤΗ 1 ΣΥΝΔΕΣΗ ΧΡΗΣΤΗ 4 ΔΙΑΧΕΙΡΙΣΤΙΚΟ ΧΡΗΣΤΗ ΤΑ ΣΤΟΙΧΕΙΑ ΜΟΥ 5 ΝΕΑ ΑΙΤΗΣΗ 6

Vodafone Business Connect

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

Δημιουργία ιστοσελίδας με. Wordpress - Βασικές λειτουργίες

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Οδηγίες Ενεργοποίησης Λογαριασμού URegister για Φοιτητές

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

YourSMS User s Manual

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

7 Βήματα για δημιουργία Ιστοτόπου Ιστολογίου

Τα προγράμματα σε ASP που χρησιμοποιήθηκαν για την υλοποίηση της διαχείρισης των μαθημάτων.

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Κοινών Πόρων

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Εφαρμογή Βάσης Δεδομένων για την Εθελοντική Αιμοδοσία στο ΑΤΕΙ-Θ. Αρ. Μητρώου: 06/3083

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

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

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

Οδηγίες για την Ηλεκτρονική Υποβολή των Δηλώσεων Φορολογικής

Οδηγός Εισαγωγή Χρηστών σε LDAP Server με χρήση. LdapAdmin TEMPLATE

Epsilon Net PYLON Platform

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Εθνική Σχολή Δημόσιας Υγείας Υγειονομική Σχολή Αθηνών Οδηγός Υποβολής. Ηλεκτρονική Υποβολή Αιτήσεων για τα Μεταπτυχιακά Προγράμματα Σπουδών

Γνωρίστε το Excel 2007

Εθνική Σχολή Δημόσιας Υγείας Υγειονομική Σχολή Αθηνών Οδηγός Υποβολής. Ηλεκτρονική Υποβολή Αιτήσεων για τα Μεταπτυχιακά Προγράμματα Σπουδών

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

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

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού

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

Αναλυτικά Φύλλα Μισθοδοσίας

Η Απάντηση. Φύλλο Εργασίας. Μηνύματα

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

Εγχειρίδιο Χρήσης. για ΟΙΚΟΝΟΜΙΚΟΥΣ ΦΟΡΕΙΣ

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

Εγχειρίδιο Χρήσης. Εφαρμογής Αιτήσεων Σίτισης για το ΤΕΙ Αθήνας. Έκδοση 2η

Προγραμματιστικό Περιβάλλον

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΛΟΓΑΡΙΑΣΜΩΝ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΛΛΗΛΟΓΡΑΦΙΑΣ ( accounts)

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

Η HTML χρησιμοποιεί εντολές που ονομάζονται HTML tags δίνοντας εντολές στους Web browsers για το πώς να εμφανίζουν την κάθε ιστοσελίδα.

Βάσεις Δεδομένων. Εργαστήριο 1. Ηλεκτρονικοί Υπολογιστές ΙI. Ακαδημαϊκό Έτος Διαφάνεια 1. Κάπαρης Αναστάσιος

Διαδικασία εγγραφής σχολείου στην Ηλεκτρονική Πύλη Επαγγελματικής Μάθησης

Γενικά. Change Reference

Βάσεις δεδομένων (Access)

Υπολογισμός και αποστολή Αναλυτικής Περιοδικής Δήλωσης

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

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

Απλά, γρήγορα, σωστά ΒΑΣΙΚΕΣ Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΥΠΗΡΕΣΙΩΝ

Ανάκτηση Κωδικού URegister για Νεοεισαχθέντες Φοιτητές

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

Στο παράθυρο που θα εµφανιστεί πατήστε το κουµπί Unzip.

Εθνική Σχολή Δημόσιας Υγείας Υγειονομική Σχολή Αθηνών Οδηγός Υποβολής

Transcript:

Εργαστήριο 9 Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Στόχος Στόχος του εργαστηρίου είναι η εκμάθηση των βασικών εργασιών στην MySQL και η εξοικείωση με το περιβάλλον του εργαλείου διαχείρισης phpmyadmin. Προετοιμασία περιβάλλοντος εργασίας Ξεκινήστε το XAMPP και ξεκινήστε (Start) τις υπηρεσίες: Apache και MySQL Πατήστε το πλήκτρο [Admin] δίπλα στην MySQL και θα ανοίξει το περιβάλλον διαχείρισης των βάσεων δεδομένων phpmyadmin. 1 Δρ.

phpmyadmin Αυτό είναι το περιβάλλον διαχείρισης των βάσεων δεδομένων phpmyadmin: Βάσεις Δεδομένων Κεντρική Περιοχή Εργασίας Το phpmyadmin μπορούμε να το ανοίξουμε με δύο τρόπους: a) Μέσα από το XAMPP με το πλήκτρο [Admin] στην υπηρεσία MySQL b) Από οποιονδήποτε browser στη διεύθυνση http://localhost/phpmyadmin 2 Δρ.

Δημιουργία νέας Βάσης Δεδομένων Σε αυτή την άσκηση θα δημιουργήσουμε μία νέα βάση δεδομένων, με ονομασία lab9data. Στο phpmyadmin πατήστε στην επιλογή [Νέα], που βρίσκεται στο αριστερό μενού, στην κορυφή των βάσεων δεδομένων που υπάρχουν ήδη. Δώστε ως όνομα lab9data και πατήστε το πλήκτρο [Δημιουργία]. Η νέα μας βάση θα πρέπει εμφανιστεί στο αριστερό μενού, και προς το παρόν είναι άδεια. 3 Δρ.

Δημιουργία Πίνακα σε μία Βάση Δεδομένων Σε αυτό το βήμα θα δημιουργήσουμε έναν καινούργιο πίνακα με ονομασία users στην βάση δεδομένων lab9data που μόλις δημιουργήσαμε. Τον νέο πίνακα users που θα δημιουργήσουμε θέλουμε να τον χρησιμοποιήσουμε για να αποθηκεύουμε τα στοιχεία χρηστών που εγγράφονται σε μία ιστοσελίδα μέσω μίας φόρμας, σαν αυτή που φτιάξαμε στο Εργαστήριο 8. Επομένως, για τον νέο πίνακα θα χρειαστούμε τα ακόλουθα πεδία: id firstname lastname username password gender Το πρώτο πεδίο id θα είναι το Πρωτεύων Κλειδί (Primary Key) του πίνακά μας, και θα έχει τη μορφή ενός ακέραιου αριθμού με αυτόματη αρίθμηση (Auto Increment). Δηλαδή, κάθε νέα εγγραφή στον πίνακα θα παίρνει αυτόματα έναν σειριακό αριθμό, ξεκινώντας από το 1 και αυξανόμενο κάθε φορά. Επομένως οι εγγραφές θα παίρνουν ως κλειδί τις τιμές 1, 2, 3, κλπ. Στην MySQL ο κατάλληλος τύπος για αυτό το κλειδί είναι BIGINT. Τα πεδία firstname, lastname, username και password θα αποθηκεύουν Strings. Στην MySQL ο κατάλληλος τύπος για αυτά τα πεδία είναι VARCHAR, ενώ θα πρέπει να δώσουμε και το μέγιστο μήκος που μπορούν να έχουν αυτά τα πεδία. Για τις ανάγκες αυτής της άσκησης θα δώσουμε μήκος 100 χαρακτήρων. Τέλος, το πεδίο gender θα παίρνει ακέραιες τιμές (1: Άνδρας, 2: Γυναίκα). Στην MySQL ο τύπος λέγεται INT. Επομένως, θα χρειαστούμε συνολικά 6 πεδία. Για να δημιουργήσετε τον νέο πίνακα, θα επιλέξετε αρχικά την νέα βάση δεδομένων που μόλις δημιουργήσαμε (lab9data) στο αριστερό μενού. Στη συνέχεια θα επιλέξετε την καρτέλα [Δομή] η οποία μας εμφανίζει του πίνακες που περιέχει η βάση μας. Προς το παρόν θα είναι άδεια. Στην επιλογή [Δημιουργία πίνακα] θα πρέπει να δώσουμε το όνομα του νέου πίνακα και το πλήθος των πεδίων που θα έχει. Δώστε ως όνομα users και σαν αριθμό στηλών 6, όπως φαίνεται παρακάτω: 4 Δρ.

Θα σας εμφανίζει μία φόρμα με 6 θέσεις για να συμπληρώσετε τα χαρακτηριστικά του κάθε πεδίου του πίνακα. Σαν πρώτο πεδίο ορίστε: Όνομα: id Τύπος: BIGINT Ευρετήριο: PRIMARY (εδώ θα σας εμφανίσει ένα popup, απλά πατήστε [Εκτέλεση]) A_I: τσεκάρετε αυτή την επιλογή (σημαίνει Auto Increment Αυτόματη Αύξηση) Μην πειράξετε άλλη ρύθμιση εκτός από αυτές. 5 Δρ.

Σαν δεύτερο πεδίο ορίστε: Όνομα: firstname Τύπος: VARCHAR Μήκος/Τιμές: 100 (αυτό είναι το μέγιστο μήκος χαρακτήρων του πεδίου) Μην πειράξετε άλλη ρύθμιση εκτός από αυτές. Με τον ίδιο τρόπο (όπως το firstname) ορίστε και τα πεδία lastname, username και password (δηλαδή VARCHAR 100) Τέλος, ορίστε το έκτο πεδίο: Όνομα: gender Τύπος: INT Μην πειράξετε άλλη ρύθμιση εκτός από αυτές. Αφού βεβαιωθείτε ότι έχετε συμπληρώσει όλα τα στοιχεία των 6 πεδίων σωστά, πηγαίνετε στο κάτω μέρος της σελίδας και πιέστε το πλήκτρο [Αποθήκευση]. Ο νέος πίνακας θα πρέπει να εμφανιστεί στο αριστερό μενού, κάτω από το όνομα της βάσης μας. Στην καρτέλα [Δομή] φαίνεται η δομή των πεδίων του πίνακα. Θα πρέπει να είναι όπως φαίνεται παρακάτω: 6 Δρ.

Στην καρτέλα [Περιήγηση] φαίνονται τα περιεχόμενα του πίνακα (οι γραμμές του). Προς το παρόν ο πίνακάς σας θα είναι άδειος, όπως φαίνεται παρακάτω: Τώρα λοιπόν έχουμε μία βάση δεδομένων και έναν πίνακα στον οποίον είμαστε έτοιμοι να εισάγουμε εγγραφές. Αυτό θα το κάνουμε από μία φόρμα όπως αυτή που φτιάξαμε στο προηγούμενο εργαστήριο. 7 Δρ.

Άσκηση 9a Θυμηθείτε: α) ότι θα σώζετε όλα τα αρχεία των ασκήσεων στον φάκελο C:\xampp\htdocs και β) ότι θα εμφανίζετε τις όλες τις σελίδες (και τις HTML και τις PHP) στον browser σας μέσω της διεύθυνσης http://localhost/<όνομα αρχείου> Σε αυτή την άσκηση θα σχεδιάσουμε την ίδια φόρμα που φτιάξαμε και στο προηγούμενο εργαστήριο, δηλαδή μία φόρμα που ο χρήστης εισάγει τα παρακάτω στοιχεία: Όνομα Επώνυμο Username Password Retype password Φύλο (Άνδρας ή Γυναίκα) Όροι χρήσης (checkbox συμφωνίας) Θα την δημιουργήσουμε όμως με έναν πολύ πιο δομημένο τρόπο από πλευράς κώδικα. Συγκεκριμένα, θα χωρίσουμε τον κώδικα σε 4 αρχεία, τα εξής: page9.php page9_form.php page9_register.php lab9_library.php Το κεντρικό αρχείο κώδικα θα είναι το page9.php. Στο αρχείο lab9_library.php θα βάλουμε κοινές βοηθητικές συναρτήσεις. Στο αρχείο page9_form.php θα μεταφέρουμε τα κομμάτια του κώδικα που θα τρέχουν για την εμφάνιση της φόρμας στον χρήστη. Τέλος στο αρχείο page9_register.php θα γράψουμε τον κώδικα που θα τρέχει όταν έχουν συμπληρωθεί σωστά όλα τα στοιχεία της φόρμας και ο χρήστης πατήσει το πλήκτρο [Εγγραφή]. Ας φτιάξουμε τα 4 αρχεία. 8 Δρ.

Δημιουργήστε το αρχείο lab9_library.php με το παρακάτω περιεχόμενο: <?php function PostValue($key, $emptyvalue){ if (key_exists($key, $_POST)) { $value = $_POST[$key]; } else { $value = $emptyvalue; } return $value; } function ErrorExit($message){ echo "<p>σφάλμα: {$message}</p>\n"; echo "<p><a href=\"page8a.html\">επιστροφή</a></p>\n"; exit; }?> function AddError($message){ global $data_ok, $error_message; $error_message.= "{$message}</br/>\n"; $data_ok = false; } Ο κώδικας είναι ίδιος με τη βιβλιοθήκη που φτιάξαμε στο προηγούμενο εργαστήριο, με μία μόνο αλλαγή. Στην συνάρτηση PostValue προσθέσαμε μία 2η παράμετρο, την $emptyvalue. Αυτή η παράμετρος μας επιτρέπει να ορίζουμε τι τιμή θα μας επιστρέφει η PostValue όταν δεν έχει αποσταλεί η ζητούμενη τιμή από την φόρμα (δεν υπάρχει δηλαδή στον πίνακα $_POST). Αυτό το χρειαζόμαστε ώστε να διαφοροποιήσουμε τη συμπεριφορά της PostValue στις περιπτώσεις των μεταβλητών τύπου String και τις μεταβλητές τύπου Integer. Για τις μεταβλητές τύπου String επιθυμούμε συνήθως να επιστρέφουμε το κενό string "" σε περίπτωση που δεν έχει αποσταλεί καμία τιμή. Για τις μεταβλητές τύπου Integer συνήθως επιθυμούμε να επιστρέφουμε την τιμή 0 σε περίπτωση που δεν έχει αποσταλεί καμία τιμή. 9 Δρ.

Δημιουργήστε το κεντρικό αρχείο page9.php με το παρακάτω περιεχόμενο: <?php include_once 'lab9_library.php'; $data_ok = false; $error_message = ""; $method = $_SERVER['REQUEST_METHOD']; $firstname = PostValue("firstname", ""); $lastname = PostValue("lastname", ""); $username = PostValue("username", ""); $passwordfirst = PostValue("passwordfirst", ""); $passwordsecond = PostValue("passwordsecond", ""); $gender = PostValue("gender", 0); $agreeterms = PostValue("agreeterms", 0); if ($method == "POST") { //Ο χρήστης υπέβαλε την φόρμα $data_ok = true; //Έλεγχοι ορθότητας των στοιχείων if ($firstname == "") AddError("Δεν γράψατε όνομα!"); if ($lastname == "") AddError("Δεν γράψατε επίθετο!"); if ($username == "") AddError("Δεν γράψατε όνομα χρήστη!"); if ($passwordfirst == "") AddError("Δεν γράψατε password!"); if (strlen($passwordfirst) < 8) AddError("Το password πρέπει να έχει τουλάχιστον 8 χαρακτήρες!"); if ($passwordfirst!= $passwordsecond) AddError("Δεν ξαναγράψατε σωστά το password!"); if ($gender == 0) AddError("Δεν επιλέξατε φύλο!"); if ($agreeterms == 0) AddError("Δεν συμφωνήσατε με τους όρους χρήσης!"); }?> <html> <head> <meta charset="utf-8" /> <title>εγγραφή χρήστη</title> </head> <body> <h1>εγγραφή νέου χρήστη</h1> <?php if ($data_ok) { //ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΟΛΟΙ ΟΙ ΕΛΕΓΧΟΙ ΕΙΝΑΙ ΕΠΙΤΥΧΕΙΣ //ΕΜΦΑΝΙΣΕ ΤΟ ΑΡΧΕΙΟ page9_register.php include_once 'page9_register.php'; } else { //ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΥΠΑΡΧΕΙ ΕΣΤΩ ΚΑΙ ΕΝΑ ΛΑΘΟΣ, //ΕΜΦΑΝΙΣΕ ΤΟ ΑΡΧΕΙΟ page9_form.php include_once 'page9_form.php'; }?> </body> </html> 10 Δρ.

Παρατηρήστε την 2η παράμετρο που δίνουμε στην κλήση της συνάρτηση PostValue. Για τις μεταβλητές $firstname, $lastname, $username, $passwordfirst και $passwordsecond θέλουμε να επιστρέφεται το κενό string "" εάν δεν βρεθεί τιμή. Αντίθετα, για τις μεταβλητές $gender και $agreeterms θέλουμε να επιστρέφεται η τιμή 0 εάν δεν βρεθεί τιμή. Παρατηρήστε ότι αντίστοιχα έχουμε αλλάξει τους ελέγχους για τις τιμές των μεταβλητών τύπου Integer σε if ($gender == 0)... if ($agreeterms == 0)... εφόσον πλέον η τιμή 0 θεωρείται ως κενή. Η σημαντικότερη όμως αλλαγή σε αυτό το αρχείο (σε σχέση με το προηγούμενο εργαστήριο) είναι ότι έχει γίνει πολύ πιο καθαρός και κατανοητός ο κώδικας στο κύριο μέρος της σελίδας, μέσα στο <body> της HTML. Παρατηρήστε ότι πλέον δεν έχουμε αναλυτικά όλες τις περιπτώσεις το ίδιο αρχείο, αλλά έχουμε μία πολύ απλή δομή κώδικα όπως παρακάτω: <?php if ($data_ok) { //ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΟΛΟΙ ΟΙ ΕΛΕΓΧΟΙ ΕΙΝΑΙ ΕΠΙΤΥΧΕΙΣ //ΕΜΦΑΝΙΣΕ ΤΟ ΑΡΧΕΙΟ page9_register.php include_once 'page9_register.php'; } else { //ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΥΠΑΡΧΕΙ ΕΣΤΩ ΚΑΙ ΕΝΑ ΛΑΘΟΣ, //ΕΜΦΑΝΙΣΕ ΤΟ ΑΡΧΕΙΟ page9_form.php include_once 'page9_form.php'; }?> Εδώ λοιπόν ελέγχουμε τις δύο διακριτές περιπτώσεις. Εάν όλα τα δεδομένα της φόρμας έχουν συμπληρωθεί σωστά τότε κάνουμε include το αρχείο page9_register.php (για να ολοκληρωθεί η διαδικασία εγγραφής). Εάν η φόρμα είναι άδεια ή υπάρχουν σφάλματα, τότε κάνουμε include το αρχείο page9_form.php (το οποίο εμφανίζει την φόρμα στον χρήστη). Στα επόμενα βήματα θα υλοποιήσουμε τα 2 αυτά βοηθητικά αρχεία, στα οποία ουσιαστικά έχουμε μεταφέρει όλον τον αντίστοιχο κώδικα της κάθε περίπτωσης που είχαμε και στο προηγούμενο εργαστήριο. 11 Δρ.

Δημιουργήστε το πρώτο βοηθητικό αρχείο page9_form.php με το παρακάτω περιεχόμενο: <p> Εισάγετε τα στοιχεία σας για να εγγραφείτε: </p> <?php if ($error_message!= "") {?> <p> <font color="red"> Σφάλμα!<br/> <?=$error_message?> </font> </p> <?php }?> <form action="page9.php" method="post"> <table> <tr> <th>όνομα</th> <td> <input type="text" name="firstname" value="<?=$firstname?>" /> </td> </tr> <tr> <th>επώνυμο</th> <td> <input type="text" name="lastname" value="<?=$lastname?>" /> </td> </tr> <tr> <th>username</th> <td> <input type="text" name="username" value="<?=$username?>" /> </td> </tr> <tr> <th>password</th> <td> <input type="password" name="passwordfirst" value="<?=$passwordfirst?>" /> </td> </tr> <tr> <th>retype Password</th> <td> <input type="password" name="passwordsecond" value="<?=$passwordsecond?>" /> </td> </tr> <tr> <th>φύλο</th> <td> <input type="radio" name="gender" value="1" <?php if ($gender == "1") echo "checked";?> /> Άνδρας <br/> <input type="radio" name="gender" value="2" <?php if ($gender == "2") echo "checked";?> /> Γυναίκα <br/> </td> </tr> <tr> <th>όροι χρήσης</th> <td> <input type="checkbox" name="agreeterms" value="1" <?php if ($agreeterms == "1") echo "checked";?> /> Συμφωνώ με τους όρους χρήσης </td> </tr> <tr> <td> <a href="page9.php">επαναφορά</a> </td> <td><input type="submit" value="εγγραφή" /></td> </tr> </table> </form> 12 Δρ.

Σε αυτό το αρχείο λοιπόν σχηματίζουμε την φόρμα εισαγωγής στοιχείων χρήστη για εγγραφή. Έχουμε τα πεδία Όνομα, Επώνυμο, Username, Password (2 φορές), Φύλο και ειδικό πεδίο για να συμφωνήσει ο χρήστης με τους όρους χρήσης. Προσέξτε ότι το action της φόρμας δείχνει στο κεντρικό αρχείο page9.php. Θυμηθείτε ότι το αρχείο page9_form.php που μόλις φτιάξαμε είναι βοηθητικό αρχείο. Περιέχει ένα μικρό κομμάτι της τελικής σελίδας που εμφανίζουμε στο χρήστη, δεν είναι πλήρης κώδικας. Και δεν θα το προσπελάσουμε ποτέ αυτό το αρχείο άμεσα από τον browser. Από τον browser ως χρήστες επισκεπτόμαστε το κεντρικό αρχείο page9.php, το οποίο εσωτερικά καλεί ένα από τα 2 βοηθητικά αρχεία page9_form.php ή page9_register.php, ανάλογα με την περίπτωση. Το ίδιο δηλαδή που ισχύει και για τη βιβλιοθήκη lab9_library.php. Δημιουργήστε το δεύτερο βοηθητικό αρχείο page9_register.php με το παρακάτω περιεχόμενο: <p> Η εγγραφή σας ολοκληρώθηκε επιτυχώς! </p> Προς το παρόν δεν κάνουμε κάτι διαφορετικό από ό,τι στο προηγούμενο εργαστήριο, απλώς εμφανίζουμε ένα μήνυμα ότι η εγγραφή ολοκληρώθηκε. Εμφανίστε στον browser σας (προσοχή, με http://localhost/ και όχι ανοίγοντας το αρχείο!) την σελίδα page9.php και κάνετε διάφορες υποβολές, με έγκυρα και μη-έγκυρα στοιχεία, και επιβεβαιώστε ότι λειτουργεί σωστά, με την ίδια δηλαδή συμπεριφορά που είχε και στο προηγούμενο εργαστήριο. Θα δείτε καλύτερα τη συμπεριφορά της φόρμας εάν συμπληρώνετε ένα πεδίο κάθε φορά και πατάτε αμέσως [Εγγραφή], ώστε να ελέγξετε τα μηνύματα λάθους. 13 Δρ.

Άσκηση 9b Σε αυτή την άσκηση θα προσθέσουμε τον κατάλληλο κώδικα ώστε τα στοιχεία που υπέβαλε ο χρήστης μέσω της φόρμα να γραφτούν στην βάση MySQL lab9data και συγκεκριμένα στον πίνακα users. Για το σκοπό αυτό τροποποιήστε το περιεχόμενο του βοηθητικού αρχείου page9_register.php ως εξής: <?php //ΕΙΣΑΓΩΓΗ ΤΩΝ ΣΤΟΙΧΕΙΩΝ ΤΟΥ ΧΡΗΣΤΗ ΣΤΗ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ //ΣΤΟΙΧΕΙΑ ΣΥΝΔΕΣΗΣ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ $DB_SERVER = "localhost"; $DB_NAME = "lab9data"; $DB_USER = "root"; $DB_PASSWORD = ""; //ΣΥΝΔΕΣΗ ΜΕ ΤΗ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ $dblink = mysqli_connect($db_server, $DB_USER, $DB_PASSWORD, $DB_NAME) or die('unable to connect to database!'); $sql_query = "INSERT INTO `users` (`firstname`, `lastname`, `username`, `password`, `gender`)"; $sql_query.= " VALUES ('{$firstname}', '{$lastname}', '{$username}', '{$passwordfirst}', {$gender})"; mysqli_query($dblink, $sql_query);?> <p> Η εγγραφή σας ολοκληρώθηκε επιτυχώς! </p> <p> <a href="page9.php">εγγραφή νέου χρήστη</a> </p> Βλέπετε ότι χρειάζονται πολύ λίγες γραμμές κώδικα για να εισάγουμε τιμές στην βάση δεδομένων. Ο παραπάνω κώδικας PHP αποτελείται ουσιαστικά από 3 βήματα: 1. Σύνδεση με τη βάση δεδομένων 2. Χτίσιμο του κατάλληλου ερωτήματος SQL 3. Εκτέλεση του SQL ερωτήματος Ας δούμε αναλυτικά τα βήματα αυτά: Σύνδεση με τη βάση δεδομένων Η σύνδεση με τη βάση δεδομένων γίνεται με την κλήση της συνάρτησης mysqli_connect η οποία χρειάζεται 4 παραμέτρους: τη διεύθυνση του MySQL server το όνομα χρήστη για τον MySQL server το password για τον MySQL server το όνομα της Βάσης στην οποία θέλουμε να συνδεθούμε 14 Δρ.

Αυτές τις 4 παραμέτρους τις έχουμε ορίσει σε 4 αντίστοιχες μεταβλητές $DB_SERVER, $DB_NAME, $DB_USER και $DB_PASSWORD. Στον MySQL server που μας παρέχει το XAMPP ο default χρήστης λέγεται root και το password είναι κενό. Η διεύθυνση του MySQL server είναι localhost ενώ το όνομα της βάσης μας είναι lab9data. Μετά την εκτέλεσή της, η συνάρτηση mysqli_connect μας επιστρέφει ένα αναγνωριστικό της σύνδεσης που μόλις κάναμε, το οποίο κρατάμε στην μεταβλητή $dblink. Αυτό το $dblink θα το χρησιμοποιούμε στη συνέχεια για να εκτελούμε διάφορες εντολές στη βάση. Χτίσιμο του κατάλληλου ερωτήματος SQL Το SQL ερώτημα που θέλουμε να φτιάξουμε είναι το ερώτημα εισαγωγής δεδομένων, και έχει την γενική μορφή: INSERT `όνομα πίνακα` (`όνομα πεδίου 1`, `όνομα πεδίου 2`, `όνομα πεδίου 3`,...) VALUES ('τιμή string', 'τιμή string', αριθμός, αριθμός,...) Ο κώδικας με τον οποίο το χτίζουμε είναι οι 2 γραμμές: $sql_query = "INSERT INTO `users` (`firstname`, `lastname`, `username`, `password`, `gender`)"; $sql_query.= " VALUES ('{$firstname}', '{$lastname}', '{$username}', '{$passwordfirst}', {$gender})"; Σημειώστε ότι στην MySQL τα ονόματα του πίνακα και των πεδίων τοποθετούνται ανάμεσα σε ανάποδα μονά εισαγωγικά (δηλαδή τον χαρακτήρα ` ). Τα πεδία στα οποία θέλουμε να δώσουμε τιμές μπαίνουν σε μία λίστα ανάμεσα σε παρενθέσεις ακριβώς μετά το όνομα του πίνακα. Οι τιμές που θα δώσουμε σε κάθε πεδίο μπαίνουν μετά τη λέξη VALUES, ανάμεσα σε παρενθέσεις σε μία λίστα, με την ίδια σειρά που γράψαμε και την λίστα των ονομάτων των πεδίων. Ας δούμε τώρα πώς χτίζουμε αυτό το ερώτημα με κώδικα PHP. Καταρχήν το χτίσιμο γίνεται σε 2 βήματα (2 γραμμές κώδικα). Στην πρώτη χτίζουμε το πρώτο μισό του ερωτήματος, και στην δεύτερη γραμμή προσθέτουμε το δεύτερο μισό του SQL ερωτήματος. Η προσθήκη σε ένα ήδη κατασκευασμένο string στην PHP γίνεται με την έκφραση.=. Στην πρώτη λοιπόν γραμμή κώδικα γράφουμε το INSERT INTO, το όνομα του πίνακα και στη συνέχεια δίνουμε τη λίστα των πεδίων που θέλουμε να γράψουμε. Στην δική μας περίπτωση βάζουμε τα πεδία firstname, lastname, username, password και gender. Το πεδίο-κλειδί id δεν χρειάζεται να του δώσουμε εμείς τιμή, διότι θα πάρει αυτόματη αρίθμηση μόνο του. 15 Δρ.

Στην δεύτερη γραμμή κώδικα, μετά τη λέξη VALUES, μέσα στην παρένθεση βάζουμε τις τιμές που θέλουμε να δώσουμε στα πεδία. Για τα πεδία firstname, lastname, username και password τις τιμές τις βάζουμε ανάμεσα σε απλά εισαγωγικά, επειδή είναι τύπου VARCHAR. Την τιμή του πεδίου gender την βάζουμε χωρίς μονά εισαγωγικά διότι είναι αριθμητικού τύπου. Εκτέλεση του SQL ερωτήματος Τέλος, αφού έχουμε χτίσει το SQL ερώτημα, το μόνο που μένει είναι να το εκτελέσουμε στην βάση στην οποία συνδεθήκαμε. Έχουμε στη διάθεσή μας το $dblink που είναι το αναγνωριστικό της σύνδεσης με τη βάση. Για να εκτελέσουμε το ερώτημα $sql_query που μόλις φτιάξαμε αρκεί απλώς η εντολή: mysqli_query($dblink, $sql_query); Είμαστε τώρα έτοιμοι να ελέγξουμε ότι ο κώδικάς μας λειτουργεί σωστά. Επισκεφθείτε με τον browser σας (προσοχή, με http://localhost/ και όχι ανοίγοντας το αρχείο!) την σελίδα page9.php και αφού συμπληρώσετε πλήρως τα στοιχεία της φόρμας πατήστε το πλήκτρο [Εγγραφή]. Θα πρέπει να εμφανιστεί το μήνυμα επιτυχίας χωρίς σφάλματα. Αν όλα έχουν εκτελεστεί σωστά, θα πρέπει οι τιμές που δώσατε στη φόρμα να έχουν αποθηκευτεί στη βάση ως μία νέα εγγραφή. Για να το επιβεβαιώσετε, πηγαίνετε στο περιβάλλον διαχείρισης του phpmyadmin και επιλέξτε τον πίνακα users στη βάση δεδομένων lab9data. Επιλέξτε την καρέτα [Περιήγηση]. Θα πρέπει να δείτε μία εγγραφή στον πίνακα με τις τιμές που δώσατε, πχ κάτι σαν: 16 Δρ.

Άσκηση 9c Τροποποιήστε κατάλληλα τον πίνακα στη βάση και τον κώδικα PHP ώστε η να προσθέσετε στη φόρμα εγγραφής του χρήστη και τα ακόλουθα πεδία: Όνομα μητέρας (string μεγέθους μέχρι 100 χαρακτήρες) Όνομα πατέρα (string μεγέθους μέχρι 100 χαρακτήρες) Αγαπημένο χρώμα (επιλογή από 3 χρώματα) Για να προσθέσετε νέα πεδία στον πίνακα users θα πάτε στην καρτέλα [Δομή] στο περιβάλλον του phpmyadmin και κάτω από την δομή του πίνακα θα δείτε την επιλογή για προσθήκη νέων πεδίων: Εκεί συμπληρώστε πόσα πεδία θέλετε να προσθέσετε και πατήστε το πλήκτρο [Εκτέλεση]. Στη συνέχεια θα εμφανιστεί μία φόρμα για να ορίσετε τα ονόματα και τους τύπους των νέων πεδίων, ακριβώς ίδια με την φόρμα που συναντήσατε στην αρχή του εργαστηρίου για την δημιουργία του πίνακα users. Αφού δημιουργήσετε τα νέα πεδία στον πίνακα, θα πρέπει να κάνετε τις ακόλουθες αλλαγές στον κώδικα PHP: Στο αρχείο page9_form.php να προσθέσετε τα νέα πεδία στην φόρμα Στο αρχείο page9.php να προσθέσετε νέες γραμμές στις οποίες θα καλείτε την PostValue για να πάρετε τις τιμές των νέων πεδίων να προσθέσετε τους κατάλληλους ελέγχους ορθότητας των στοιχείων για τα νέα πεδία Στο αρχείο page9_register.php Να προσθέσετε κατάλληλα τα νέα πεδία (τα ονόματά τους και τις τιμές τους) στο SQL ερώτημα 17 Δρ.