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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Εισαγωγή στον Προγραμματισμό

ΕΠΛ 012. JavaScripts

Εισαγωγή στην πληροφορική

Τεχνικός Εφαρμογών Πληροφορικής

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Εισαγωγή στον Προγραμματισμό

Ανάπτυξη και Σχεδίαση Λογισμικού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Αντικειµενοστρεφής Προγραµµατισµός

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

Αντικειμενοστρεφής Προγραμματισμός

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Δομημένος Προγραμματισμός (ΤΛ1006)

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Εισαγωγή στην γλώσσα προγραμματισμού C

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

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

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

Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ PHP. PHP 2: The Return of PHP Η Δευτέρα Παρουσίαση

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Εισαγωγή στη γλώσσα προγραμματισμού C++

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Εισαγωγή στον Προγ/μό Υπολογιστών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Εισαγωγή στην Αριθμητική Ανάλυση

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Στοιχειώδης προγραμματισμός σε C++

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Παρουσίαση PHP. Μιχάλης Ζήσης GreekLUG

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

Διαδικασιακός Προγραμματισμός

Η γλώσσα προγραμματισμού C

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Βασικές Αρχές Προγραμματισμού

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Τύποι δεδομένων, τελεστές, μεταβλητές

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Προγραμματισμός και Εφαρμογές Υπολογιστών

Εισαγωγή στον Προγραμματισμό

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Δομημένος Προγραμματισμός

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Τεχνικός Εφαρμογών Πληροφορικής

Υπολογισμός - Εντολές Επανάληψης

Ηλεκτρονικοί Υπολογιστές

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Κεφάλαιο 4: Μεταβλητές και εκφράσεις

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

Διορθώσεις σελ

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

Transcript:

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~ Στελιος Σφακιανάκης Εαρινό 2019 Αυτή η εργασία χορηγείται με άδεια Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 1

Server-side programming Browser 1 Request for PHP resource Web server 4 Display in browser 3 Output from PHP execution (b) Server script execution Web server 2 PHP code in requested resource is executed. Connolly, Randy. Fundamentals of web development. Pearson Education, 2015. Ο προγραμματισμός στην πλευρά του εξυπηρετητή (server-side programming) επιτρέπει τη δημιουργία δυναμικών σελίδων (σε αντιδιαστολή με τις στατικές σελίδες που είναι απλή HTML) Παράδειγμα δυναμικής σελίδας: Μια σελίδα που δείχνει τις τρέχουσες κρατήσεις σε ένα εστιατόριο. Αυτή η σελίδα δεν μπορεί να είναι στατική γιατί οι κρατήσεις αλλάζουν συνεχώς. Ο εξυπηρετητής ιστού (web server) δέχεται κλήσεις από χρήστες (μέσω του browser) και εκτελεί εντολές -- γραμμένες σε σενάρια εντολών (scripts) -- οι οποίες παράγουν το τελικό HTML που στέλνεται στο χρήστη. Στη μεγάλη πλειοψηφία των δυναμικών σελίδων, το περιεχόμενο παράγεται από τα δεδομένα που αποθηκεύονται σε μια βάση δεδομένων στο server. Το script επομένως θα πρέπει να έχει εντολές με τις οποίες επικοινωνεί με βάσεις δεδομένων για να αποθηκεύσει, ανακτήσει, και να αλλάξει τα δεδομένα 2

Τι μπορεί να κάνει ένα script; Στον Server ένα script μπορεί να κάνει πάρα πολλά: Να διαβάσει/γράψει στο σύστημα αρχείων Να στείλει mail Να επικοινωνήσει με άλλους servers και διαδικτυακές υπηρεσίες Να γράψει/διαβάσει σε μια βάση δεδομένων... 3

"PHP: Hypertext Preprocessor" Η πιο δημοφιλής γλώσσα προγ/μού για server-side programming (δείτε επόμενο slide) Δημιουργήθηκε το 1994 για προσωπική χρήση από τον Rasmus Lerdorf, όντας φοιτητής, για προσωπική χρήση: "Personal Home Page" Έκτοτε είχε σταθερά ανοδική πορεία, τρέχουσα έκδοση : 7.3.3 ("stable" version) Τεκμηρίωση, νέα, downloads : https://www.php.net 4

~80% των ιστοχώρων χρησιμοποιεί PHP! Δεδομένα Μαρτίου 2019, https://w3techs.com/technologies/details/pl-php/all/all 5

Βασικά στοιχεία προγ/μου PHP Τα PHP scripts εισάγονται μέσα σε αρχεία με κατάληξη ".php" Μπορούμε να αναμείξουμε εντολές PHP και κώδικα HTML μέσα στο ίδιο script: οι PHP εντολές γράφονται πάντα μέσα σε <?php και?> Μεταβλητές εισάγονται με $ (δολάριο). Τα ονόματα τους είναι case-sensitive, πρέπει να περιέχουν μονο γράμματα και αριθμούς αλλά μπορούν να ξεκινούν με την κάτω παύλα ("underscore"), π.χ. $_myname Σύνταξη βασισμένη στη γλώσσα C, π.χ. Οι εντολές χωρίζονται με ; (ερωτηματικό) Σχόλια πολλαπλών γραμμών περικλείονται σε /* και */ ενώ μέχρι το τέλος της γραμμής εισάγονται με το // Εντολές ελέγχου (π.χ. επανάληψη) όπως και στη C: if/then/else, while, for, do/while echo και print κάνουν "εκτύπωση" Ό,τι τυπώνουν όμως εμφανίζεται ως HTML στον browser Στο ίδιο αρχείο PHP μπορούμε να έχουμε πολλά τμήματα με εντολές PHP, δείτε επόμενο παράδειγμα 6

