====== PHP - Βασικές δομές ====== * H php είναι μια γλώσσα προγραμματισμού που εκτελείται σε web servers και παράγει html που καταλαβαίνουν οι περιηγητές (browsers). * Είδαμε πως μπορούμε να λάβουμε δεδομένα από μία φόρμα με την **μέθοδο get** κάνοντας χρήση της php. * Στην νέα άσκηση θα δούμε διάφορα προγραμματιστικά χαρακτηριστικά της php και πως θα την συνδυάσουμε με html - **ΔΗΜΙΟΥΡΓΙΑ PHP ΣΕΛΙΔΑΣ** - Δημιουργήστε με το geany ένα νέο αρχείο php και αποθηκεύστε το ως **demo.php** στον φάκελο **public_html/www** - Προσθέστε μέσα στο .. τον παρακάτω κώδικα * * Η **echo** εμφανίζει κάτι στην ιστοσελίδα //(όπως η writeln στην pascal, η printf στην C κτλ)//. * Ακόμα δεν κάναμε κάτι το ιδιαίτερο θα μπορούσαμε να το γράψουμε και σε απλή html. - Για να δούμε το αποτέλεσμα θα πρέπει να ανοίξουμε την ιστοσελίδα από τον **web server**, **όχι τοπικά**. Αν ο webserver μας έχει όνομα **lserver**, πηγαίνουμε στην διεύθυνση **http://lserver/~username/demo.php** //(όπου username βάζετε το δικό σας)// - **ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ** - Ας κάνουμε το κείμενο **Demo** μεγάλο (επικεφαλίδα 1) όπως ξέρουμε στην html και να είναι στο κέντρο. Βάλτε τις ετικέτες που πρέπει. - Το κείμενό μας είναι στην **1η γραμμή**. Εάν θέλαμε να εμφανιστεί για παράδειγμα στην **11η γραμμή** θα έπρεπε να βάζαμε **10 φορές** την ετικέτα **
**. Πάμε να το κάνουμε προγραμματιστικά με την php. Εισάγετε τον παρακάτω κώδικα πάνω από το **echo "Demo";**. * for ($i = 1; $i <= 10; $i++) { echo "
"; }
* Η παραπάνω δομή επανάληψης θα εκτελέσει 10 φορές την **echo "
";** - **ΜΕΤΑΒΛΗΤΕΣ** * Οι μεταβλητές όπως πιθανόν γνωρίζουμε και από άλλες γλώσσες προγραμματισμού αποθηκεύουν τιμές, αριθμητικές, κειμένου ή άλλες. * Η **i** είναι μία μεταβλητή της php. Αρχικά έχει την τιμή 1 και αυξάνεται κατά 1 με την εντολή **$i++** σε κάθε επανάληψη. Η επανάληψη εκτελείται ενώ η συνθήκη **$i <= 10** ισχύει (είναι αλήθεια). Όταν λοιπόν γίνει η i 11 σταματάει η επανάληξη. * Βλέπουμε ότι στην php οι μεταβλητές έχουν πάντα μπροστά το σύμβολο **$** - Πάμε να ορίσουμε μια νέα μεταβλητή **$line** που θα πάρει μία τυχαία τιμή από 1 έως 20. Εισάγετε τον παρακάτω κώδικα πάνω από την **for** $line=rand(1, 20); - Αντικαταστήστε το **10** με **$line** ώστε να μην έχουμε πάντα **10
** αλλά **τυχαία από 1 έως 20** και δείτε το αποτέλεσμα. - Επίσης για να είναι εμφανές και σε μάς η τιμή της line, κάτω από την **echo "

Demo

";** εισάγετε τον κώδικα echo "Γραμμή " . $line; * Εντοπίσατε ένα μικρό λογικό λάθος; Αν μπορείτε διορθώστε το αλλιώς αφήστε το, είναι μικρής σημασίας. - ** Χρώματα - PHP μέσα σε ετικέτες** * Εάν θέλαμε να βάλουμε χρώματα στην σελίδα μας σε φόντο και κείμενο θα τροποποιούσαμε την για παράδειγμα σε ή θα χρησιμοποιούσαμε δεκαεξαδικούς αριθμούς όπως . * Πάμε να δούμε πως θα παράγουμε τυχαία δεκαεξαδικά χρώματα με την php ώστε να τα βάλουμε στην ετικέτα - Διαγράψτε την ετικέτα **** και στην αρχή του κώδικα php πριν από όλα τα υπόλοιπα εισάγετε τον παρακάτω κώδικα * $bgclr = sprintf("#%06x",rand(0,16777215)); echo ""; * Ο κώδικας αυτός βάζει μια τυχαία δεκαεξαδική τιμή στην μεταβλητή **$bgclr** π.χ. **#fa27e2**. * Η **echo** παίρνει το κείμενο **""** ώστε να κλείσει η ετικέτα **** * Η **echo** τελικά εμφανίζει την html **** - Μπορείτε με παρόμοιο τρόπο με μια νέα μεταβλητή **$textclr**, να βάλετε και την **text=#64bc9d** //(όπου #64bc9d τυχαία τιμή)// μέσα στην **** ώστε **να αλλάξει χρώμα και στο κείμενο;** * Προσοχή να υπάρχει κενό πριν από το κειμενο **text** - Αλλάξτε επίσης την γραμμή **echo "Γραμμή " . $line;** σε echo "Γραμμή " . $line . " Χρώμα φόντου " . $bgclr . " Χρώμα κειμένου " . $textclr ; ώστε να βλέπουμε ακριβώς πια χρώματα χρησιμοποιούμε. - Πατήστε αρκετές φορές **F5** για να δείτε το αποτέλεσμα που αλλάζει κάθε φορά. **Αυτό σημαίνει δυναμική σελίδα!** - **for μέσα σε for** * Έχουμε ήδη δει μια επανάληψη με for στην οποία δημιουργούσαμε κενές γραμμές με πολλά **
** - Να φτιαχτεί μία γραμμή με **20** αστεράκια (το σύμβολο *****) με χρήση επανάληψης. - Στην θέση του **20** να μπει μια μεταβλητή με όνομα **$mikos**. Ακριβώς πάνω από την for με τα αστεράκια ορίστε η μεταβλητή **$mikos** να πάρει την τιμή **20**. Εμφανίστε πάλι την ιστοσελίδα. Θα πρέπει να είναι όμοια. - Έχουμε φτιάξει μία γραμμή με 20 αστεράκια. Από κάτω δημιουργήστε άλλη μία. (Προσοχή πρέπει να αλλάξετε γραμμή στην html) - Όταν φτιάχνετε μια επανάληψη με for, **εκτελούνται πολλές φορές** όσες εντολές υπάρχουν ανάμεσα στα **{ }**. Μπορείτε να φτιάξετε **5 γραμμές** με αστεράκια. (Προσοχή για να μην μπλέξετε τους μετρητές χρησιμοποιήστε μετρητή **$j** για τις 5 γραμμές) - Στην θέση του **5** βάλτε μια μεταβλητή **ipsos**. Ακριβώς πριν την χρησιμοποιήσετε, δώστε την τιμή **5** στην μεταβλητή **$mikos**. - Εμφανίστε κάτω από το σχήμα με τις 5 γραμμές από 20 αστεράκια το κείμενο **Ορθογώνιο με 5 γραμμές και 20 αστεράκια**, αλλά στην θέση του 5 και του 20 να είναι οι αντίστοιχες μεταβλητές. - Εμφανίστε **10 γραμμές** με **30 αστεράκια** η κάθε μία.