Προγραμματισμός χρησιμοποιώντας Php - Mysql

Τι είναι η γλώσσα Php;

Η php είναι μια εξαιρετικά δημοφιλής γλώσσα προγραμματισμού για server-side scripting. Αυτό σημαίνει ότι οι εντολές php μεταφράζονται και εκτελούνται από τον http-server πριν "σερβιριστούν" στον πελάτη. Ο πελάτης βλέπει τα αποτελέσματα των εντολών αυτών και όχι τον κώδικα που τα παρήγαγε. Συνεπώς το "προϊόν" που παράγεται από ένα κώδικα php είναι κώδικας html. Ο κώδικας php πρέπει να βρίσκεται μέσα σε αρχείο με κατάληξη ".php" και μπορεί να είναι ανάμικτος με κώδικα html. Ο κώδικας php ξεχωρίζει επειδή βρίσκεται μέσα σε ένα tag που ξεκινάει με <?php και τελειώνει με ?> . Για παράδειγμα, έστω ότι στο server υπάρχει το παρακάτω αρχείο test.php :

<html>
<head>
	<title>
	</title>
</head>
<body>
	<p>Αυτός είναι κλασσικός κώδικας HTML</p>
	<?php
		echo "<br><p>Αυτός ο κώδικας HTML παράγεται από την php</p>";
		$text = "<br><p>Hello</p>";
		echo $text;
		for ($i=0; $i<4; $i++) {
			echo "<p>Γραμμή ".$i."</p>";
		}
	?>
</body>
</html>

Ο πελάτης καλώντας από τον browser το αρχείο test.php θα παραλάβει το παρακάτω επεξεργασμένο αρχείο που περιλαμβάνει την κανονική html συν το αποτέλεσμα που παρήχθη από την php:

<html>
<head>
	<title>
	</title>
</head>
<body>
	<p>Αυτός είναι κλασσικός κώδικας HTML</p>
	<br><p>Αυτός ο κώδικας HTML παράγεται από την php</p>
	<br><p>Hello</p>
	<p>Γραμμή 0</p>
	<p>Γραμμή 1</p>
	<p>Γραμμή 2</p>
	<p>Γραμμή 3</p>
</body>
</html>

Η php χρησιμοποιείται από μεγάλο ποσοστό ιστοτόπων και από πολύ γνωστές ιστοσελίδες όπως: Google, Apple, Facebook, Yahoo!, Wikipedia, Digg, SitePoint, Amazon, Ebay, YouTube, Flickr, κλπ. Σύμφωνα με αξιόπιστα στατιστικά η PHP χρησιμοποιείται από το 81.3% όλων των ιστοσελίδων των οποίων η server-side γλώσσα είναι γνωστή.
Η php είναι η γλώσσα πάνω στην οποία έχουν γραφτεί οι πιο δημοφιλείς πλατφόρμες ανάπτυξης blog, Wordpress, Joomla!, και Drupal.

Τι είναι η Mysql;

Η Mysql είναι μια σχεσιακή βάση δεδομένων της εταιρίας Oracle η οποία συνεργάζεται με την php έτσι ώστε να παράγονται δυναμικές ιστοσελίδες. Δεν είναι η μόνη βάση δεδομένων που μπορεί να συνεργαστεί με την php (άλλο παράδειγμα είναι, πχ. η βάση ανοιχτού κώδικα Postgresql). Ωστόσο η Mysql έρχεται "πακέτο" μαζί με την php σε διάφορα δημοφιλή λογισμικά που προσφέρουν επίσης τον ανοιχτού κώδικα http-server "Apache".

Πώς μπορώ να εγκαταστήσω php και mysql στον υπολογιστή μου;

Συνήθως η php και η mysql εγκαθίστανται σε συνδυασμό με κάποιον http-server. Η πιο απλή λύση είναι να κατεβάσετε και να εγκαταστήσετε ένα από τα παρακάτω λογισμικά τα οποία προσφέρουν σε πακέτο τον Apache http-server, τη γλώσσα php, και τη βάση mysql. Είναι όλα δωρεάν και η επιλογή τους εξαρτάται από την πλατφόρμα του λειτουργικού συστήματος που έχει ο server:

  • XAMPP: [Προτεινόμενο] Προσφέρεται για Linux, Windows, Mac OS X, Solaris.
  • WAMPSERVER: Προσφέρεται μόνο για Windows.

Έστησα το XAMPP στον υπολογιστή μου. Πώς το ενεργοποιώ και πώς γράφω εφαρμογές php;

