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

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

Template MS-Word 2010

Template MS-Word 2013

Διερευνώντας την ασφάλεια στο διαδίκτυο με εργαλεία ΤΠΕ. Ροδούλα Σαμψών Σάββα Δημοτικό Σχολείο Δευτεράς

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

Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass. Ενότητα 1: Γνωριμία με την Open eclass

Template MS-PowerPoint 2010 Έκδοση 1.0

Template MS-PowerPoint 2013 Έκδοση 1.0

Template προζβάζιμοσ MS-Word 2007

Φαρμακοεπαγρύπνηση και Προστασία Προσωπικών Δεδομένων Από τη θεωρία στην πράξη

Η ΠΑΡΟΥΣΙΑΣΗ ΤΗΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΡΓΑΣΙΑΣ

Μάθημα 1 > Δομή HTML. html head body

Οδηγός χρήσης της ταυτότητας της Κοινοβουλευτικής Ομάδας του ΕΛΚ 2015

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

Γεώργιος Κοσροσπέηρογλοσ. Έθδοζε: 1.4. Αζήλα 2013

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Τίτλοσ Μακιματοσ. Ελόηεηα # (bold): Τίηινο Ελόηεηαο (normal) ----θελή γξακκή---- Όλνκα Καζεγεηή Τκήκα

Υδρογεωχημεία Αναλυτική Γεωχημεία Ενότητα 1: Γεωχημεία επιφανειακών νερών

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

Εισαγωγή στους Αλγορίθμους

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Εισαγωγή στους Αλγορίθμους

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στους Αλγορίθμους

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στους Υπολογιστές

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Κβαντική Επεξεργασία Πληροφορίας

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.2: Παραδοσιακή VS νέα προσέγγιση της ΔΟΠ

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Οντοκεντρικός Προγραμματισμός

Διοικητική Λογιστική

Δομή διαδικτυακών Πολυμέσων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.3: Μεθοδολογία εφαρμογής προγράμματος Ολικής Ποιότητας

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Κβαντική Επεξεργασία Πληροφορίας

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 10 η : Ανάλυση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

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

Βέλτιστος Έλεγχος Συστημάτων

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.4: ISO 9004:2009

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μάρκετινγκ Αγροτικών Προϊόντων

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Μάρκετινγκ. Ενότητα 2: Αξία για τους Πελάτες

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Ευφυής Προγραμματισμός

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

ΘΕΡΜΟΔΥΝΑΜΙΚΗ Ι. Ενότητα 2: Θερμοδυναμικές συναρτήσεις. Σογομών Μπογοσιάν Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Ευφυής Προγραμματισμός

Διδακτική της Πληροφορικής

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ενδεικτικές λύσεις ασκήσεων

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 4: Δίκτυα Συστημάτων Αναμονής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διδακτική των εικαστικών τεχνών Ενότητα 1

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Διδακτική των εικαστικών τεχνών Ενότητα 3

Φυσική ΙΙΙ. Ενότητα 4: Ηλεκτρικά Κυκλώματα. Γεώργιος Βούλγαρης Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

Ενδεικτικές λύσεις ασκήσεων

Επιχειρησιακή Έρευνα

Εισαγωγή στους Υπολογιστές

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Κβαντική Επεξεργασία Πληροφορίας

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

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 10: Διαχείριση Έργων (2ο Μέρος)

Διαχείριση Έργων. Ενότητα 10: Χρονοπρογραμματισμός έργων (υπό συνθήκες αβεβαιότητας)

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 9: Σχέση Ηθικής και Δικαιοσύνης. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

Transcript:

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: Server Side Scripting I - PHP Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Σκοποί ενότητας Σκοπός της παρούσας ενότητας είναι να εξοικειωθούν οι φοιτητές με τις βασικές ιδιότητες και χαρακτηριστικά της γλώσσας προγραμματισμού PHP 2

Περιεχόμενα ενότητας Εισαγωγή Server Side Scripting Παραδείγματα Χρήσης Save info Sessions Cookies VS Sessions Φόρμα 3

