Μέλη ομάδας: Χρυσή Σέα Νικόλας Κλεάνθους Στέφανος Γεωργίου
Τι είναι η PHP H PHP είναι μια γλώσσα προγραμματισμού για τη δυναμική δημιουργία ιστοσελίδων. Μια σελίδα PHP επεξεργάζεται από ένα συμβατό web server του Internet όπως τον Apache για να παραχθεί σε πραγματικό χρόνο το περιεχόμενο, που θα σταλεί στο πρόγραμμα περιήγησης των επισκεπτών σε κώδικα HTML.γλώσσα προγραμματισμού ApacheHTML
Λίγα ιστορικά….. το 1995, ο Rasmus Lerdorf δημιούργησε ένα απλό script με όνομα php.cgi, στη γλώσσα Perl με σκοπό να κρατά στατιστικά για τα άτομα που έβλεπαν το online βιογραφικό του.1995Rasmus Lerdorfscript Αργότερα του ζητήθηκε να προσθέσει περισσότερες δυνατότητες. Η γλώσσα ονομάστηκε PHP/FI (=Personal Home Page/Form Interpreter). Το 1997 δημιουργήθηκε η 2 η έκδοση της PHP/FI στη γλώσσα C με ιστότοπους. Το ίδιο έτος οι Andi Gutmans και Zeev Suraski δημιούργησαν την 3 η έκδοση βασιζόμενοι στην ίδια έκδοση.Andi GutmansZeev Suraski το 1998 δημιουργήθηκε η έκδοση 4 της PHP1998 Ιούλιο του 2004 διατέθηκε η έκδοση 5, τις οποίες χρησιμοποιούν και οι περισσότεροι ιστότοποι επί του παρόντος.2004
Πλεονεκτήματα PHP έναντι HTML Πριν τη δημιουργία της PHP οι προγραμματιστές ιστοσελίδων χρησιμοποιούσαν HTML. Σήμερα περισσότερα από web sites, ποσοστό μεγαλύτερο από το 35% των ιστοσελίδων του Διαδικτύου, χρησιμοποιούν scripts γραμμένα με τη γλώσσα PHP, ενώ το υπόλοιπο 65% το μοιράζονται στατικές σελίδες HTML και όλες οι άλλες γλώσσες προγραμματισμού. Η μεγάλη στροφή προς την PHP συνέβει για τους παρακάτω λόγους:Διαδικτύου Η HTML είναι γλώσσα στατική, επομένως τα δεδομένα δεν μπορούν να αλλάξουν ενώ η PHP δυναμική πράγμα που σημαίνει ότι τα δεδομένα της ιστοσελίδας μπορούν να ανανεώνονται, να αλλάζουν με εντολή του χρήστη. Η HTML δεν είναι ασφαλής για ιστοσελίδες που απαιτούν ασφάλεια στα δεδομένα όπως e commerce(e-banking, air-banking, bind shopping ) επεξεργασία βάσεων δεδομένων, που και πάλι απαιτούν ασφάλεια. Όμως.... Η HTML είναι πιο εύκολη γλώσσα και γενικοτερα λάθη σε αυτή μπορούν να «διορθωθούν» πιο εύκολα από ότι στην ΡΗΡ.
Για την εγκατάσταση της ΡΗΡ… Η PHP χρησιμοποιείται κυρίως για ανάπτυξη ιστοσελίδων αλλά και για εφαρμογές διαδικτύου. Για τέτοιες υλοποιήσεις απαιτούνται : PHP Web server Web Browser Για την εγκατάσταση server (Apache Web Server) αναλόγως του Λ.Σ ακολουθούμε: Windows: windows.htmlhttp:// windows.html Linux: MacOS:
Σημείωση: Η ΡΗΡ μπορεί να χρησιμοποιηθεί και για command line scripting (PHP CLI). Ωστόσο στην εργασία μας δεν κρίθηκε αναγκαίο γι αυτό και δεν θα γίνει εκτενής αναφορά στην εν λόγω εφαρμογή.
Η γλώσσα ΡΗΡ Η ΡΗΡ είναι γλώσσα εύκολη στην εκμάθηση καθώς παρουσιάζει πολλές ομοιότητες με την ήδη γνωστή και οικεία σε όλους μας (!!!) γλώσσα, C++! Ενδεικτικά παρουσιάζονται οι σημαντικότερες REQUEST_METHODS για τις βασικότερες λειτουργίες του συστήματος:
Μέθοδος Get: Με την πιο πάνω υλοποίηση ο επισκέπτης που θα ανοίξει τη σελίδα με τη μορφή page.php?id=1 θα δει το κείμενο "Κείμενο 1". Αν ανοίξει τη σελίδα σαν page.php?id=2 θα δει στην οθόνη του τη φράση "Δεύτερο κείμενο", ενώ για οποιοδήποτε άλλο id, θα δει τη φράση "Άλλο κείμενο".
Μέθοδος Post: Αν ο αριθμός του id πρόκειται να σταλεί μέσω μια φόρμας που χρησιμοποιεί τη μέθοδο POST, αρκεί να αντικατασταθεί η γραμμή: $id = $_GET['id']; με την ακόλουθη: $id = $_POST['id']; Δηλαδή: <?php $id = $_POST['id']; if ($id == 1) { echo "Κείμενο 1"; } … …
Hello World Hello World in PHP: (πιο απλό δε γινόταν!) Το μόνο που πρέπει να προσέξουμε είναι να συμπεριλάβουμε τον php κώδικα σε Η συνέχεια περιλαμβάνει ενδεικτικά παραδείγματα για τις δυνατότητες της ΡΗΡ!...
Session Variables Αποθηκεύουν πληροφορίες για ένα user session. Κρατούν πληροφορίες για ένα single user και διατίθονται σε όλες τις σελίδες ενός application. Παράδειγμα: <?php // this starts the session session_start(); // echo variable from the session, we set this on our other page If (isset($_SESSION ['color'])) unset($_SESSION ['color']); echo "Our color value is ".$_SESSION['color']; If (isset($_SESSION ['size'])) unset($_SESSION ['size']); echo "Our size value is ".$_SESSION['size']; ?> Σημείωση: Η συνάρτηση isset(...) ελέγχει αν στη συγκεκριμένη θέση έχουμε ήδη δώσει τιμή, οπότε επιβάλλεται μέσω της unset(…) να την «εκκενώσουμε» για να μπορέσουμε να βάλουμε την νέα τιμή που θέλουμε.
Arrays Στην ΡΗΡ μπορούμε αντί να δώσουμε αριθμούς στις θέσεις ενός πίνακα να δώσουμε ολόκληρα strings. Αυτό απλοποιεί την αναζήτηση τιμής μιας συγκεκριμένης θέσης. Παράδειγμα:
Functions Στις συναρτήσεις επίσης μας δίνεται η δυνατότητα να ελέγξουμε κατά πόσο έχουμε ήδη δημιουργήσει τη συγκεκριμένη συνάρτηση. Επιπλέον μπορούμε να επιστρέψουμε τιμές χωρίς να το έχουμε δηλώσει! Παράδειγμα: <?php if (!function_exists("add")) { function add($x,$y) { $total=$x+$y; return $total; } echo " = ". add(1,16); ?>
Classes Δημιουργούμε κλάσεις με συναρτήσεις τις οποίες καλούμε όταν δημιουργούνται exeptions. getLine().' in '.$this->getFile().': '.$this->getMessage().' is not a valid address'; return $errorMsg; } } $ =
try { //check if if(filter_var($ , FILTER_VALIDATE_ ) === FALSE) { //throw exception if is not valid throw new customException($ ); } } catch (customException $e) { //display custom message echo $e->errorMessage(); } ?>
PHP XML DOM PARSER (Document Object Model) Tove Jani Reminder Don't forget me this weekend! DOM note to from headi ng body Tove Jani Remi nder Don´t forget me this weekend !
Header() Το header() function στέλλει ένα raw HTTP header στον client. Παράδειγμα: Σε αυτή την περίπτωση ο client μεταφέρεται αυτόματα στην ιστοσελίδα
Χρήση του Header στην εργασία μας
$_SERVER['REQUEST_METHOD'] Παράδειγμα χρήσης στην εργασία μας: <?php Στο πιο πάνω παράδειγμα η μέθοδος που χρησιμοποιεί ο server είναι η GET. Αυτο σημαίνει πώς ο client αιτείται κάτι από τον server. Ενώ με: <?php O client αποστέλλει κάι στον server (πχ username και password) και αναμένει την αντίδρασή του.
Θέμα Εργασίας… Στόχος της εργασίας μας είναι η ευκολία του administrator στη δυναμική αλλαγή των πληροφοριών που αφορούν το colloquium του συστήματος του Πανεπιστημίου. Μέσω δηλαδή μιας πρακτικής κονσόλας θα μπορεί πλέον να προσθέτει πληροφορίες για νέους ομιλητές και να ανανεώνει πληροφορίες (όπως νέα ώρα, ημερομηνία, αίθουσα) για τους ήδη υπάρχοντες. Τα στοιχεία πρέπει να μπορούν να δίνονται δυναμικά!
Ευκολίες της ΡΗΡ Στην εκμάθηση (Αν έχεις χρόνο και διάθεση!) Πολλές δυνατότητες Δυνατότητες μορφοποίησης Δημιουργία ιστοσελίδων δυναμικά!
Δυσκολίες Δεν είχαμε οποιαδήποτε προηγούμενη επαφή με τη συγκεκριμένη γλώσσα πολλές – πολλές φορές Google it! Αναγκαστήκαμε να μάθουμε μια script language σε μικρό χρονικό διάστημα. Η PHP δεν διαθέτει συντακτικό αναλυτή, οπότε έπρεπε από μόνοι μας να καταλάβουμε πούβρισκόταν το λάθος κάθε φορά που εμφανιζόταν Blank Page. Δυσκολία στο upload εικόνας.
Στατιστικά στοιχεία Γραμμές κώδικα 1200 γραμμές Χρόνος υλοποίησης μέρες Σημαντικά μέρη του κώδικα
Login <?php session_start(); $_SESSION['name']=$_POST['name' ]; Alles <?php session_start(); $_SESSION['preview']=$_POST; if($_SESSION['name']=="") header('Location: login.php'); ?>
$file = fopen("login.txt","r") or exit("Unable to open file!"); $array=array(); while(!feof($file)) { $tok=strtok(fgets($file),":"); $tok2=strtok(":"); $array[$tok]=$tok2; } fclose($file); ?> <?php $array[$_POST['name']] = str_replace(' ', '', $array[$_POST['name']]); $_POST['passwd'] = str_replace(' ', '', $_POST['passwd']); $array[$_POST['name']]=substr($array[$_POS T['name']],0,-1);
if(array_key_exists($_POST['name'],$a rray) && ($_POST['name']!="") && ($_POST['passwd']!="")) { if($array[$_POST['name']]== $_POST['passwd']) {header('Location: menu.php');?> <?php } else {echo "Invalid Username or Password"; ?> <?php }
Date: new tcal ({ // form name 'formname': 'testform', // input name 'controlname': 'date' }); </script
Συμπεράσματα Η υλοποίηση δυναμικής ιστοσελίδας δεν είναι και τόσο εύκολη υπόθεση τελικά. Καταλάβαμε την αξία του Συντακτικού Αναλυτή της C! Επομένως το μάθημα των Compilers καλό θα ήταν να γίνει υποχρεωτικό για την κατεύθυνσή μας!
Βιβλιογραφία vs-php.html vs-php.html rence-between-php-and-html/ rence-between-php-and-html/ ons_2.htm ons_2.htm php php Βιβλίο: Programming in PHP (Rasmus Lerdorf and Kevin Tatroe)
Ευχαριστούμε για την προσοχή σας!