5η Συνάντηση Εκπαιδευτικών Πληροφορικής

Download Report

Transcript 5η Συνάντηση Εκπαιδευτικών Πληροφορικής

10η Συνάντηση Εκπαιδευτικών
Πληροφορικής στη Δυτική
Μακεδονία
Γρεβενά, 18 Μαρτίου 2007
Απλές και Πρακτικές Εφαρμογές με
PHP και MySQL
Στυλιάδης Κων/νος,
Υπ. Κέντρου ΠΛΗ.ΝΕ.Τ. Ν. Φλώρινας
Τι Είναι η PHP
Η PHP είναι μια πολύ δημοφιλής γλώσσα συγγραφής
σεναρίων στην πλευρά του server (server-side scripting
language), που είναι γρήγορη, διαθέτει πολλές
ενσωματωμένες συναρτήσεις και, το σημαντικότερο, είναι
δωρεάν (http://www.php.net).
Η PHP είναι ένα εργαλείο για τη δημιουργία δυναμικών
ιστοσελίδων (dynamic web pages). Η παρουσία της είναι
απόλυτα διαφανής (αόρατη) στον τελικό χρήστη.
Η PHP είναι case sensitive, δηλ. ξεχωρίζει τα πεζά από τα
κεφαλαία γράμματα.
Η PHP συνεργάζεται αρμονικά με τη βάση δεδομένων
MySQL και υποστηρίζονται και οι δύο πλήρως από το
Πανελλήνιο Σχολικό Δίκτυο (EDUnet).
Τι Είναι η PHP
Μια ιστοσελίδα που περιέχει κάποιον κώδικα σε PHP
υφίσταται προεπεξεργασία από τη μηχανή της PHP (PHP
engine), που αποκαλείται διερμηνευτής (interpreter).
Τα αποτελέσματα αυτής της επεξεργασίας στέλνονται
πίσω στον Web server και από εκεί στον φυλλομετρητή
του χρήστη (επισκέπτη) της ιστοσελίδας, ο οποίος βλέπει
μόνο καθαρό κώδικα HTML και όχι τον αρχικό κώδικα
της PHP.
Καθώς μόνο τα αποτελέσματα της επεξεργασίας του
PHP κώδικα είναι που στέλνονται στον φυλλομετρητή,
ο κώδικας που τα δημιούργησε παραμένει κρυφός και
συνεπώς πολύ πιο ασφαλής. Αυτό το είδος της
προεπεξεργασίας αποκαλείται server-side scripting.
Η Ονομασία PHP
Τα αρχικά PHP σήμαιναν παλαιότερα
Personal HomePage και από εκεί προήλθε η
ονομασία PHP, που αργότερα
μετονομάστηκε σε "PHP : Hypertext PreProcessor".
Σημαίνει ότι πρόκειται για μια γλώσσα
συγγραφής σεναρίων (script language) που
είναι εύκολη στη χρήση της και εύκολη
στο να μπορεί να αναμειχθεί με τον
υπάρχοντα HTML κώδικα μιας
ιστοσελίδας.
Τα Αρχεία της PHP
Τα αρχεία της PHP μπορεί να περιέχουν κείμενο,
ετικέτες (tags) της HTML και scripts με τα tags
<?php και ?> ή <? και ?> .
Τα αρχεία της PHP επιστρέφονται στον
φυλλομετρητή (browser) του χρήστη σαν απλή
(καθαρή) HTML.
Τα αρχεία της PHP μπορεί να έχουν επέκταση
".php", ".php3", ".php4" ή και ".phtml".
Τι Είναι η MySQL
Η MySQL είναι ένας μικρός database server.
Η MySQL είναι ιδανική για μικρές και μεσαίες
εφαρμογές.
Η MySQL υποστηρίζει την standard SQL.
Η MySQL μεταγλωττίζεται σε πολλές
πλατφόρμες.
Η MySQL είναι ελεύθερη (δωρεάν) για
κατέβασμα (download) και χρήση
(http://www.mysql.com).
Η MySQL στο EDUnet
Κάθε σχολική μονάδα ή και κάθε εκπαιδευτικός
που διαθέτει λογαριασμό στο Πανελλήνιο Σχολικό
Δίκτυο (EDUnet), έχει τη δυνατότητα να
αποκτήσει και ειδικούς κωδικούς για τη
διαχείριση μιας βάσης δεδομένων με την MySQL
και την PHP.
Περισσότερες πληροφορίες στο site :
http://dide.flo.sch.gr/Plinet/Tutorials/TutorialsMySQL-sch.html
Η Σύνταξη της PHP
Θα πρέπει να έχουμε υπόψη μας ότι δεν μπορούμε
να δούμε τον πηγαίο κώδικα (source code) της
PHP επιλέγοντας Προέλευση από το μενού
Προβολή του Internet Explorer, αλλά θα δούμε
την έξοδο (αποτέλεσμα) από το αρχείο της PHP,
που θα είναι καθαρή HTML.
Αυτό συμβαίνει επειδή τα scripts εκτελούνται
στον server πριν σταλεί το αποτέλεσμα πίσω στον
φυλλομετρητή.
Η Σύνταξη της PHP
Ένα αρχείο της PHP κανονικά περιέχει tags (ετικέτες)
της HTML, όπως ακριβώς ένα αρχείο της HTML, και
επιπλέον κάποιο κώδικα scripting σε PHP.
Ακολουθεί ένα παράδειγμα ενός απλού PHP script το
οποίο στέλνει το κείμενο "Hello World" στον
φυλλομετρητή (browser) με την εντολή echo :
<html>
<body>
<?php echo "Hello World"; ?>
</body>
</html>
Η Σύνταξη της PHP
Ένα scripting block της PHP ξεκινά πάντα με το
<?php και τελειώνει με το ?> ή με τα <? και ?>
και μπορεί να τοποθετηθεί οπουδήποτε σ’ ένα
έγγραφο (ιστοσελίδα).
Η κάθε γραμμή κώδικα στην PHP θα πρέπει να
τελειώνει με τον χαρακτήρα ; (semicolon), ο
οποίος είναι ένας διαχωριστής (separator) και
χρησιμοποιείται για να ξεχωρίζει ένα σύνολο
εντολών από ένα άλλο.
Οι Μεταβλητές της PHP
Όλες οι μεταβλητές της PHP αρχίζουν με το σύμβολο $
και μπορούν να περιέχουν συμβολοσειρές (strings),
αριθμούς ή πίνακες (arrays). Το παρακάτω script
καταχωρεί το string "Hello World" στη μεταβλητή $txt :
<html>
<body>
<?php
$txt="Hello World";
echo $txt;
?>
</body>
</html>
Η Εντολή If στην PHP
<html>
<body>
<?php
$d=date("D");
if ($d= ="Fri")
echo "Να περάσετε ένα ωραίο Σαββατοκύριακο!";
else
echo "Να περάσετε ωραία την ημέρα σας!";
?>
</body>
</html>
Η Εντολή While στην PHP
<html>
<body>
<?php
$i=1;
while($i<=5) {
echo "Ο αριθμός είναι : " . $i . "<br />";
$i++;
}
?>
</body>
</html>
Η Εντολή For στην PHP
<html>
<body>
<?php
for ($i=1; $i<=5; $i++) {
echo "Hello World!<br />";
}
?>
</body>
</html>
Οι Μεταβλητές Server στην PHP
Όλοι οι servers περιέχουν πληροφορίες, όπως από ποιο
URL ήρθε ο χρήστης, ποιος είναι ο φυλλομετρητής
(browser) του κ.ά. Αυτές οι πληροφορίες περιέχονται σε
μεταβλητές.
Στην PHP, η $_SERVER είναι μια δεσμευμένη (reserved)
μεταβλητή (πίνακας, array) που περιέχει όλες τις
πληροφορίες του server. Η $_SERVER είναι και μια
καθολική (global) μεταβλητή, που σημαίνει ότι είναι
διαθέσιμη παντού σ’ ένα PHP script.
Το επόμενο παράδειγμα θα εμφανίσει από ποιο URL ήρθε
ο χρήστης (referrer), ποιος είναι ο φυλλομετρητής του
(browser) καθώς και την IP διεύθυνσή του (IP address).
Οι Μεταβλητές Server στην PHP
<html>
<body>
<?php
echo "Referer : " . $_SERVER["HTTP_REFERER"] ."<br />";
echo "Browser : " . $_SERVER["HTTP_USER_AGENT"] ."<br />";
echo "User's IP address : " . $_SERVER["REMOTE_ADDR"];
?>
</body>
</html>
Οι Ανταγωνιστικές Τεχνολογίες
Για τη δημιουργία ενός database-enabled web site
υπάρχουν πολλοί τρόποι για να πετύχουμε το ίδιο
αποτέλεσμα. Όλες αυτές οι διαφορετικές τεχνολογίες
επιτυγχάνουν στο τέλος το ίδιο πράγμα αλλά μ’ έναν
ελαφρά διαφορετικό τρόπο.
Οι κυριότερες εναλλακτικές λύσεις (τεχνολογίες) της PHP
είναι η ASP (Active Server Pages), η JSP (Java Server
Pages) και η CFML (Cold Fusion Markup Language).
Υπάρχουν φυσικά κι άλλες, αλλά αυτές οι τέσσερις
τεχνολογίες αποτελούν τους κυριότερους ανταγωνιστές
όσον αφορά τη δημοτικότητα και υποστηρίζονται όλες από
το Dreamweaver MX.
Έλεγχος για τη Λειτουργία της PHP
Αφού έχουμε σιγουρευτεί ότι ο web server στον οποίο θα
στήσουμε την εφαρμογή μας υποστηρίζει την PHP, θα
πρέπει να κάνουμε μια σύντομη και απλή δοκιμή πριν
συνεχίσουμε.
Δημιουργούμε ένα αρχείο με το Σημειωματάριο (Notepad)
των Windows, το οποίο αποθηκεύουμε με το όνομα
test.php και με το εξής περιεχόμενο :
<?php phpinfo(); ?>
Το φορτώνουμε (upload) στον web server και το καλούμε
από τον φυλλομετρητή μας. Αν όλα δουλεύουν κανονικά,
θα πρέπει να δούμε μια μεγάλη ιστοσελίδα μ’ ένα πλήθος
από τεχνικά χαρακτηριστικά για την εγκατεστημένη PHP.
Τα Αρχεία Κειμένου και η PHP
Με την PHP μπορούμε να διαβάσουμε από
ή και να γράψουμε στοιχεία σε αρχεία
κειμένου (text files), με πολύ απλές εντολές.
Για να ανοίξουμε ένα αρχείο κειμένου,
χρησιμοποιούμε την εντολή (συνάρτηση)
fopen(), ως εξής :
$fname = fopen("orders.txt", "w");
Τα Αρχεία Κειμένου και η PHP
Αν δεν μπορέσει να ανοίξει το αρχείο orders.txt, η
μεταβλητή $fname θα πάρει την λογική τιμή false, την
οποία μπορούμε να χρησιμοποιήσουμε, για να
εμφανίσουμε ένα μήνυμα προς τον χρήστη και να
αποφύγουμε τα ενοχλητικά μηνύματα σφάλματος της
PHP, ως εξής :
@$fname = fopen("orders.txt", "w");
if (!$fname) {
echo "Αδύνατο το άνοιγμα του αρχείου";
exit;
}
Τα Αρχεία Κειμένου και η PHP
Για να γράψουμε μια εγγραφή (record)
σ’ ένα αρχείο κειμένου,
χρησιμοποιούμε την εντολή
(συνάρτηση) fwrite(), ως εξής :
$outstring = "Florina\n";
fwrite($fname, $outstring);
Τα Αρχεία Κειμένου και η PHP
Όταν τελειώσουμε τη δουλειά μας μ’
ένα αρχείο κειμένου, θα πρέπει να το
κλείσουμε με την εντολή fclose(), με
παράμετρο το λογικό όνομα του
αρχείου ($fname), ως εξής :
fclose($fname);
Τα Αρχεία Κειμένου και η PHP
Για να διαβάσουμε τα περιεχόμενα ενός αρχείου
κειμένου, μια από τις εντολές (συναρτήσεις) είναι και
η fgets(), η οποία γράφεται ως εξής :
@$fname = fopen("orders.txt", "r");
if (!$fname) {
echo "Αδύνατο το άνοιγμα του αρχείου";
exit;
}
while (!feof($fname)) {
$outstring = fgets($fname, 100);
echo $outstring."<br>";
}
Οι Μεταβλητές των Φορμών
Για να μπορέσουμε να επεξεργαστούμε από την
PHP τις τιμές που έχουν καταχωρηθεί στα πεδία
μιας φόρμας, χρησιμοποιούμε τον πίνακα
$HTTP_POST_VARS[ ] ή και τον πίνακα
$_POST[ ], ως εξής :
$name = $HTTP_POST_VARS["name"];
$address = $HTTP_POST_VARS["address"];
$city = $HTTP_POST_VARS["city"];
Αποστολή e-mail με την
Συνάρτηση mail()
Για να στείλουμε ένα e-mail μέσα από την
PHP, μπορούμε να χρησιμοποιήσουμε την
εντολή (συνάρτηση) mail(), ως εξής :
mail($receiver, $subject, $message);
Θα πρέπει να έχουμε φροντίσει, ώστε οι τρεις
μεταβλητές, $receiver (παραλήπτης του
μηνύματος), $subject (θέμα του μηνύματος) και
$message (κείμενο του μηνύματος), να έχουν
πάρει τιμές νωρίτερα από τα πεδία κάποιας
φόρμας.
PHP & MySQL – Σύνδεση με
τον MySQL Server – Βήμα 1
Για να κάνουμε μια σύνδεση μ’ έναν MySQL
Server και να μπορέσουμε να δώσουμε εντολές
για καταχώρηση ή και εμφάνιση εγγραφών,
χρησιμοποιούμε την εντολή (συνάρτηση)
mysql_pconnect(), ως εξής :
@$db = mysql_pconnect("localhost", "dideflor", "****");
if (!$db) {
echo "Αδύνατη η σύνδεση με τον MySQL server";
exit;
}
PHP & MySQL – Επιλογή Βάσης
Δεδομένων – Βήμα 2
Αφού έχουμε κάνει μια σύνδεση μ’ έναν
MySQL Server, για να μπορέσουμε να
επιλέξουμε και να εργαστούμε με μια βάση
δεδομένων, χρησιμοποιούμε την εντολή
(συνάρτηση) mysql_select_db(), ως εξής :
mysql_select_db("dideflor-db1");
PHP & MySQL – Δημιουργία &
Εκτέλεση Ερωτήματος – Βήμα 3
Αφού έχουμε επιλέξει μια βάση δεδομένων, για να
μπορέσουμε να εκτελέσουμε ένα ερώτημα (query)
της SQL, θα πρέπει πρώτα να καταχωρήσουμε το
string του ερωτήματος σε μια μεταβλητή και μετά
να το εκτελέσουμε με την εντολή (συνάρτηση)
mysql_query(), ως εξής :
$query = "insert into clients values (null,
'Αντωνιάδης', 'Π. Μελά 100', 'Φλώρινα')";
$result = mysql_query($query);
PHP & MySQL – Εμφάνιση των
Αποτελεσμάτων – Βήμα 4
Αφού έχουμε εκτελέσει ένα ερώτημα της SQL, για να
εμφανίσουμε τα αποτελέσματα, π.χ. από μια εντολή
Select, μπορούμε να χρησιμοποιήσουμε την εντολή
mysql_num_rows(), για το πλήθος των εγγραφών που
ταιριάζουν και την εντολή mysql_fetch_array(), για
να καταχωρηθεί το αποτέλεσμα σ’ έναν πίνακα
(array), ως εξής :
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
$row = mysql_fetch_array($result);
echo $row["name"];
Δημιουργία Ιστοσελίδας για
Καταχώρηση των Στοιχείων
Ανεβάζουμε (upload) την ιστοσελίδα
στον server, την ανοίγουμε μ’ έναν
φυλλομετρητή, καταχωρούμε κάποια
δοκιμαστικά στοιχεία και πάμε μετά στο
phpmyadmin για να δούμε αν όντως
καταχωρήθηκαν σωστά.