PHP/MySQL και Project

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

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

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

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

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

databases linux - terminal (linux / windows terminal)

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

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

Web Programming for Dummies

Σύστημα διαχείρισης περιεχομένου (Content Management System)

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

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

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

Εγκατάσταση Joomla! Στο ΠΣΔ. 1. Μεταβαίνουμε στο και συνδεόμαστε στο λογαριασμό μας. 2. Μεταβαίνουμε στο «MySch»

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

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

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

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

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

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα:

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

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

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

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

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

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

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012

Social Network : Programming on FACEBOOK

ΕΡΓΑΣΙΑ. (στο µάθηµα: Τεχνολογίες Εφαρµογών ιαδικτύου του Η εξαµήνου σπουδών του Τµήµατος Πληροφορικής & Τηλ/νιών)

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

Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr

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

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Λευτέρης Κουμάκης ΠΟΛΥΜΕΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΣΤΗΝ ΥΓΕΙΑ

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εφαρμογή Βάσης Δεδομένων για την Εθελοντική Αιμοδοσία στο ΑΤΕΙ-Θ

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

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

XAMPP Apache MySQL PHP javascript xampp

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

Πληροφορίες για το μάθημα

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

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

Hellenic European Law Concordance

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ.


Υλοποίηση δυναµικής ιστοσελίδας αποστολής και διαχείρισης φωτογραφιών µε τεχνολογίες ανοιχτού λογισµικού (PHP, MySQL, Apache HTTP server)

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

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

Injection Attacks. Protocol Host FilePath. field1=valuex&field2=valuey. Query String. Web server HTTP GET.

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

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

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Θέμα Πτυχιακής: ΔΙΑΔΙΚΑΣΙΑ ΠΙΣΤΟΠΟΙΗΣΗΣ ΧΡΗΣΤΩΝ ΜΕΣΩ PHP!

Οδηγίες εγκατάστασης και λειτουργίας ERPeshop

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Βάσεις Δεδομένων Mini Project

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

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

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

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

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

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

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

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

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

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

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

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

Εγχειρίδιο εγκατάστασης Megasoft 2009

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

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

Μητρώο [.gr] Οδηγός ιασύνδεσης. Αξιοποίησης του Εξυπηρετητή EPP. Έκδοση 2.0. [ EPP Server Connection and Use Guide ]

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Μεταπτυχιακή Διατριβή

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

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

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών.

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

Γενική περιγραφή. Περιγραφή σχεδιασμού εφαρμογής

1. Απαιτήσεις εργασίας

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

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

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΔΟΜΗΣΗ ΚΩΔΙΚΑ. Μαθαίνω παίζοντας

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΠΑΓΚΑΛΟΣ ΙΩΑΝΝΗΣ ΣΙΣΜΑΝΗΣ ΝΙΚΟΣ. File Transfer Protocol

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

Εισαγωγή στην Ανάπτυξη Εφαρμογών Web με Χρήση της Python, του Apache και του mod_python

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

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

Transcript:

PHP/MySQL και Project Μια απλή διαδικτυακή εφαρμογή Γεώργιος Ευαγγελίδης Τμήμα Εφαρμοσμένης Πληροφορικής Σχολή Επιστημών Πληροφορίας Πανεπιστήμιο Μακεδονίας

Περιεχόμενα PHP (Middle tier) Διαδικτυακές εφαρμογές αρχιτεκτονικής 3 επιπέδων Front end [Web browser πελάτη] Middle tier [Web server (Apache) με διερμηνευτή PHP] Back end [DBMS, π.χ., MySQL/MariaDB] Μια απλή εφαρμογή

... για διάβασμα http://web-class.gr/ Ανάπτυξη Web Εφαρμογών (σεμινάριο από τους προπτυχιακούς φοιτητές Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών του ΕΜΠ Διονύση Ζήνδρο και Πέτρο Αγγελάτο με άδεια Creative Commons 3.0 Attribution) http://www.w3schools.com/php/default.asp PHP 5 Tutorial http://www.codecademy.com/en/tracks/php PHP http://coursesweb.net/php-mysql/ PHP programming and MySQL database