Εισαγωγή (1) PHP PHP:Hypertext Preprocessor Mηχανή που συνοδεύει web servers όπως ο IIS και ο Apache Η PHP είναι γλώσσα προγραμματισμού για web εφαρμογές Apache: Διαθέσιμος σε UNIX και WINDOWS περιβάλλοντα. Παράδειγμα συστήματος: Apache 2.4.9 PHP 5.4.26 MySQL 5.6.16 4

Εισαγωγή (2) Http response Apache Client (Firefox) Html content.php PHP engine Πως Δουλεύουν τα ServerSide Scripts Όταν ο Browser ζητά ένα HTML αρχείο, ο server του επιστρέφει το αρχείο αυτό ως έχει, βάσει του πρωτοκόλλου Όταν ζητηθεί ένα PHP, o server περνά το αίτημα στη μηχανή PHP Η μηχανή PHP διαβάζει τα script αρχεία γραμμή-γραμμή και εκτελεί των κώδικα Τέλος, το αρχείο επιστρέφεται στον Browser ως απλή HTML 5

Εισαγωγή (3) Τι μπορούν να κάνουν τα ServerSide Scripts Να τροποποιήσουν δυναμικά το περιεχόμενο μιας σελίδας Απαντά σε ερωτήματα και δεδομένα χρηστών από φόρμες HTML Δίνουν πρόσβαση σε δεδομένα και Βάσεις Δεδομένων και επιστρέφουν αποτελέσματα στον Browser Διαμορφώνουν τη σελίδα για προσωποποιημένη χρήση 6

Εισαγωγή (4) Τι μπορούν να κάνουν τα ServerSide Scripts Παρέχει ασφάλεια, γιατί ο server-side κώδικας δεν είναι εμφανής στον πελάτη-browser Oι επιστρεφόμενες σελίδες είναι HTML (όχι απαραίτητα valid, εξαρτάται από τον χρήστη), μπορούν να τις δουν όλοι οι browsers 7

Server Side Scripting ASP και ASP.NET Java/ JSP Ruby Είναι καλύτερη η PHP??? religious questions 8

Παραδείγματα Χρήσης (1) <html> <body> <b> <?php echo "Hello, World!";?> </b> <?php echo " <b> Hello, World! </b>"?> </body> </html>.php Αρχείο hello_world1.php 9

Παραδείγματα Χρήσης (2) <html> <body> <? $greeting="hello "; $num=3+2; $num=$num+1; echo $greeting.$num." people!";?> </body> </html>.php Αρχείο hello_world2.php 10

Παραδείγματα Χρήσης (3).PHP <? $h=strftime("%h"); print "<p>".strftime("%m/%d/%y %H:%M:%S %p")."</p>"; if ($h<12) print "Kalhmera"; else if ($h==12) print "Kalo mesimeri"; else print "Kalo apogeyma";?> Αρχείο if.php 11

Παραδείγματα Χρήσης (4).PHP <? for ($i=1; $i<=6; $i=$i+1){ } print "<h".$i.">this is header ".$i."</h".$i.">";?> Αρχείο for.php 12

Παραδείγματα Χρήσης (5).PHP <? $students[0]="nikos"; $students[1]="maria"; for ($i=0; $i<=1; $i=$i+1){ print $students[$i]."<br>"; }?>.PHP <? $students[0]="nikos"; $students[1]="maria"; print_r($students); }?> Αρχείο array.php 13

Παραδείγματα Χρήσης (6) <? $students[0]="nikos"; $students[1]="maria"; $students[2]="mpampis";.php foreach ($students as $name){ print $name."<br>"; }?> Αρχείο foreach.php 14

Παραδείγματα Χρήσης (7).PHP <h1> Footer Test Page</h1> <p> This is the first paragraph. </p> <p>2nd p</p><p>3rd p</p><p>4th p</p> <? include ("footer.htm")?> Αρχείο include.php 15

Παραδείγματα Χρήσης (8) Σχετικά με τα προγράμματα Web Servers Παρουσίαση των HTTP Headers PHP: Headers.php Headers.html phpinfo() 16