Εκτελούμε την εφαρμογή XAMPP Control Panel και πατάμε τα κουμπιά "Start" που αντιστοιχούν στις υπηρεσίες Apache και Mysql. Θα πρασινίσουν και οι δύο αυτές υπηρεσίες και θα εμφανιστούν αριθμοί θυρών (ports) στις αντίστοιχες θέσεις. Ο Apache server χρησιμοποιεί by default τις θύρες 80 και 443 ενώ η mysql χρησιμοποιεί τη θύρα 3306 (βλ. σχήμα):

Ορισμένες εφαρμογές όπως το skype, μπορεί να χρησιμοποιούν τις θύρες 80, 443 και συνεπώς συγκρούονται με τον Apache server. Ειδικά για το skhype, η λύση είναι απλή: απο-επιλέξτε το κουτάκι "Χρήση των θυρών 80 και 443..." στο μενού "Επιλογές" > "Για προχωρημένους" > "Σύνδεση" (βλ. σχήμα):

Για να βρούμε ποιες θύρες χρησιμοποιούνται από άλλες εφαρμογές εκτελούμε την εντολή "netstat -a" είτε από το DOS command window είτε από το XAMPP Control Panel:

Πληροφοριακά, το XAMPP εκτός από τον Apache, τη Mysql, και την php προσφέρει επί πλέον τις υπηρεσίες FileZilla (FTP Server), Mercury (Email Server), Tomcat (Java Applet Server) και τη γλώσσα Perl.
Οι εφαρμογές php γράφονται μέσα στον φάκελο C:\xampp\htdocs τον οποίο έχει δημιουργήσει το XAMPP. Ένα οποιοδήποτε αρχείο x.php καλείται από τον browser γράφοντας στο πεδίο της διεύθυνσης του browser

  • localhost/x.php      εφόσον καλούμε το αρχείο από το ίδιο μηχάνημα όπου είναι στημένος ο server
  • διεύθυνση-του-server /x.php      εφόσον καλούμε το αρχείο από άλλο υπολογιστή

Μην ανοίγετε αρχεία php από τα Windows σα να ήταν απλά αρχεία html.

Πού μπορώ να βρω υλικό και εγχειρίδια αναφοράς για την php και την mysql;

Το βασικό portal για την php είναι το php.net.
Το βασικό portal για την mysql είναι το mysql.com.
Πολύ καλή πηγή πληροφοριών με παραδείγματα τόσο για την php όσο και για την mysql είναι το w3schools.com.

Πώς μπορώ να κάνω debugging σε ένα πρόγραμμα php;

Ένα πρόγραμμα php μπορεί να αναπτυχθεί και να αποσφαλματωθεί μέσα στο προγραμματιστικό περιβάλλον eclipse στο οποίο πρέπει να στηθεί ένας αποσφαλματωτής php όπως το zend ή το xdebug . Παρακάτω θα δείξουμε τα βήματα που χρειάζονται έτσι ώστε να χρησιμοποιηθεί το xdebug σε eclipse σε πλατφόρμα Windows. Προϋποτίθεται ότι έχετε ήδη εγκαταστήσει XAMPP στον υπολογιστή σας.

  • Κατεβάστε το Eclipse for PHP Developers από την σελίδα Eclipse Downloads. Σημειώστε ότι απλώς κάνετε unzip το αρχείο και το εκτελέσιμο πρόγραμμα eclipse.exe είναι αμέσως διαθέσιμο (δεν χρειάζεται installation).
  • Κατεβάστε το κατάλληλο dll για το xdebug. Για να βοηθηθείτε στην επιλογή του κατάλληλου dll χρησιμοποιήστε τον Xdebug Wizard.

    Αντιγράψτε την έξοδο του phpinfo() η οποία δίνεται εδώ: http://localhost/xampp/phpinfo.php, επικολλήστε την στο παράθυρο που δίνεται και πατήστε το κουμπί . Η σελίδα αυτή θα σας δώσει custom installation instructions όπως οι παρακάτω:

  • Στο αρχείο php.ini προσθέστε/αλλάξτε τις ακόλουθες γραμμές
    zend_extension = "C:\xampp\php\ext\<το dll αρχείο που κατεβάσατε>.dll"
    xdebug.remote_enable = 1
    xdebug.remote_handler = "dbgp"
    xdebug.remote_port = 9000
    					
  • Αφού γίνουν οι παραπάνω αλλαγές σταματήστε και ξαναξεκινήστε τον Apache server από το XAMPP Control Panel.
  • Ρυθμίστε το eclipse ακολουθώντας τις οδηγίες από το Wiki manual του eclipse για το xdebug.
  • Τώρα μπορείτε να δημιουργήσετε ένα καινούργιο php project στο eclispe, να γράψετε php κωδικα, να τον εκτελέσετε και να τον αποσφαλματώσετε.

Κ. Διαμαντάρας (Tελευταία ενημέρωση 13/6/2015)