ΣΗΜΕΙΩΣΕΙΣ. Ενότητα 1.1 Ιστορία της PHP. Ενότητα 1.2 Πλεονεκτήματα της PHP

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

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

Ιστορία της PHP

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

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

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

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

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

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

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

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

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

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

databases linux - terminal (linux / windows terminal)

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

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

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

XAMPP Apache MySQL PHP javascript xampp

Εισαγωγή στο PHP. Τί είναι το PHP. Σταύρος Πολυβίου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1ος τρόπος <? echo ("Είναι η απλούστερη, μια εντολή επεξεργασίας SGML \n");?> 2ος τρόπος <?php echo("αν θέλουμε να εξυπηρετήσουμε XML έγγραφα \n");?

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

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

Ασφάλεια Υπολογιστών Και Δικτύων. Προσομοίωση επίθεσης σε ευπαθές σε SQL Injection σύστημα και απόκτηση κονσόλας διαχειριστή

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

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

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

Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

ΘΕΜΑ. Ανάπτυξη διαδικτυακής εφαρμογής για την διαχείριση εμπορικού καταστήματος ενοικίασης ταινιών με χρήση Php, Mysql, Apache

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2

Άσκηση. Εξοικείωση με την πλατφόρμα Moodle

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

Web Programming for Dummies

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

Ανάπτυξη διαδικτυακών εφαρμογών με την Python Το εργαλείο Flask

ΤΕΙ ΚΑΒΑΛΑΣ Σχολή Τεχνολογικών Εφαρμογών Τμήμα Βιομηχανικής Πληροφορικής

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

Εργαστήριο βάσεων δεδομένων. MySQL Stored Procedures

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

Εργαστήριο #10 (Ε10) 1

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

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

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

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

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

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

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Συγκριτική μελέτη σύγχρονων τεχνολογιών ανάπτυξης διαδικτυακών εφαρμογών» Όνομα Σπουδαστή Λυμπούδη Φωτεινή

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

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

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

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

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT

ΚΕΦΑΛΑΙΟ Web Services

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

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

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

Vodafone Business Connect

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής

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

ΟΝΟΜΑ : ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΩΝΥΜΟ : ΚΟΚΟΛΟΓΟΣ Α.Μ. : Ε11060 ΕΞΑΜΗΝΟ : ΕΠΙ ΠΤΥΧΙΟ ΤΜΗΜΑ : ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ : ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΕΦΑΡΜΟΓΗ

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

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

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

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

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

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

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

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

Ρυθμίσεις εγκατάστασης ονόματος χώρου σε πίνακα ελέγχου plesk

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

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

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, PIRCH 32 v0.92b

Transcript:

