Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Προγραμματισμός Παγκόσμιου Ιστού 9 η Διάλεξη Δημοσθένης Κυριαζής Δευτέρα 15 Μαΐου 2017
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 2
Δημιουργία πινάκων Με αρχικοποίηση var colors = ["red", "green", "blue"]; Με την χρήση new Array() για την δημιουργία ενός κενού πίνακα var colors = new Array(); Με την χρήση new Array(n) για την δημιουργία πίνακα συγκεκριμένου μεγέθους var colors = new Array(3); Με την χρήση new Array( ) με δύο ή περισσότερα ορίσματα για την δημιουργία πίνακα με αυτές τις τιμές var colors = new Array("red","green", "blue"); Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 3
Συναρτήσεις (1/4) Μία συνάρτηση είναι αντικείμενο και μπορούμε π.χ. να ορίσουμε: var f = function(x) { if (x > 10) return true; else return false; } var y = f(15); var g = f; var z = g(25); Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 4
Συναρτήσεις (2/4) Απλή κλήση συνάρτησης <html> <head> <script> function myfunction() { alert("hello"); } </script> </head> <body> <form> <input type="button" onclick="myfunction()" value="κλήση συνάρτησης"> </form> <p>με κλικ στο button, θα κληθεί η συνάρτηση που θα εμφανίσει ένα μήνυμα.</p> </body> </html>
Συναρτήσεις (3/4) Συνάρτηση με oρίσματα (arguments) <html> <head> <script> function myfunction(txt) { alert(txt); } </script> </head> <body> <form> <input type="button" onclick="myfunction('καλημέρα!')" value="το Πρωί"> <input type="button" onclick="myfunction('καλό Απόγευμα!')" value="το Απόγευμα"> </form> <p> Με κλικ σ ένα από τα πλήκτρα εντολής, θα κληθεί η συνάρτηση και θα εμφανίσει (alert) το όρισμα που της μεταβιβάζεται. </p> </body> </html> 6
Συναρτήσεις (4/4) Συνάρτηση με oρίσματα που επιστρέφει τιμή Βρίσκει το άθροισμα (sum) δύο ορισμάτων και επιστρέφει το αποτέλεσμα <html> <head> <script> function total(numbera, numberb) { return numbera + numberb } </script> </head> <body> <script> document.write(total(2, 3)) </script> <p> Το script στο τμήμα body καλεί μια συνάρτηση που έχει δύο ορίσματα. </p> <p> Η συνάρτηση επιστρέφει το άθροισμα (sum) αυτών των δύο ορισμάτων.</p> </body> </html> 7
Pop-ups Υλοποιούνται με τις μεθόδους action( sometext ) confirm("sometext") var r=confirm("press a button"); if (r==true) { document.write("you pressed OK!"); } else { document.write("you pressed Cancel!"); } prompt("sometext","defaultvalue") var name=prompt("please enter your name","myname"); if (name!=null && name!="") { document.write("hello " + name + "! How are you today?"); } Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 8
Αλληλεπίδραση με HTML Η JavaScript μπορεί να έχει πρόσβαση στην HTML σελίδα και να αλλάξει, να προσθέσει ή να αφαιρέσει κάθε element ή attribute σε element Η πρόσβαση γίνεται μέσω του HMTL DOM (Document Object Model) document.documentelement όλο το HTML document.body το body document.getelementbyid( mydiv ) element με το συγκεκριμένο id document.myform φόρμα με το συγκεκριμένο όνομα Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 9
Ανάκτηση HTML στοιχοίων του εγγράφου (1/2) Όνομα Ιδιότητας Επιστρέφει getelementbyld(<id>) Αντικείμενο τύπου HTMLEIement getelementsbyclassname(<dass>) Array αντικειμένων, HTMLEIement [ ] getelementsbyname(<name>) Array αντικειμένων, HTMLEIement [ ] getelementsbytagname(<tag>) Array αντικειμένων, HTMLEIement [ ] queryselector(<selector>) To 1 ο στοιχείο με τον δεδομένο CSS selector q ueryselectorall (<selector>) Array αντικειμένων, HTMLEIement [ ] Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 49
Ανάκτηση HTML στοιχοίων του εγγράφου (2/2) Όνομα Ιδιότητας Επιστρέφει activeelement HTMLEIement που έχει το «focus» body HTMLEIement που αναπαριστά το «σώμα» forms HTMLCollection (όλες οι φόρμες) head HTMLHeadElement (και τύπου HTMLEIement) images HTMLCollection (όλες οι εικόνες <img>) links HTMLCollection (όλοι οι σύνδεσμοι <a>) scripts HTMLCollection (όλα τα στοιχεία <script>) Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 50
Επεξεργασία των attibutes Στο ακόλουθο παράδειγμα: <a id= mylink href= http://www.unipi.gr title= Link to my university >Press Here</a> Tα attributes αλλάζουν ως εξής document.getelementbyid( mylink ).href = http://www.ds.unipi.gr ; document.getelementbyid( mylink ).title = a new title ; document.getelementbyid( mylink ).innerhtml = Πατήστε εδώ ; Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 12
Event handlers Είναι ο τρόπος με τον οποίο συνδέουμε events με JS functions Μοιάζουν με τα συνήθη HTML attributes Ξεκινούν με την λέξη «on» ακολουθούμενη από το event name π.χ. onmouseover = myonmouseover(); π.χ. onmouseover = alert(some message); Οι event handlers μπορεί να αναφέρονται σε τρία επίπεδα ολόκληρου του εγγράφου μιας φόρμας ενός στοιχείου μιας φόρμας Στην HTML5 event handlers μπορούν να προστεθούν σε οποιοδήποτε element Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 13
Events Window Events onload onunload Form Events onchange onsubmit onreset onselect onblur onfocus Η HTML5 έχει εισάγει πολλά νέα events! http://www.w3schools.com/tags/ref_ eventattributes.asp Keyboard Events onkeydown onkeypress onkeyup Mouse Events onclick ondblclick onmousedown onmousemove onmouseout onmouseover onmouseup 27
Event handlers σε φόρμες Τα elements της φόρμας μπορούν να χειρίζονται διάφορα events focus Αποκτά το focus (π.χ. ο κέρσορας σε ένα textfield) blur χάνει το focus change αλλάζει το value Το option tag δεν δημιουργεί τα παραπάνω συμβάντα Όλοι οι τύποι button έχουν click event handlers με τη χρήση του onclick attribute Παράδειγμα: <form name="myform"> <input type="radio" name="payment" value="1" checked onclick="insok()"> Personal Check <input type="radio" name="payment" value= "2" onclick="insok()"> Gold Bullion </br> <input type= "checkbox" name= "insurance" > Insurance? </form> Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 15
Επικύρωση πεδίου για πλήθος χαρακτήρων <html><head> <script> function validate() { x=document.myform; input=x.myinput.value; if (input.length>5) { alert("όχι περισσότερους από 5 χαρακτήρες"); return false } else { return true } } </script></head> <body> <form name="myform" action="submitpage.html" onsubmit="return validate()"> Μην γράψετε περισσότερους από 5 χαρακτήρες : <input type="text" name="myinput"> <input type="submit" value="send input"> </form> </body></html> 16
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 17
Εισαγωγή Τα αρχεία της ΡΗΡ έχουν κατάληξη.php Αποθηκεύονται και εκτελούνται στον διακομιστή web Ο πελάτης/browser δεν έχει πρόσβαση σε αυτά αλλά στο παραγόμενο αποτέλεσμα Τα αρχεία περιέχουν κατά βάση κώδικα HTML, CSS, JavaScript, όπου παρεμβάλλεται κώδικας ΡΗΡ Δεν χρειάζεται να κάνετε compile κάτι ή να εγκαταστήσετε επιπλέον λογισμικό τα αρχεία εκτελούνται από τον διακομιστή web 18
Client-Server & PHP Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 19
Ιστορία (1/2) To 1995 ο Rasmus Lerdorf έγραψε σε C προγράμματα CGI CGI: Common Gateway Interface Πρότυπο επικοινωνίας Web Server με εκτελεσιμα που δημιουργούν δυναμικές σελίδες Για τη διαχείριση της προσωπικής του ιστοσελίδας Έγραψε επεκτάσεις για διαχείριση φορμών HTML και επικοινωνία με ΣΔΒΔ Ονόμασε το λογισμικό του Personal Home Page / Form Interpreter (PHP/FI) 2η Έκδοση της PHP/FI το 1997 20
Ιστορία (2/2) Οι Zeev Suraski, Andi Gutmans έγραψαν εκ νέου τον διερμηνευτή (1997) Δημιουργήθηκε η βάση για την ΡΗΡ 3 Άλλαξαν το όνομα σε ΡΗΡ = ΡΗΡ Hypertext Preprocessor Δημιουργείται η 4η Έκδοση της ΡΗΡ το 2000 5η Έκδοση το 2004 και υποστηρίζεται μέχρι σήμερα 6η Έκδοση δεν δημιουργήθηκε ποτέ, διότι δεν υποστήριζε Unicode Πιο πρόσφατη έκδοση η ΡΗΡ 7 (2014-2015) Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 21
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 22
XAMPP Διανομή «στοίβας» τεχνολογιών για ανάπτυξη εφαρμογών ιστού Περιλαμβάνει Apache HTTP με δυνατότητα διερμηνείας ΡΗΡ MariaDB - Εκδοχή ανοικτού κώδικα του ΣΔΒΔ MySQL Τα αρχικά ΧΑΜΡΡ σημαίνουν X: cross-platform, για όλες τις πλατφόρμες (Windows, Linux, Mac OS) A: Apache HTTP Server M: MySQL P: PHP P: Perl Διαθέσιμο από την διεύθυνση: https://www.apachefriends.org 23
XAMPP - Διαδικασία Εκκινούμε το XAMPP Control Panel. καλύτερα σαν administrator (δεξί click, «Run as Administrator») Από εκεί προσβαίνουμε σε παραμέτρους των Servers που περιλαμβάνονται Μπορούμε να εκκινήσουμε ή να σταματήσουμε έναν server Τα αρχεία.php τοποθετούνται στο folder htdocs Βρίσκεται στο folder εγκατάστασης του XAMPP Συνήθως στο C:/XAMPP/htdocs Πρόσβαση σε σελίδες.php με http://localhost/test.php 24
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 25
Βασική σύνταξη ΡΗΡ (1/3) Ένα ΡΗΡ script μπορεί να τοποθετηθεί οπουδήποτε στο έγγραφο Ξεκινά με <?php και τελειώνει με?>. <?php echo "<p>hello World</p>";?> Μπορούμε να παρεμβάλουμε όσες φορές θέλουμε τον ίδιο κώδικα Ο κώδικας εκτελείται σειριακά, όπως διαβάζεται Οι περισσότερες εντολές τελειώνουν με ερωτηματικό Προσοχή με την σύνταξη για να αποφύγουμε πιθανά λάθη χρησιμοποιείτε εισαγωγικά, παρενθέσεις και αγκύλες σε ζεύγη προσοχή στα πεζά/κεφαλαία η ΡΗΡ αγνοεί τα κενά 26
Βασική σύνταξη ΡΗΡ (2/3) Αρχείο.php Πηγαίος κώδικας που βλέπει ο browser Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 27
Βασική σύνταξη ΡΗΡ (3/3) Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 28
Σχόλια στην ΡΗΡ Γραμμές που δεν διαβάζονται / εκτελούνται ως μέρος του προγράμματος Διαβάζονται από κάποιον που επεξεργάζεται τον κώδικα Χρήσιμα για να μπορεί κάποιος άλλος να καταλάβει τι κάνετε σε κάθε βήμα ως υπενθύμιση στον εαυτό μας του τι κάναμε Τρεις τρόποι σχολιασμού // One-line Comment # Also one-line comment / * Multiple lines comment */ 29
Σύνταξη Δεν είναι case-sensitive Λειτουργίες (συναρτήσεις) που ορίζονται από τον προγραμματιστή Οι κλάσεις που ορίζονται από τον προγραμματιστή Οι λεξεις-κλειδιά (π.χ. if, else, while, echo) Είναι case-sensitive: τα ονόματα των μεταβλητών 30
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 31
Μεταβλητές (1/5) Οι μεταβλητές είναι «δοχεία» για την αποθήκευση πληροφοριών Δεν υπάρχουν συγκεκριμένοι τύποι μεταβλητών π.χ. int, string Μπορούν να αλλάξουν τιμές με νέα δήλωση τιμής Αρχίζουν με το σήμα του δολαρίου $ και ακολουθεί όνομα μπορεί να περιέχει γράμματα (Α-z), αριθμούς (0-9) και _ όχι άλλους ειδικούς χαρακτήρες όπως κενά Παράδειγμα: $price_a1 Μια μεταβλητή δημιουργείται με την ανάθεση τιμής Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 32
Μεταβλητές (2/5) <?php $txt="hello World!"; $x=5; $y=10.5;?> Υποστηρίζονται οι τύποι δεδομένων int: 5, 7 15 float, double, real: 0.56, 3.14 string: "Hello", "Red 15" bool, boolean: true/false array: ["Fiat", "Mercedes", "Nissan"] οbject: τύπος αντικειμένου για σύνθετα αντικείμενα NULL: «όχι τιμή» 33
Μεταβλητές (3/5) Οι μεταβλητές μπορούν να δηλωθούν οπουδήποτε στο script Η χρήση τους καθορίζεται από το σημείο, όπου αναφέρονται/χρησιμοποιούνται Τρεις διαφορετικές χρήσεις για τις μεταβλητές local global static Global: δηλώνονται και χρησιμοποιούνται εκτός συνάρτησης Local: δηλώνονται και χρησιμοποιούνται εντός συνάρτησης Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 34
Μεταβλητές (4/5) Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 35
Μεταβλητές (5/5) 'Οταν μια συνάρτηση ολοκληρωθεί/εκτελεστεί, οι local μεταβλητές της διαγράφονται Μερικές φορές θέλουμε μια local μεταβλητή να κρατήσει την τιμή της Σε αυτή την περίπτωση, χρησιμοποιοούμε τη λέξη κλειδί static 36
Πίνακες Ένα array αποθηκεύει πολλαπλές τιμές σε μία μοναδική μεταβλητή Τρεις τύποι πινάκων Array με δείκτες - Πίνακες με αριθμητικό δείκτη Associative array - Πίνακες με κλειδιά ονομάτων Πολυδιάστατα arrays - Πίνακες που περιέχουν μία ή περισσότερες συστοιχίες 37
Associative arrays Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 38
Συμβολοσειρές Διπλά εισαγωγικά > αντικατάσταση Μονά εισαγωγικά > μη-αντικατάταση Συνένωση με τον τελεστή τελεία Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 39
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 40
Αριθμητικοί τελεστές Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 41
Τελεστές ανάθεσης Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 42
Τελεστές σύγκρισης Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 43
Λογικοί τελεστές Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 44
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 45
Συνθήκη if-else/elseif 46
Συνθήκη switch Χρησιμοποιείται για να εκτελέσει διάφορες ενέργειες που βασίζονται σε διαφορετικές συνθήκες Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 47
Βρόχοι επανάληψης (1/2) Η ΡΗΡ προσφέρει τέσσερεις δυνατότητες while: διέρχεται μέσω ενός μπλοκ του κώδικα, εφόσον η συνθήκη ελέγχου είναι αληθής do... while: διέρχεται μέσω ενός μπλοκ του κώδικα μια φορά, και στη συνέχεια επαναλαμβάνει το βρόχο όσο η συνθήκη ελέγχου είναι αληθής for: διέρχεται μέσω ενός μπλοκ του κώδικα ένα συγκεκριμένο αριθμό φορών foreach: διέρχεται μέσω ενός μπλοκ του κώδικα για κάθε στοιχείο σε array Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 48
Βρόχοι επανάληψης (2/2) Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 49
Βρόχος foreach Διευκολύνει την πρόσβαση στις τιμές ενός array Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 50
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 51
Superglobals (1/2) Ενσωματωμένες σε μεταβλητές που είναι πάντα διαθέσιμες Προσβάσιμες από οποιαδήποτε συνάρτηση ή αρχείο Εισηγμένες από την ΡΗΡ 4.1.0 και μετά Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 52
Superglobals (2/2) Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 53
Παράδειγμα <?php $x = 4; $y = 3; function addition() { $GLOBALS['z']= $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z;?> <?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME'];?> Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 54
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 55
Συναρτήσεις Η ΡΗΡ περιέχει περισσότερες από 1000 ενσωματωμένες συναρτήσεις Μπορείτε εύκολα να δημιουργήσετε δικές σας Είναι σύνολο εντολών που μπορούν να κληθούν ξανά και ξανά Μία συνάρτηση δεν εκτελείται άμεσα κατά τη φόρτωση της σελίδας Εκτελείται μόνο κάποια κλήση της Γενική μορφή ορισμού συνάρτησης Παράδειγμα 56
Ορίσματα συναρτήσεων Γενική μορφή ορισμού συνάρτησης Πληροφορίες μπορούν να εισαγχθούν σε μια συνάρτηση μέσω ορισμάτων Τα ορίσματα καθορίζονται μετά από το όνομα της συνάρτησης, μέσα στις παρενθέσεις Μπορείτε να προσθέσετε όσα ορίσματα θέλετε, απλώς τα χωρίζετε με ένα κόμμα 57
Προκαθορισμένες τιμές ορισμάτων Μπορούμε να θέσουμε μια προκαθορισμένη τιμή σε ένα ή περισσότερα ορίσματα, ώστε αν δεν αποστείλουμε τιμή να λαμβάνει αυτή Ορισμός με προκαθορισμένα ορίσματα Παράδειγμα Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 58
Επιστροφή τιμής Η συνάρτηση μπορεί επίσης να μας επιστρέφει κάποια τιμή. Αυτό γίνεται με την εντολή return Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 59
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 60
Εισαγωγή Δήλωση κλάσεων με τη λέξη-κλειδί class Προσοχή: τα ονόματα των κλάσεων είναι case-sensitive Ενσωματωμένη συνάρτηση print_r: εκτυπώνει πληροφορίες για το αντικείμενο σε αναγνώσιμη μορφή
Δημιουργία αντικειμένων Με τη λέξη-κλειδί new $object = new User; $object = new User('John Doe', 'j0hnd03'); Μια κλάση μπορεί να απαιτεί ή να απαγορεύει τα ορίσματα στην αρχικοποίηση Μπορεί επίσης να τα επιτρέπει, αλλά να μην τα απαιτεί Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 62
Πρόσβαση σε αντικείμενα (1/2) Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 63
Πρόσβαση σε αντικείμενα (2/2) Πρόσβαση στην (public) ιδιότητα property αντικειμένου $object με: $object->property και όχι με $object-> $property Με παρόμοιο τρόπο καλούμε μεθόδους: $object->save_user(); Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 64
Κλονοποίηση αντικειμένων Έξοδος Έξοδος 65
Κατασκευαστές Ορίζονται με ορισμό της μεθόδου με όνομα _construct Η λέξη-κλειδί $this δίνει πρόσβαση στο αντικείμενο εντός των μεθόδων του Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 66
Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης Εισαγωγή XAMPP Βασική σύνταξη Μεταβλητές Τελεστές Συνθήκες / βρόχοι επανάληψης Superglobals Συναρτήσεις Αντικείμενα PHP & Φόρμες HTML Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 67
Εισαγωγή Κάθε στοιχείο φόρμας HTML είναι αυτόματα διαθέσιμο στο ΡΗΡ script Ανάκτηση δεδομένων από φόρμες με τις Superglobal μεταβλητές $_GET $_POST Τα δεδομένα που εισάγονται σε φόρμες πρέπει να ελέγχονται στον browser Όπου και εφόσον είναι εφικτό, από client-side scripts (JS) Πιο ταχύς έλεγχος, που μειώνει το φόρτο του server Server-side έλεγχος απαιτείται αν πρόκειται να εισαχθούν σε βάση δεδομένων
Χειρισμός φορμών Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 69
Οι μέθοδοι GET και POST (1/3) Είναι οι πιο συχνά χρησιμοποιούμενος μέθοδοι του πρωτοκόλλου HTTP Άλλες μέθοδοι του HTTP HEAD, PUT, DELETE, OPTIONS, CONNECT Υλοποιούνται με πληροφορία συγκεκριμένης μορφής Η πληροφορία αυτή ανταλλάσσεται μεταξύ clientserver Μεταφέρεται μέσω του πρωτοκόλλου TCP/IP Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 70
Οι μέθοδοι GET και POST (2/3) Oι αιτήσεις (requests) GET (προς το πρωτόκολλο HTTP) μπορούν να γίνουν cached μπορούν να παραμένουν στο ιστορικό του browser μπορούν να γίνουν bookmarked δεν πρέπει να χρησιμοποιούνται με ευαίσθητα δεδομένα έχουν περιορισμούς στο μήκος (του URL) πρέπει να χρησιμοποιούνται μόνο για ανάκτηση δεδομένων Παράδειγμα πληροφορίας GET /test/demo_form.asp?namel=valuel&name2=value2 71
Οι μέθοδοι GET και POST (3/3) Oι αιτήσεις (requests) POST (προς το πρωτόκολλο HTTP) δε γίνονται ποτέ cached δεν παραμένουν στο ιστορικό του browser δε μπορούν να γίνουν bookmarked δεν έχουν περιορισμούς στο μήκος των δεδομένων Παράδειγμα πληροφορίας POST POST /test/demo_form.asp HTTP/1.1 Host: w3schools.com namel=valuel&name2=value2 Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 72
Χρήση της Superglobal μεταβλητής $_REQUEST Χρησιμοποιείται για την πρόσβαση δεδομένων φόρμας που έχουν αποσταλεί είτε με μέθοδο GET είτε με μέθοδο POST Προγραμματισμός Παγκόσμιου Ιστού, 9η Διάλεξη 73
Αυτοδιαχείριση φόρμας