<!DOCTYPE html> <head> <title>my first PHP script</title> </head> <body> <?php?> echo "Hello from PHP"; <p>this is HTML...</p> <?php echo "This is from PHP";?> </body> </html> 7

Παίρνοντας πληροφορία για τον server και την έκδοση του PHP <?php phpinfo();?> Δημιουργούμε ένα αρχείο με κατάληξη.php στον web host, π.χ info.php Βάζουμε την κλήση της phpinfo όπως φαίνεται παραπάνω Ανοίγουμε με τον browser το url που αντιστοιχεί σε αυτό το script 8

Τύποι Δεδομένων Η PHP είναι weakly-typed (π.χ. όπως η Python), δηλ. δεν χρειάζεται να δηλώνουμε ότι μια μεταβλητή έχει ακέραιο τύπο δεδομένων Κλασικοί τύποι δεδομένων: Ακέραιοι, με μέγεθος τουλάχιστον 4 bytes (32 bits) Λογικές (boolean) με τιμές true ή false Πραγματικοί (δεκαδικοί, κινητής υποδιαστολής) "διπλής" ακρίβειας (double) Αλφαριθμητικά (strings) μέσα σε μονά (') ή διπλά εισαγωγικά (") π.χ. "PHP is great!" Σύνθετοι τύποι : αντικείμενα (objects, δεν θα μας απασχολήσουν), και arrays! 9

Arrays Ένας πολύ χρήσιμος τύπος δεδομένων Μια σειρά από "αντικείμενα" στα οποία μπορούμε να αναφερθούμε με βάση της "θέση" τους (index) Στην PHP τα arrays είναι επί της ουσίας ζευγάρια από keys και values ("αν δώσεις ένα key παίρνεις το αντίστοιχο value") Τα keys όμως εκτός από ακέραιοι μπορεί να είναι και strings! Και τα values μπορεί να είναι οτιδήποτε, ακόμα και άλλα arrays! Εισάγεται με τη συνάρτηση "array" ή με [...] (από την έκδοση 5.4). Η σύνταξη array("key" => "value") δημιουργεί ένα array όπου το key γίνεται map στο value 10

Τελεστές Συνήθεις αριθμητικοί: +, -, *, /, % (υπόλοιπο διαίρεσης), ** (ύψωση σε δύναμη) Μοναδιαίοι αύξησης και μείωσης κατά ένα, π.χ. $a++, --$a Και πολλοί περισσότεροι μέσω μαθηματικών συναρτήσεων: https:// www.php.net/manual/en/ref.math.php Λογικοί, π.χ. &&,,! Ένωση αλφαριθμητικών (strings) με την τελεία, π.χ. "Hi ". "there" -> "Hi there" Συγκρίσεις: == (ισότητα), === (ισότητα αλλά με ίδιο τύπο),!=,!==, <, >, >=, =< Συμβουλευτείτε το https://www.w3schools.com/php/ php_operators.asp 11

Συναρτήσεις για arrays count: επιστρέφει το μήκος του array array_push: εισάγει ένα (ή περισσότερα) στοιχεία στο τέλος ενός array array_slice: επιστρέφει ένα υπο-array (τμήμα του αρχικού array) sort : ταξινόμηση των στοιχείων του array Δείτε τα στο https://www.php.net/manual/en/ function.array.php 12

Εντολή επανάληψης "foreach" Πολύ βολικό όταν θέλουμε να κάνουμε κάτι σε κάθε στοιχείο ενός array.. χωρίς να γνωρίζουμε το μήκος του array! Δείτε το παράδειγμα: 13

Ενσωμάτωση μεταβλητών σε strings Υπάρχει διαφορά μεταξύ των μονών (') και διπλών (") εισαγωγικών για strings: Με τα διπλά εισαγωγικά ("..") μπορούμε να ενσωματώσουμε μεταβλητές έτσι ώστε να αντικατασταθούν με την τιμή τους Αν έχουμε πολύπλοκες εκφράσεις μπορούμε να τις βάλουμε μέσα σε αγκύλες { }. Δείτε το παρακάτω παράδειγμα: 14

Χρήσιμα (κυρίως για debugging) var_dump : τυπώνει πληροφορία για μια μεταβλητή (π.χ. τον τύπο δεδομένων της) print_r : τυπώνει την τιμή μιας μεταβλητής σε πιο κατανοητή μορφή die("...") : προκαλεί τερματισμό του script με ένα μήνυμα λάθους 15

Συναρτήσεις Strings strlen : μήκος ενός string strrev : αντιστροφή string str_replace : αντικατάσταση ενός string με κάτι άλλο μέσα σε ένα μεγαλύτερο string implode/explode: ένωση/διαχωρισμός στοιχείων array σε string με κάποιο delimiter Και πολλά περισσότερα: https://www.php.net/manual/en/ref.strings.php 16

Συναρτήσεις Χρήστη Μπορείτε να ορίσετε δικές σας συναρτήσεις με το function Επιστρέφουμε τιμές με το return Μεταβλητές που παίρνουν τιμές μέσα σε συναρτήσεις έχουν "τοπικό" scope (local scope), δείτε παράδειγμα παρακάτω: 17

Include και Require Πολλές φορές είναι προτιμότερο να έχουμε τον κώδικα μας μοιρασμένο σε περισσότερα του ενός αρχεία. Π.χ. μπορούμε να έχουμε τις συναρτήσεις μας σε ένα functions.php αρχείο το οποίο να (επανα)χρησιμοποιείται από άλλα αρχεία PHP Με την εντολή include 'functions.php' μπορούμε να ενσωματώσουμε τις εντολές του functions.php σε άλλο αρχείο Το require είναι όπως το include αλλά αν αποτύχει τότε τερματίζεται το script! 18