PHP Γενικά PHP Hypertext Preprocessor Application Server Τρέχει στο middle tier (μαζί με τον Web Server) Παράγει τον html κώδικα που ο Web Server αποστέλλει στο front end (client web browser) Μιλά με το back end (DBMS) για να αποθηκεύσει/ ανακτήσει τα δεδομένα της εφαρμογής Διαχειρίζεται συνεδρίες (sessions) Υλοποιεί συναλλαγές βάσεων δεδομένων

Επικοινωνία front end με middle tier Δώσε μου τη σελίδα Χ Φτιάξε μου τη σελίδα Χ Ορίστε η σελίδα Χ Εκτέλεση κώδικα PHP Παραγωγή HTML Ορίστε η σελίδα Χ Εμφάνιση σελίδας από http://web-class.gr/

Επικοινωνία middle tier με back end HTTP MySQL ερώτημα Χώρος αποθήκευσης MySQL απάντηση HTTP από http://web-class.gr/

PHP αρχεία και εκτέλεση <html> <body> <?php echo Σεμινάριο στο ΠαΜακ! ;?> </body> </html> παράγει <html> <body> Σεμινάριο στο ΠαΜακ! </body> </html>

PHP περισσότερα http://www.w3schools.com/php/default.asp http://web-class.gr/ Παραδόσεις 8 και 9

Περί συνεδριών (sessions) Απαραίτητα για να θυμάται η εφαρμογή τον κάθε πελάτη καθώς το πρωτόκολλο http είναι stateless http://www.w3schools.com/php/php_sessions.asp

PHP & MySQL Πως συνδεόμαστε http://www.w3schools.com/php/php_mysql_connect.asp

Περί συναλλαγών <?php $dbconnection = mysqli_connect('server', 'user', 'passwd', 'database'); mysqli_autocommit($dbconnection, false); $flag = true; $query1 =... $result = mysqli_query($dbconnection, $query1); if (!$result) { $flag = false; } if ($flag) { mysqli_commit($dbconnection); } else { mysqli_rollback($dbconnection); } mysqli_close($dbconnection);?>

Απλή εφαρμογή: καταχώριση cds (1) Παραλλαγή εφαρμογής από το http://web-class.gr/ Παράδειγμα Παράδοσης 13 (Πες το) Υπάρχει ο πίνακας users που αποθηκεύει τους χρήστες της εφαρμογής και ο πίνακας cds στον οποίο οι χρήστες καταχωρίζουν στοιχεία από cd. Κάθε χρήστης πρέπει να εγγραφεί πρώτα (register) για να μπορέσει να συνδεθεί (login), αλλιώς είναι public χρήστης (δηλαδή βλέπει μόνο).

Απλή εφαρμογή: καταχώριση cds (2) Εγγεγραμμένος χρήστης: Μπορεί να εισάγει εγγραφές της μορφής (cdartist, cdtitle, username), όπου τα cdartist και cdtitle τα εισάγει μέσω φόρμας και το username είναι το όνομα του συγκεκριμένου χρήστη (από το $_SESSION). Δεν είναι δυνατή η εισαγωγή ζεύγους (cdartist, cdtitle) που ήδη υπάρχει (και ανήκει στον ίδιο ή άλλο χρήστη). Μπορεί να διαγράψει μόνο τις εγγραφές που του ανήκουν απλά ξαναεισάγοντας τα στοιχεία τους. Για παράδειγμα, αν εισαχθούν στη φόρμα εισαγωγής τα cdartist= Villagers of Ioannina City και cdtitle= riza και η εγγραφή υπάρχει ήδη και ανήκει στο συγκεκριμένο χρήστη, τότε αυτή διαγράφεται.

