5 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: προχωρημένα θέματα PHP

Σχετικά έγγραφα
Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: Server Side Scripting II PHP & MySQL

Δρ. Δημήτριος Α. Κουτσομητρόπουλος. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Α.Τ.Ε.Ι. Πάτρας

Εφαρµογές διαδικτύου µε PHP

PHP/MySQL και Project

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

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

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

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

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Τμήμα Διοίκησης Επιχειρήσεων

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

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

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

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

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

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

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP

Web Programming for Dummies

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

Προγραμματισμός Παγκόσμιου Ιστού

databases linux - terminal (linux / windows terminal)

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Οδηγός ανάγνωσης αποστολής

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

Εγχειρίδιο χρήσης συστήματος ηλεκτρονικής αλληλογραφίας της Ελληνικής Ομοσπονδίας Μπριτζ

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

. Εργαστήριο Βάσεων Δεδομένων. Triggers

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

Εργαστήριο Βάσεων Δεδομένων

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

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

10 η Διάλεξη Python Βάσεις δεδομένων στη python

PHP Functions. by George Girtsou Copyright All Rights Reserved. Με την επιφύλαξη κάθε νόμιμου δικαιώματος.

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

Βασικές Έννοιες Ηλεκτρονικού Ταχυδρομείου

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

Οδηγός ανάγνωσης αποστολής

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

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Βάσεις Δεδομένων

ΗΛΕΚΤΡΟΝΙΚΟ ΚΑΤΑΣΤΗΜΑ

2. Εισαγωγή Δεδομένων σε Σχεσιακή Βάση Δεδομένων

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 8 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Java Server Pages (JSP)

Διαχείριση Πολιτισμικών Δεδομένων

στην πλευρά του εξυπηρετητή

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Δημιουργία Μηχανής Αναζήτησης με PHP Στυλιάδης Κων/νος, Υπ. Κέντρου ΠΛΗ.ΝΕ.Τ. Ν. Φλώρινας, Φλώρινα, Σεπτέμβριος 2006

PHP 2. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

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

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Web εφαρμογή με χρήση LDAP και SMTP Server

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

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

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Paybybank RESTful API GUIDE

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

PayByBank RESTful API GUIDE

Βάσεις Περιβαλλοντικών Δεδομένων

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

Εργαστήριο Βάσεων Δεδομένων. Triggers

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

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ PHP

Αποστολή και λήψη μέσω SMARTER MAIL

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

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 12η Διάλεξη: Επανάληψη / Ανακεφαλαίωση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

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

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Περιγραφή του EcoTruck

ALERTS ή EDA (Event Driven Actions)

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Τεχνολογία Πολιτισμικού Λογισμικού

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

Οδηγίες Ακολουθήστε τα παρακάτω βήματα. Βεβαιωθείτε ότι το πρόγραμμά σας δουλεύει σωστά σε κάθε βήμα, πριν προχωρήσετε στο επόμενο.

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

Ανοικτά Ακαδημαϊκά Μαθήματα