ΣΗΜΕΙΩΣΕΙΣ Ενότητα 1.1 Ιστορία της PHP Η ιστορία της PHP ξεκινά το 1995, όταν ένας φοιτητής, ο Rasmus Lerdorf, δημιούργησε χρησιμοποιώντας τη γλώσσα προγραμματισμού Perl ένα απλό script με όνομα php.cgi, για προσωπική χρήση. Το script αυτό είχε σκοπό να διατηρεί μια λίστα στατιστικών για τα άτομα που έβλεπαν το online βιογραφικό του σημείωμα. Αργότερα, αυτό το script το διέθεσε και σε φίλους του, οι οποίοι άρχισαν να του ζητούν να προσθέσει περισσότερες δυνατότητες. Η γλώσσα τότε ονομαζόταν PHP/FI από τα αρχικά Personal Home Page/Form Interpreter. Το 1997 η PHP/FI έφθασε στην έκδοση 2.0, βασιζόμενη αυτή τη φορά στη γλώσσα C και αριθμώντας περισσότερους από 50.000 ιστότοπους που τη χρησιμοποιούσαν, ενώ αργότερα την ίδια χρονιά οι Andi Gutmans και Zeev Suraski ξαναέγραψαν τη γλώσσα από την αρχή (βασιζόμενοι όμως αρκετά στην PHP/FI 2.0) η οποία θύμιζε περισσότερο τη σημερινή μορφή της. Στη συνέχεια, οι Zeev και Andi δημιούργησαν την εταιρεία Zend (από τα αρχικά των ονομάτων τους), η οποία συνεχίζει μέχρι και σήμερα την ανάπτυξη και εξέλιξη της γλώσσας PHP. Ακολούθησε το 1998 η έκδοση 3 της PHP και τον Μάιο του 2000 διατέθηκε η έκδοση 4. Αυτή τη στιγμή βρίσκεται στην έκδοση 5, ενώ έχουν ήδη διατεθεί και οι πρώτες δοκιμαστικές εκδόσεις της επερχόμενης PHP 6, για οποιονδήποτε προγραμματιστή θέλει να τη χρησιμοποιήσει. Ενότητα 1.2 Πλεονεκτήματα της PHP Κάποιοι από τους βασικούς ανταγωνιστές της PHP είναι οι Perl, Microsoft Active Server Pages (ASP) και Java Server Pages (JSP). Σε σύγκριση με αυτά τα προϊόντα, η PHP έχει πολλά πλεονεκτήματα, όπως: Υψηλή απόδοση: Η PHP είναι πολύ αποτελεσματική. Με ένα φθηνό διακομιστή, μπορείτε να εξυπηρετήσετε εκατομμύρια επισκεπτών καθημερινά. Οι δοκιμές που δημοσιεύθηκαν από την Zend Technologies (http://www.zend.com), δείχνουν ότι η PHP ξεπερνά τους ανταγωνιστές της. Διασυνδέσεις με πολλά διαφορετικά συστήματα βάσεων δεδομένων: Η PHP δίνει τη δυνατότητα σύνδεσης με πολλά συστήματα βάσεων όπως τις MySQL, MS SQL, Oracle, dbm, filepro, Hyperwave, Informix και Sybase μεταξύ άλλων. Επίσης κάνοντας χρήση του Open Database Connectivity Standard (ODBC), μπορείτε να συνδεθείτε σε οποιαδήποτε βάση δεδομένων παρέχει ένα πρόγραμμα οδήγησης ODBC. Ενσωματωμένες βιβλιοθήκες για πολλές συνηθισμένες Web διαδικασίες: Επειδή η PHP σχεδιάστηκε για να χρησιμοποιείται στο Web, έχει πολλές ενσωματωμένες βιβλιοθήκες, που εκτελούν πολλές χρήσιμες λειτουργίες σχετικές με το Web. Μπορείτε να δημιουργήσετε εικόνες GIF δυναμικά, να συνδεθείτε με άλλες υπηρεσίες δικτύων, να στείλετε ηλεκτρόνιο ταχυδρομείο,

να δουλέψετε με cookies και να δημιουργήσετε PDF έγγραφα. Όλα αυτά με λίγες γραμμές κώδικα. Χαμηλό κόστος: Η PHP λόγω του ότι είναι ανοικτού κώδικα διανέμεται δωρεάν. Ευκολία μάθησης και χρήσης: Η σύνταξη της PHP βασίζεται σε άλλες γλώσσες προγραμματισμού, βασικά στη C και στην Perl. Αν ήδη γνωρίζετε C ή Perl, ή μία γλώσσα παρόμοια με την C, όπως την Java, θα αρχίσετε να προγραμματίζετε σε PHP σχεδόν αμέσως. Μεταφερσιμότητα: Η PHP είναι διαθέσιμη για πολλά λειτουργικά συστήματα. Μπορείτε να γράψετε κώδικα PHP για open source λειτουργικά συστήματα, όπως τα Linux, FreeBSD, Solaris και IRIX, ή για διαφορετικές εκδόσεις των Windows. Διαθεσιμότητα του πηγαίου κώδικα: Έχετε πρόσβαση στον πηγαίο κώδικα της PHP. Αντίθετα με εμπορικά, κλειστά προϊόντα, αν υπάρχει κάτι που θέλετε να αλλάξετε ή να προσθέσετε στη γλώσσα μπορείτε να το κάνετε. "PHP and MySQL Web Development" Luke Welling Laura Thomson Ενότητα 1.3 Λειτουργία της PHP Η PHP τρέχει σε ένα διακομιστή με σκοπό να δέχεται (ως input) κώδικα PHP, να επικοινωνεί (όποτε αυτό χρειάζεται) με τη βάση δεδομένων (π.χ. με την MySQL) και να κατασκευάζει Web σελίδες (ως output) σε μορφή HTML. Ένα αρχείο με κώδικα PHP θα πρέπει να έχει την κατάλληλη επέκταση (π.χ. *.php, *.php4, *.phtml κ.ά.). Αν ενσωματώσετε κώδικα PHP σε ένα αρχείο επέκτασης.html δεν θα λειτουργήσει και θα εμφανίσει στον browser τον κώδικα χωρίς καμία επεξεργασία. Επίσης ακόμη κι όταν ένα αρχείο έχει την επέκταση.php, θα πρέπει ο server να είναι ρυθμισμένος για να επεξεργάζεται κώδικα PHP (τον κώδικα που καθιστά ικανό το διακομιστή να δέχεται κώδικα PHP μπορείτε να τον κατεβάσετε από τη σελίδα http://www.php.net). Οι διακομιστές Microsoft IIS και Apache που χρησιμοποιούνται σήμερα ευρέως σε συστήματα με λειτουργικά συστήματα Linux και Microsoft Windows, υποστηρίζουν την επεξεργασία κώδικα PHP. Ειδικότερα, η λειτουργία της PHP περιγράφεται από τα ακόλουθα πέντε βήματα: 1. Ο Web browser ενός χρήστη κάνει μία http αίτηση για μια συγκεκριμένη php Web σελίδα. (πχ. http://www.example.com/info.php) 2. O Web διακομιστής λαμβάνει την αίτηση για την σελίδα php, ανακαλεί το αρχείο από το σκληρό δίσκο και το περνά στη μηχανή php για επεξεργασία. 3. Η μηχανή php αρχίζει την ανάλυση του php κώδικα επικοινωνώντας όποτε υπάρχει ανάγκη με το διακομιστή της βάσης δεδομένων.

4. Η μηχανή php σταματά την εκτέλεση του προγράμματος επιστρέφοντας στον Web διακομιστή την τελική HTML σελίδα. 5. Ο Web διακομιστής περνά την html σελίδα ξανά στο Web browser ο οποίος τη μετατρέπει σε περιεχόμενο όπου ο χρήστης μπορεί να διαβάσει. Ενότητα 1.4 Το συντακτικό της PHP Για ν αναγνωρίσει η PHP ότι ένα κομμάτι κώδικα μέσα σε μία σελίδα HTML είναι PHP πρέπει να περικλείεται ανάμεσα σε εισαγωγικά της μορφής ή της μορφής. Οτιδήποτε εκτός των εισαγωγικών αυτών αποστέλλεται κατευθείαν στο φυλλομετρητή χωρίς να αναλυθεί συντακτικά και επεξεργαστεί από την PHP. Για παράδειγμα, ας εισάγουμε σε μία σελίδα HTML το παρακάτω κώδικα (υπενθυμίζουμε ότι για να στείλει ο διακομιστής μία σελίδα στη PHP θα πρέπει το όνομα της HTML σελίδας να έχει κατάληξη.php): echo 'Hello, World!'; H PHP αναλύοντας συντακτικά το παράδειγμα αυτό, αντικαταστεί το κώδικα αυτό με τις λέξεις: Hello, World! αφήνοντας οποιοδήποτε κώδικα εκτός των εισαγωγικών ανέπαφο. Έτσι η έξοδος της PHP θα δώσει τη καθαρή HTML σελίδα: Hello, World! Κάθε γραμμή κώδικα της PHP πρέπει να τελειώνει με το σύμβολο ; και χρησιμοποιείται για να χωρίζεται μία εντολή από την επόμενή της.

Επίσης, αν θέλετε να γράψετε σχόλια ανάμεσα στον κώδικα της PHP μπορείτε αυτό να το κάνετε είτε εισάγοντας τα σχόλια ανάμεσα στα σύμβολα / * και */ ή αν γράψετε στην αρχή κάθε γραμμής το σύμβολο //. Ενότητα 1.5 Μεταβλητές Στη PHP μεταβλητές μπορείτε να χρησιμοποιήσετε για να αποθηκεύσετε αριθμούς, αλφαριθμητικά (strings) και πίνακες (arrays) χωρίς να χρειάζεται να ορίσετε τον τύπο τους. Μία μεταβλητή αναπαριστάται με το πρόθεμα $. Για παράδειγμα: $var_name_number = 143; $var_name_txt = "Hello World "; $var_name_array = array("peter","quagmire","joe"); $new_var = $var_name_number+8; echo "Day: ". $new_var. "<br>"; echo $var_name_txt. " ". $var_name_array[1]; Παρατηρήστε ότι στην τελευταία γραμμή έχουμε παρεμβάλει μία αλλαγή γραμμής μεταξύ των τιμών των δύο μεταβλητών που τυπώνονται στην οθόνη. Μία μεταβλητή μπορεί να χρησιμοποιηθεί τόσο στο κυρίως σώμα ενός προγράμματος όσο και μέσα σε συναρτήσεις. Το πεδίο δράσης μίας μεταβλητής περιγράφεται στην υποενότητα 1.7 (συναρτήσεις). Ενότητα 1.6 Συνθήκες Ελέγχου Οι συνθήκες ελέγχου στη PHP ορίζονται με τον ίδιο ακριβώς τρόπο όπως στη γλώσσα C. Για παράδειγμα η if...then...else συνθήκη γράφεται με τον ακόλουθο τρόπο: $k = 143; if (fmod($k,2)==0) echo $k." is even"; else

echo $k." is odd"; Με όμοιο τρόπο με αυτό της C ορίζονται και οι while, do...while, for, foreach και switch συνθήκες. Για παράδειγμα: $i=0; // ------- while loop ----------- while($i<=5) echo "The number is ". $i. "<br /> "; $i++; // ------- do...while loop -------- do $i++; echo "The number is ". $i. "<br /> "; while ($i<10); // ------- for loop ----------- for ($i=1; $i<=5; $i++) echo "Hello World!<br /> "; // ------- foreach loop ----------- $arr=array("one", "two", "three"); foreach ($arr as $value) echo "Value: ". $value. "<br /> "; // ------- switch ----------- switch ($x) case 1: echo "Number 1";<br /> break; case 2: echo "Number 2";<br /> break; case 3: echo "Number 3";<br /> break;

default: echo "No number between 1 and 3";<br /> Ενότητα 1.7 Συναρτήσεις Όπως οι συνθήκες έλεγχου έτσι και οι συναρτήσεις ορίζονται με τον ίδιο ακριβώς τρόπο όπως στη C. Για παράδειγμα, η ακόλουθη συνάρτηση δέχεται δύο παραμέτρους και επιστρέφει μία τιμή: function add($x,$y) $total = $x + $y; return $total; echo "1 + 16 = ". add(1,16); Το πεδίο δράσης (ή εμβέλεια) μίας μεταβλητής ελέγχει το που μπορεί να χρησιμοποιηθεί μία μεταβλητή. Διαφορετικές γλώσσες προγραμματισμού έχουν διαφορετικούς κανόνες που ορίζουν το πεδίο δράσης των μεταβλητών. Η PHP έχει σχετικά απλούς κανόνες: Μεταβλητές που δηλώνονται μέσα σε μία συνάρτηση βρίσκονται στο πεδίο δράσης, από την εντολή στην οποία δηλώθηκαν έως την τελευταία αγκύλη στο τέλος της συνάρτησης. Αυτό ονομάζεται πεδίο δράσης συνάρτησης και οι μεταβλητές ονομάζονται τοπικές. Οι μεταβλητές που δηλώνονται έξω από συναρτήσεις έχουν πεδίο δράσης από την εντολή στην οποία δηλώνονται ως το τέλος του αρχείου, αλλά όχι μέσα σε συναρτήσεις. Αν οι μεταβλητές αυτές έχουν δηλωθεί ως global μέσα σε συναρτήσεις τότε αυτές ονομάζονται καθολικές μεταβλητές. Η λέξη κλειδί global χρησιμοποιείται για να καθορίσει ότι μία μεταβλητή που ορίζεται ή χρησιμοποιείται μέσα σε μία συνάρτηση, θα έχει καθολικό πεδίο δράσης. Για παράδειγμα στο παρακάτω κώδικα η μεταβλητή $z έχει καθολικό πεδίο δράσης. function add($x,$y) global $z; $total = $x + $y + $z; return $total;

$z = 5; echo "1 + 16 = ". add(1,16); Ενότητα 1.8 Χειρισμός φορμών στη PHP Το πιο σημαντικό χαρακτηριστικό της PHP είναι ότι μπορεί να δέχεται τηn τιμή κάθε στοιχείου (element) μίας φόρμας HTML και να την αναθέτει σε μία μεταβλητή. Για παράδειγμα, έστω ότι έχουμε την ακόλουθη φόρμα μιας HTML σελίδας με όνομα students.html: Please give student's name and his grade in math. <br /> <br /> <form action="show_grade.php" method="post"> Student: <input name="student" type="text" /> Grade: <input name="grade" type="text" /> <input type="submit" /> </form> Η φόρμα αυτή εμφανίζει στο φυλλομετρητή δύο text boxes και ένα κουμπί submit: Αν συμπληρώσετε τα δύο αυτά πεδία και πατήστε το κουμπί Submit τότε ο φυλλομετρητής θα καλέσει τη σελίδα show_grades.php δίνοντας ταυτοχρόνως τις τιμές student και grade. Οι τιμές αυτές χρησιμοποιούνται από τον κώδικα PHP της σελίδας για να εμφανίσει το όνομα του μαθητή και το βαθμό του στην οθόνη του χρήστη με ένα συγκεκριμένο τρόπο. Το αρχείο show_grades.php περιέχει τον ακόλουθο κώδικα PHP: The student echo $_POST["student"];.<br /> has grade echo $_POST["grade"]; in math.

Η μεταβλητή $_POST είναι ένας πίνακας (array) με μεταβλητές οι οποίες έχουν πάρει τιμές από την Post μέθοδο της φόρμας της students.html σελίδας. Οι μεταβλητές αυτές δεν εμφανίζονται στο χρήστη μέσω της γραμμής διευθύνσεων του φυλλομετρητή σε αντίθεση με τη μεταβλητή $_GET που οι μεταβλητές αυτές εμφανίζονται (αυτή η διαφορά έχει σημασία όταν μας ενδιαφέρει να δίνουμε στο χρήστη τη δυνατότητα να αντιγράφει τη διεύθυνση της σελίδας που βλέπει μαζί με τις τιμές της φόρμας). Ενότητα 2.2. Υπάρχοντες διακομιστές Σήμερα στην αγορά υπάρχουν δεκάδες Web Servers τους οποίους μπορείτε να χρησιμοποιήσετε για να υλοποιήσετε το δικό σας ιστότοπο. Παρακάτω παραθέτουμε μία λίστα (από το site Netcraft.com) με τους πιο γνωστούς τύπους διακομιστών καθώς και τον αριθμό των Web Sites που αυτοί έχουν χρησιμοποιηθεί. Vendor Product Web Sites Apache Apache 76,591,442 Microsoft IIS 55,502,886 Google GFE 8,555,391 Unknown Unknown 5,015,636 Oversee Oversee 1,573,701 lighttpd lighttpd 1,521,250 Other Other 1,014,690 nginx nginx 767,966 Zeus Zeus 505,092 IdeaWebServer IdeaWebServer 428,942 Sun Sun-ONE-Web-Server 372,673 Apache Coyote 353,934 LiteSpeed LiteSpeed 304,493 Jetty Jetty 226,466 Resin Resin 219,334 RapidSite RapidSite 219,130 Sun Enterprise 203,962

Vendor Product Web Sites tigershark tigershark 190,439 NOYB NOYB 161,778 Squeegit Squeegit 145,395 httpd httpd 144,274 WebserverX WebserverX 138,695 BaseHTTP BaseHTTP 125,985 Blk-Enterprise Blk-Enterprise 110,687 AOLserver AOLserver 100,319 Lotus Lotus-Domino 89,058 IBM IBM_HTTP_Server 87,930 icesrapture icesrapture 62,415 ConcentricHost-Ashurbanipal ConcentricHost-Ashurbanipal 46,684 Zope Zope 44,211 Mongrel Mongrel 37,714 Forwarder Forwarder 33,464 ZX_Spectrum ZX_Spectrum 31,436 ForAll.pl ForAll.pl 29,934 Acenet Acenet 28,580 IPL IPL 28,409 Joker.com Joker.com 26,344 az-webserver az-webserver 26,055 DinaHttpd DinaHttpd 24,306 thttpd thttpd 22,844 squid squid 22,761 Oracle Oracle-Application-Server-10g 21,325 Οι δύο πιο διαδεδομένοι διακομιστές είναι ο Apache και ο IIS της Microsoft. Σε αντίθεση με τον IIS όπου προϋποθέτει την αγορά του λειτουργικού

συστήματος MS Windows Server 2003 ή του MS Windows Server 2008, o Apache ανήκει στη κατηγορία ελεύθερου λογισμικού και μπορεί να εγκατασταθεί, χωρίς κόστος, σε ένα μεγάλο εύρος λειτουργικών συστημάτων όπως τα Windows XP, Vista, Mac OS X, Linux και άλλα. Στον παρακάτω στατιστικό πίνακα παρουσιάζεται το ποσοστό χρήσης των πιο διαδεδομένων διακομιστών στο διαδίκτυο από το 1995 μέχρι σήμερα. Εγκατάσταση του Apache Server Στο πλαίσιο της τρέχουσας επιμορφωτικής ενότητας θα χρησιμοποιήσουμε τον Apache Web Server. Όπως αναφέραμε στη προηγούμενη ενότητα ο Apache Web Server είναι ο πιο διαδεδομένος διακομιστής και θεωρείται ότι έχει παίξει σημαντικό ρόλο στην αρχική επέκταση του παγκόσμιου ιστού. Ήταν η πρώτη βιώσιμη εναλλακτική επιλογή που παρουσιάστηκε απέναντι στον εξυπηρετητή http της εταιρείας Netscape και από τότε έχει εξελιχθεί στο σημείο να ανταγωνίζεται άλλους εξυπηρετητές βασισμένους στο Unix καθώς και τον IIS σε λειτουργικότητα και απόδοση. Για να εγκαταστήσετε τον Apache Web Server στο προσωπικό σας υπολογιστή, αρκεί να κατεβάσετε και να τρέξετε το XAMPP. Το πρόγραμμα αυτό είναι μία ειδική έκδοση του Apache το οποίο αναλαμβάνει να πραγματοποιήσει για εσάς, εκτός από την εγκατάσταση του διακομιστή, την εγκατάσταση της PHP καθώς και της βάσης δεδομένων MySQL. Περισσότερες πληροφορίες για το τρόπο εγκατάστασης και λειτουργίας του XAMPP θα βρείτε στη πρώτη δραστηριότητα αυτής της επιμορφωτικής ενότητας.

Σύνδεση PHP με MySQL Για να δημιουργήσετε μία βάση δεδομένων, πρέπει πρώτα να συνδεθείτε με το διακομιστή της MySQL. Αυτό γίνεται με την ακόλουθη εντολή: mysql_connect(servername,username,password); Όπου servername αντιστοιχεί στη διεύθυνση του διακομιστή, username το όνομα του χρήστη που έχει δικαίωμα πρόσβασης σε αυτόν και password ο μυστικός κωδικός του χρήστη. Για παράδειγμα, αν η MySQL έχει εγκατασταθεί τοπικά στον υπολογιστή σας και ο administrator της MySQL σας έχει ανοίξει λογαριασμό με username "utest" και password "qwert!1" τότε ο ακόλουθος κώδικας PHP σας συνδέει με την MySQL. Στην περίπτωση που η σύνδεση αποτύχει, τότε η PHP μέσω της εντολής εντολής mysql_error() επιστρέφει ένα μήνυμα λάθους. $con = mysql_connect("localhost","utest","qwert!1"); if (!$con) die('could not connect: '. mysql_error()); Αφού έχετε συνδεθεί με το διακομιστή της βάσης μπορείτε να δημιουργήσετε μία νέα βάση δεδομένων με την εντολή: mysql_query("create DATABASE my_db",$con); Έτσι ο κώδικας σύνδεσης και δημιουργίας νέας βάσης γίνεται: $con = mysql_connect("localhost","utest","qwert!1"); if (!$con)

die('could not connect: '. mysql_error()); if (mysql_query("create DATABASE my_db",$con)) echo "Database created"; else echo "Error creating database: ".mysql_error(); mysql_close($con); Η εντολή mysql_query() της php είναι η πιο σημαντική από τις εντολές που αφορούν στην επικοινωνία με τη MySQL και χρησιμοποιείται όποτε θέλουμε να κάνουμε μία ερώτηση στη βάση. Ως είσοδο δέχεται ένα SQL query και στην έξοδο είτε επιστρέφει το αποτέλεσμα του query σε ένα πίνακα, είτε επιστρέφει ότι εκτελέστηκε επιτυχώς. Η χρήση της εντολής αυτής θα αναλυθεί περισσότερο στις επόμενες υπό-ενότητες. Η σύνδεση με μία βάση δεδομένων τερματίζει με την εντολή: mysql_close(mysql_connect(servername,username,password)); Ενότητα 3.2. Εισαγωγή πίνακα Ας υποθέσουμε ότι θέλουμε να εισάγουμε τον παρακάτω πίνακα με όνομα phone_book στη βάση δεδομένων my_db που μόλις δημιουργήσαμε. Ο πίνακας αυτός αναπαριστά έναn τηλεφωνικό κατάλογο ο οποίος έχει τρεις εγγραφές. Id LastName FirstName Address Age Phone 1 Papadopoulos Nikolaos Hlioupoleos 3, Athens 35 210 9838374 2 Xaralampous Petros Vouliagmenis 23, Athens 68 210 7832000 3 Karadimou Anna Trikoupi 8, Ioannina 22 26510 89328

Ο πίνακας αυτός αποτελείται από έξι πεδία: ένα Id (μοναδικό αριθμό που χαρακτηρίζει κάθε εγγραφή), το επίθετο, το όνομα, τη διεύθυνση την ηλικία και το τηλέφωνο μίας ομάδας ατόμων. Η εισαγωγή ενός νέου πίνακα πραγματοποιείται με την εντολή της php: mysql_query($sql,$con); Όπου η μεταβλητή $sql παίρνει ως τιμή το ακόλουθο SQL query: CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type,... ) όπου table_name είναι το όνομα του πίνακα που θέλετε να δημιουργήσετε, column_name το όνομα ενός πεδίου (στήλης) του πίνακα και data_type ο τύπος του πεδίου. Στο παράδειγμα μας, ο κώδικας που δημιουργεί τον παραπάνω πίνακα είναι ο ακόλουθος: $con = mysql_connect("localhost","utest","qwert!1"); // Select the database mysql_select_db("my_db", $con); // Insert the table $sql = "CREATE TABLE phone_book ( personid int NOT NULL, PRIMARY KEY(personID), LastName varchar(20) NOT NULL, FirstName varchar(20), Address varchar(30), Age int, Phone varchar(10) )"; mysql_query($sql,$con); mysql_close($con);

Κάνοντας χρήση της παραμέτρου KEY() ορίζουμε το πεδίο personid ως πρωταρχικό κλειδί του πίνακα, ενώ χαρακτηρίζοντάς το ως not null δεν επιτρέπουμε εισαγωγή εγγραφής με κενό το πεδίο personid. Ενότητα 3.3. Εισαγωγή δεδομένων σε πίνακα Η εισαγωγή δεδομένων σε έναν πίνακα που έχουμε ήδη δημιουργήσει γίνεται με το ακόλουθο query της SQL: INSERT INTO table_name (column1, column2,..., columnn) VALUES (value1, value2,...,valuen ) Ο αριθμός των τιμών value1, value2,... που εισάγουμε θα πρέπει να ίσος με το πλήθος των πεδίων του πίνακα. Για παράδειγμα, αν θέλουμε να εισάγουμε τα δεδομένα της πρώτης γραμμής του πίνακα phone_book θα πρέπει να γράψουμε την ακόλουθη php εντολή: mysql_query(" INSERT INTO phone_book (Id, LastName, FirstName, Address, Age, Phone) VALUES ('0', 'Papadopoulos', 'Nikolaos', 'Hlioupoleos 3, Athens', '35','210 9838374') ") Ενότητα 3.4. Επιλογή δεδομένων από πίνακες Η επιλογή δεδομένων από έναν ή περισσότερους πίνακες γίνεται με το ακόλουθο SQL query: SELECT (column1, column2,..., columnn) FROM (table1, table2,...,tablem) Στο παράδειγμά μας, αν θέλουμε να επιλέξουμε τα δεδομένα από όλα τα πεδία του πίνακα phone_book τότε θα πρέπει να εισάγουμε το ακόλουθο κώδικα PHP:

// Select the database mysql_select_db("my_db", mysql_connect("localhost","utest","qwert!1")); $result = mysql_query("select * FROM phone_book"); while($row = mysql_fetch_array($result)) echo $row['lastname']. " ". $row['firstname']. " ". $row['address']. " ". $row['age']. " ". $row['phone']. "<br>"; ενώ αν θέλουμε να επιλέξουμε όλα τα άτομα που η ηλικία τους είναι πάνω από 30 ετών τότε κάνουμε την ακόλουθη ερώτηση: // Select the database mysql_select_db("my_db", mysql_connect("localhost","utest","qwert!1")); $result = mysql_query("select * FROM phone_book WHERE age>30"); while($row = mysql_fetch_array($result)) echo $row['lastname']. " ". $row['firstname']. " ". $row['age']. "<br>"; Από τα παραπάνω παραδείγματα είναι εμφανές ότι η php εκτελώντας την εντολή mysql_fetch() δέχεται ως input ένα sql ερώτημα και επιστρέφει μία εγγραφή του πίνακα που απαντά στο ερώτημα σε μορφή πίνακα. Κάθε φορά που εκτελείται η mysql_fetch_array() η php ρωτά τη βάση και παίρνει την επόμενη εγγραφή μέχρι να μην υπάρχει άλλη.