Παραδείγματα Χρήσης (9) <html><body>.php <? $struser=$_server["http_user_agent"]; print $struser;?> </body></html> Παράδειγμα: http://www.danasoft.com/vipersig.jpg 17

Save info Το HTTP πρωτόκολλο είναι stateless Λύσεις: Server side λύσεις: Sessions Client side λύσεις (browser) Cookies HTML5 web storage ( cookies version 2 ) 18

Παραδείγματα Χρήσης Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 19

Παραδείγματα Χρήσης Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 20

Sessions Μεταβλητές Session Οι μεταβλητές Session χρησιμοποιούνται για τη διατήρηση πληροφορίας σε περίπτωση διαδοχικών προσβάσεων. Με αυτόν τον τρόπο είναι δυνατή η προσωποποίηση του περιεχομένου. Συνήθως η πληροφορία που αποθηκεύεται στις μεταβλητές αυτές είναι τα username & userid. Για να δημιουργηθεί μια session μεταβλητή, την αποθηκεύουμε σε ένα Session Object. Το session object χρησιμοποιείται για να αποθηκευτεί πληροφορία ή και να αλλαχτούν οι ρυθμίσεις ενός user session. Οι μεταβλητές που αποθηκεύονται στο session object κρατούν την πληροφορία για έναν χρήστη κάθε φορά και είναι διαθέσιμες σε όλες τις σελίδες μιας εφαρμογής. Τα sessions σε αντίθεση με τα cookies αποθηκεύονται στον server και όχι στον client. 21

Cookies VS Sessions Cookies Τα cookies έχουν μεγάλο χρόνο ζωής Δεν υπάρχει πρόβλημα με web clustres Sessions Οι χρήστες δεν θέλουν πληροφορία να αποθηκεύεται στο pc τους Ο χρήστης δεν γνωρίζει, και ούτε μπορεί να δει, τι αποθηκεύεις στον server Δεν χρειάζεται να μεταφέρεται η πληροφορία στον client Μεγαλύτερο μέγεθος από τα cookies 22

Φόρμα (1).PHP <form name="login_form" method="post" action="login.php"> Username: <input type="text" name="username"><br> Password: <input type="password" name="password"><br> <input type="submit" value="login"> </form> Αρχείο login_form.php 23

Φόρμα (2) $_GET[ ] Η πληροφορία που αποστέλλεται από τη φόρμα με τη μέθοδο GET είναι ορατή σε όλους (στο πεδίο διευθύνσεων). Θυμίζουμε ότι η GET περιορίζει την ποσότητα πληροφορίας που μπορεί να σταλεί $_POST[ ] Η πληροφορία που στέλνεται από τη φόρμα με αυτή τη μέθοδο είναι αόρατη στον πελάτη. Η μέθοδος POST δεν έχει περιορισμούς ως προς το μέγεθος της πληροφορίας. 24

Φόρμα (3) Login.PHP <?php session_start();?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-7"/> </head> <?php if (isset($_session['session_username'])) { echo "Έχεις κάνει ήδη login <b>".$_session['session_username']."</b>! Μια φορά αρκεί."; echo "<br><a href='logoff.php'>log off</a>"; } else { if (strlen($_post['username']) < 6 strlen($_post['password']) < 6) { echo "<h2>δεν έχετε δώσει τα σωστά δεδομένα!</h2>"; echo "<br /><a href='login_form.php'><img src='meme.png' /></a>"; } else { $_SESSION['session_username'] = $_POST['username']; echo "Welcome <b>".$_session['session_username']; echo "<br><a href='logoff.php'>log off</a>"; } }?> 25

Φόρμα (4).PHP <? session_start();?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-7"/> </head> <? session_unset();?> <p>ευχαριστούμε που μας επισκεφθήκατε</p> </html> Αρχείο logoff.php 26

Χρήσιμοι Σύνδεσμοι www.php.net www.phpbuilder.com www.w3schools.com/php www.wampserver.com http://www.apachefriends.org/en/xampp.html 27

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 29

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. 30

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Ιωάννης Γαροφαλάκης, 2015. «Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1093/. 31

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 32