Transcript:

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 5 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: προχωρημένα θέματα PHP Δρ. Απόστολος Γκάμας Διδάσκων (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1

Προκαθορισμένες μεταβλητές της PHP $_SERVER: Είναι οι μεταβλητές που ορίζονται από τον web server ή διαφορετικά είναι άμεσα συνδεδεμένες με το περιβάλλον εκτέλεσης του τρέχοντος script. $_GET: Είναι οι μεταβλητές που παρέχονται στο script μέσω του HTTP GET. $_POST: Είναιοιμεταβλητέςπουπαρέχονταιστοscript μέσω του HTTP POST. $_COOKIE: Είναι οι μεταβλητές που παρέχονται στο script μέσω της HTTP cookies. $_SESSION: Είναιοιμεταβλητέςπουείναιπροςτοπαρόν εγγεγραμμένες σε ένα session ενός script. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 2

Πίνακας $_SERVER Παρέχει μεγάλο αριθμό πληροφοριών, πχ: 'SERVER_NAME : Το όνομα του εξυπηρετητή 'HTTP_USER_AGENT : Ο browser του χρήστη 'REMOTE_ADDR': Η διεύθυνση του χρήστη 'SCRIPT_FILENAME': Το όνομα του PHP script Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 3

ιαφορά Get Post στις HTML φόρµες Get, Post: Μέθοδοι μεταφοράς δεδομένων μιας φόρμας από τον web client στον web server Post: Αποστολή δεδομένων φόρμας «διαφανώς» απότοχρήστη Get:Τα στοιχεία της φόρμας μεταφέρονται ως τµήµατηςurl, π.χ. http://www.uop.gr/~gkamas/grade.php?grade=4 Ερώτηση: πωςμπορώναστείλωδεδομέναμιαςφόρμαςπρος επεξεργασία από ένα PHP script χωρίς να χρειαστεί να ανοίξω τη φόρμα; Καμία διαφορά ως προς την επεξεργασία των δεδομένων από το server-side script Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 4

Φόρμα $_GET[ ] Συλλέγει τις τιμές από τη φόρμα ως κείμενο Η πληροφορία που αποστέλλεται από τη φόρμα με τη μέθοδο GET είναι ορατή σε όλους (στο πεδίο διευθύνσεων). Θυμίζουμε ότι η GET περιορίζει την ποσότητα πληροφορίας που μπορεί να σταλεί $_POST[ ] Χρησιμοποιείται για να συλλεχθούν οι τιμές που έχουν σταλεί από μια φόρμα με την POST Η πληροφορία που στέλνεται από τη φόρμα με αυτή τη μέθοδο είναι αόρατη στον πελάτη. Η μέθοδοςpost δενέχειπεριορισμούςωςπροςτο μέγεθος της πληροφορίας. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 5

Φόρμα άθροισης <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>Sum calculator...</title> <META http-equiv=content-type content="text/html; charset=windows-1253"> <META content="mshtml 6.00.2800.1476" name=generator></head> <BODY> <FORM name=form1 action="number_sum.php" method=post> <P>Number 1: <INPUT name=number1> </P> <P>Number2: <INPUT name=number2> </P> <P><INPUT type=submit value=submit name=submit> </P> </FORM></BODY></HTML> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 6

PHP Script άθροισης <html> <head> <title>calculated sum...</title> </head> <body> <??> </body> </html> echo "<H1>". $_POST[number1]. " + ". $_POST[number2]. " = ". ($_POST[number1] + $_POST[number2]). "</H1>"; Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 7

Τι είναι το COOKIE Ένα cookie είναι ένα μικρό αρχείο που ο εξυπηρετητής ενσωματώνει στον browser του πελάτη. Το cookie χρησιμοποιείται για την αναγνώριση του χρήστη. Κάθε φορά που ο ίδιος browser ζητά μια σελίδα, στέλνει και το cookie. Τα PHP scripts μπορούν και να πάρουν και να ορίσουν τις τιμές των cookies. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 8

Ορισμός COOKIE setcookie (name, value, expire, path, domain); name: Το όνομα του cookie. value: Η τιμήτουcookie. Η τιμήαυτήαποθηκεύεταιστον υπολογιστών των clients, γι'αυτό μην αποθηκεύετε ευαίσθητες πληροφορίες. expire: Η ώραλήξηςτουcookie. path: Το path στον server στο οποίο θα είναι διαθέσιμο το cookie. domain: Το domain στο οποίο το cookie είναι διαθέσιμο. ΠΡΟΣΟΧΗ: Ηεντολήsetcookie θα πρέπει να χρησιμοποιείται πριν το tag HTML Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 9

Παράδειγμα: Ορισμός Cookie <?php setcookie("uname", $name, time()+36000);?> <html> <body> <p> Το cookie έχει οριστεί </p> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 10

Παράδειγμα: Ανάγνωση Cookie <html> <body> <?php if (isset($_cookie["uname"])) echo Καλωςήλαθτε ". $_COOKIE["uname"]. "!<br />"; else echo «Δεν έχετε κάνει Login!<br />";?> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 11

Μεταβλητές Session Οι μεταβλητές Session αποθηκεύουν πληροφορία σχετική με έναν χρήστη και είναι διαθέσιμες σε όλες τις σελίδες μιας εφαρμογής web στη διάρκεια του user session Γιαναδημιουργηθείμιαsession μεταβλητή, την αποθηκεύουμε σε ένα Session Object Το session object χρησιμοποιείται για να αποθηκευτεί πληροφορία ή και να αλλαχτούν οι ρυθμίσεις ενός user session. Οι μεταβλητές που αποθηκεύονται στο session object κρατούν την πληροφορία για έναν χρήστη κάθε φορά και είναι διαθέσιμες σε όλες τις σελίδες ενός application Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 12

Τι είναι ο έλεγχος συνόδων λειτουργίας (Session Το HTTP είναι πρωτόκολλο «χωρίς κατάσταση» (stateless), δηλ. δεν έχει ένα ενσωματωµένο τρόπο να διατηρεί την κατάσταση μεταξύ δύο συναλλαγών. Π.χ., όταν ένας χρήστης ζητά µια σελίδα, ακολουθούμενη από μια άλλη, το HTTP δεν έχει τρόπο να µας πει ότι οι δυο αιτήσεις ήρθαν από τον ίδιο χρήστη. Ηιδέατωνσυνόδωνλειτουργίας(sessions) είναι να μπορούμε να παρακολουθούμε ένα χρήστη κατά τη διάρκεια της επίσκεψής του σε ένα web site. Πλεονεκτήματα: Εμφάνιση περιεχομένων σύμφωνα µε το επίπεδο πιστοποίησης ή προσωπικών προτιμήσεων Παρακολούθηση της συμπεριφοράς του χρήστη Χειρισμός καλαθιών αγορών (εφαρμογές e-commerce) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 13

Session Object Όταν δουλεύει κανείς με μια εφαρμογή web, την ανοίγει, κάνει ορισμένες αλλαγές και μετά την κλείνει. Αυτή η διαδικασία είναι όμοια με τη συμπεριφορά του session. Ο υπολογιστής γνωρίζει ποιος είναι ο χρήστης του. Γνωρίζει επίσης πότε ξεκινά κανείς την εφαρμογή και πότε σταματά. Στο Internet όμως υπάρχει ένα πρόβλημα... O web server δεν ξέρει ποιος είναι ο χρήστης και τι ακριβώς κάνει, γιατί η ονοματολογία στο HTTP δε διατηρεί την ίδια κατάσταση κάθε φορά που συνδεόμαστε στην εφαρμογή. Γιαναλυθείτοπρόβλημααυτό, δημιουργείται ένα μοναδικό cookie κάθε φορά για κάθε χρήστη. Το cookie στέλνεται στον πελάτη και περιλαμβάνει πληροφορία που χαρακτηρίζει τον χρήστη. Αυτό το interface ονομάζεται session object. To session object χρησιμοποιείται για να αποθηκεύσει την πληροφορία για κάθε user session. Συνήθως αποθηκεύονται οι μεταβλητές που περιλαμβάνουν το όνομα, το id και οι προτιμήσεις. Ο εξυπηρετητής δημιουργεί ένα νέο session object για κάθε νέο χρήστη και καταστρέφει το session όταν έχουμε session expire. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 14

Βασικές λειτουργίες σε session session_start(): Δημιουργία/ενεργοποίηση session session_destroy(): Τερματισμός session session_register ( mixed name [, mixed...] ): Προσθήκη μεταβλητής στο session (εναλλακτικά: $_SESSION[ test "]= Test ;) session_unregister ( string name ): Διαγραφή μεταβλητής από το session session_unset(); Ακυρώνει όλες τις μεταβλητές του session Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 15

Βήμα 1 χειρισμού session Ξεκίνημα ενός session Με μια κλήση στη συνάρτηση session_start session_start(); Καλούμε τη session_start στην αρχή όλων των scripts που χρησιμοποιούν sessions Η συνάρτηση αυτή ελέγχει αν υπάρχει ήδη κάποια εγκατεστημένη σύνοδος Αν όχι, θα εγκαταστήσει µία Αν ναι, θα φορτώσει όλες τις εγγεγραμμένες μεταβλητές της συνόδου για να μπορέσει το script να τις χειριστεί. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 16

Βήμα 2 χειρισμού session Εγγραφή μεταβλητών συνόδου λειτουργίας: γιαναμπορείμιαμεταβλητή να παρακολουθείται από διάφορα scripts, θα πρέπει να εγγραφεί µε μια κλήση της συνάρτησης session_register() Π.χ., εγγραφή της μεταβλητής $myvar $myvar = 5; session_register ( myvar ); H μεταβλητή (η τιμήτης) θα παρακολουθείται μέχρι να τερματιστεί η σύνοδος ή καταργηθεί η εγγραφή της Μπορούν να εγγραφούν ταυτόχρονα περισσότερες από μια μεταβλητές: session_register ( myvar1, myvar2 ); Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 17

Βήμα 3 χειρισμού session Χρήση των μεταβλητών συνόδου: κατά τη διάρκεια της ζωής μιας συνόδου, ένα script μπορεί να θέλει να «διαβάσει» την τιμή μιας μεταβλητής συνόδου. Προϋπόθεση: το script πρέπει πρώτα να έχει ξεκινήσει μια σύνοδο (µε κλήση της session_start()) H πρόσβαση στην μεταβλητή είναι πολύ απλή, π.χ.: echo @myvar; Προσοχή: μπορεί μια μεταβλητή συνόδου να έχει «επικαλυφθεί» από μια μεταβλητή που έχει οριστεί από το χρήστη µέσω της αποστολής στοιχείων από κάποια HTML φόρμα (µε GET ή POST) Για να ελέγξουμε αν μια μεταβλητή είναι όντως μεταβλητή συνόδου: $result = session_is_registered( myvar ); // επιστρέφει true/false Χειρισμός απλών συνόδων λειτουργίας: Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 18

Βήμα 4 χειρισμού session Ακύρωση της εγγραφής μιας μεταβλητής συνόδου: session_unregister( myvar ); // Ακυρώνει την εγγραφή της myvar session_unset(); // Ακυρώνει όλες τις μεταβλητές του session Καταστροφή (κλείσιμο) μιας συνόδου: session_destroy(); Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 19

Παράδειγμα: Login <? function process_form(){ } switch ($_POST["sex"]) { }?> case "yes": print "Καλωσήρθατε Κυριε (".$_SESSION["take_email_session"].")"; break; case "no": print "Καλωσήρθατε Κυριa (".$_SESSION["take_email_session"].")"; break; default: print "Καλωσήρθατε (".$_SESSION["take_email_session"].")"; break; Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 20

Παράδειγμα: Login <? if(!isset($_session["take_email_session"]) ){ } else?> if (((strlen($_post["take_email"])<6) (strlen($_post["take_password"])<6))){ } print "Δεν εχετε δωσει σωστά τα δεδομένα"; exit(); else{ } $_SESSION["take_email_session"]=$_POST["take_email"]; $_SESSION["sex_session"]=$_POST["sex"]; process_form(); process_form(); <a href=logoff.php>logoff</a> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 21

Παράδειγμα: Session <? session_start();?> <html> <? session_unset();?> Ευχαριστούμε που μας επισκεφθήκατε Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 22

E-Mail Λειτουργίες του E-Mail: Για την αποστολή χρησιμοποιούμε το SMTP Για την επισύναψη μη text δεδομένων χρησιμοποιούμε την κωδικοποίηση MIME bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] ) Η mail() αυτομάτα στέλνει με mail το μήνυμα όπως ορίζεται στο message στον παραλήπτη όπως ορίζεται στο to. Πολλαπλοί παραλήπτες μπορούν να οριστούν με την προσθήκη ενός κόμματος ανάμεσα σε κάθε διεύθυνση στο to. Email με συννημένα αρχεία και ειδικούς τύπους περιεχομένου μπορούν να αποσταλούν με την χρήση αυτής της συνάρτησης. Αυτό πραγματοποιείται μέσω MIME-κωδικοποίησης. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 23

Παράδειγμα: E-Mail <? $message="text to send through mail"; mail("nobody@example.com", "Subject Text", $message,"from: webmaster@example.com");?> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 24

E-mail με επιπλέον headers <?php mail("nobody@example.com", "the subject", $message,?> "From: webmaster@{$_server['server_name']}\r\n"."reply-to: webmaster@{$_server['server_name']}\r\n"."x-mailer: PHP/". phpversion()); Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 25

Εισαγωγή στις Βάσεις Δεδομένων / SQL Σχεσιακές Βάσεις εδομένων ή Αρχεία? Πλεονεκτήματα αποθήκευσης δεδομένων σε σχεσιακές βάσεις δεδομένων αντί σε αρχεία κειμένου: Γρηγορότερη πρόσβαση στα δεδομένα ημιουργία ερωτημάτων/συνθηκών για την «εξαγωγή» δεδομένων Ενσωµατωμένος μηχανισμός για το χειρισμό ταυτόχρονης πρόσβασης Ενσωµατωμένα συστήματα δικαιωμάτων Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 26

Πίνακες Πίνακας CustomerID Name Address City 1 Κώστας Νικολάου 2 Πέτρος Πετρίδης Στήλες ή πεδία ή ιδιότητες Γραµµές ή εγγραφές Τιµές Παλαμά 15 Κορνάρου 32 Πάτρα Τρίπολη 3 Παύλος Πέτρου Παλαμά 35 Αθήνα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 27

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 28 Κλειδία

Σχέσεις Ένα προς Ένα (π.χ. Αν είχαµε βάλει τους πελάτες και τις διευθύνσεις τους σε ξεχωριστούς πίνακες Ένα προς πολλά (π.χ. Customers Orders) Πολλά προς Πολλά (π.χ. πίνακες Books Authors) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 29

SQL - SELECT Σύνταξη: SELECT column_name(s) FROM table_name Παραδείγματα: SELECT Name, Comment FROM `students` SELECT * FROM `students` Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 30

SQL - WHERE Σύνταξη: SELECT column FROM table WHERE column operator value Όπου operator: =, <>, >, <, >=, <=, BETWEEN, LIKE Παραδείγματα: SELECT * FROM `students` WHERE id=1 Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 31

SQL - INSERT INTO Σύνταξη : INSERT INTO table_name VALUES (value1, value2,...) INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...) Παραδείγματα: INSERT INTO students VALUES ('Apostolis',45,'Test entry') INSERT INTO students (Name,ID) VALUES ('Apostolis2',48) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 32

SQL - UPDATE Σύνταξη : UPDATE table_name SET column_name = new_value WHERE column_name = some_value Παραδείγματα: UPDATE students SET Comment ='New Comment' WHERE id = 48 Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 33

SQL - DELETE Σύνταξη : DELETE FROM table_name WHERE column_name = some_value Παραδείγματα: DELETE FROM students WHERE id = 48 DELETE FROM students WHERE id > 25 Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 34

SQL Άλλες Επιλογές ORDER BY: SELECT * FROM students ORDER BY Name AND/OR: SELECT * FROM students WHERE NAME='test' OR NAME='test2 IN: SELECT column_name FROM table_name WHERE column_name IN (value1,value2,..) BETWEEN / AND: SELECT column_name FROM table_name WHERE column_name BETWEEN value1 AND value2 Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 35

SQL - CREATE Σύνταξη : CREATE DATABASE database_name CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type,... ) Παραδείγματα: CREATE TABLE address ( id int(11), adr varchar(100), city varchar(50), PRIMARYKEY(id) ) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 36

SQL ALTER TABLE Σύνταξη: ALTER TABLE table_name ADD column_name datatype ALTER TABLE table_name DROP COLUMN column_name Παραδείγματα: ALTER TABLE address ADD Person varchar(30) ALTER TABLE address DROP COLUMN Person Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 37

SQL - DROP TABLE Σύνταξη: DROP TABLE table_name Παραδείγματα: DROP TABLE address Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 38