Απλή εφαρμογή: καταχώριση cds (3) Εγγεγραμμένος χρήστης (συνέχεια): Η τροποποίηση εγγραφής γίνεται μόνο μέσω διαγραφής της και εκ νέου εισαγωγής της. Προφανώς, η τροποποιημένη εγγραφή δεν θα πρέπει να υπάρχει ήδη (είτε ανήκει στον ίδιο ή άλλο χρήστη). Βλέπει (στην αρχική σελίδα της εφαρμογής) τα περιεχόμενα του πίνακα cds (και τα τρία πεδία) ταξινομημένα ανά (cdartist, cdtitle). Ένας public χρήστης (κάποιος δηλαδή που επισκέπτεται την εφαρμογή): Βλέπει την πληροφορία του πίνακα cds χωρίς όμως το 3ο πεδίο, ταξινομημένη ανά (cdartist, cdtitle).

Απλή εφαρμογή: εγκατάσταση Αποσυμπιέζουμε το αρχείο cdbase.zip στον κατάλληλο κατάλογο του web server. Δημιουργούμε στη MySQL τη βάση δεδομένων cdbase με τους δυο πίνακες (αρχείο schema.sql) (μέσω mysql από κονσόλα ή μέσω http://localhost/phpmyadmin) Επισκεπτόμαστε τη σελίδα http://localhost/cdbase

Εργαστηριακή άσκηση (Project) (1) Θα πρέπει να κάνετε τις εξής αλλαγές στην εφαρμογή cdbase: [1] Προσθέστε το πεδίο year στον πίνακα cds και τροποποιήστε κατάλληλα τον php κώδικα ώστε να καταχωρίζεται και να εμφανίζεται και αυτό το πεδίο. [2] Για κάθε εισαγωγή ή διαγραφή CD, θα πρέπει ο κώδικάς σας να καταχωρίζει σε έναν νέο πίνακα της μορφής log(timestamp timestamp, userid varchar(20), action varchar(10), artist varchar(100), title varchar(100)) μια εγγραφή ιστορικού. Οι πιθανές τιμές του πεδίου action είναι DELETE, INSERT και NO ACTION (όταν η προς εισαγωγή ή διαγραφή εγγραφή ανήκει σε άλλο χρήστη). Δείτε στην εικόνα πως καταγράφεται η πληροφορία ότι κατά σειρά έγιναν 2 εισαγωγές, 1 διαγραφή, και 1 εισαγωγή.

Εργαστηριακή άσκηση (Project) (2)

Εργαστηριακή άσκηση (Project) (3) [3] Το log file θα πρέπει να φαίνεται μόνο όταν κάποιος χρήστης είναι συνδεδεμένος και να δείχνει μόνο τις ενέργειες του συγκεκριμένου χρήστη (δείτε εικόνα). Καθώς δεν κρατάμε στον πίνακα log πληροφορία για το session, θα φαίνονται όλες οι ενέργειες του χρήστη (για όλα τα session). [4] Μετατρέψτε τον κώδικα της εισαγωγής cd σε συναλλαγή. Μετά την εισαγωγή να γίνεται έλεγχος του πλήθους των εισαγωγών που έκανε ο χρήστης τη συγκεκριμένη ημέρα. Αν αυτές υπερβαίνουν τις 3, η συναλλαγή να αναιρείται (rollback) αλλιώς να ολοκληρώνεται (commit). Βοήθεια: Στη MySQL, ο τύπος δεδομένων timestamp είναι πολύ βολικός καθώς η default συμπεριφορά του είναι αντίστοιχη με αυτή του auto_increment, δηλαδή το πεδίο παίρνει αυτόματα την τιμή του timestamp του συστήματος. Έτσι, δεν χρειάζεται να ασχοληθείτε με την εισαγωγή της τιμής του πεδίου αυτού μέσω PHP (π.χ., χρησιμοποιώντας τη συνάρτηση time()).