ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών, Τμήμα Πληροφορικής και Επικοινωνιών Προγραμματιστικές Εφαρμογές στο Διαδίκτυο (Θ) Τελική Εξέταση - Διδάσκων: Δ. Κοτζίνος Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα Α Έδωσα Project NAI ΟΧΙ Χειμερινό 12-13 Εργαστήριο Πέρασα: ΝΑΙ ΟΧΙ ΘΕΜΑ 1 [40 μονάδες: 4 σωστό - 1 λάθος] 1 2 3 4 5 6 7 8 9 10 Α Β C D ΘΕΜΑ 2 [30] 1 2 3 4 5 6 ΘΕΜΑ 3 [30] ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής μόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Μία απάντηση ανά ερώτηση ΜΟΝΟ! Μπορείτε να χρησιμοποιήσετε μολύβι! Δ. Κοτζίνος Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Σελίδα 1 από 7
ΘΕΜΑ 1 (40 μονάδες) 1. Τι θα δείξει ο παρακάτω κώδικας <?php echo $_SERVER['REMOTE_ADDR'];?> A. την IP διεύθυνση του επισκέπτη B. την IP διεύθυνση του τοπικού συστήματος (server) C. την IP διεύθυνση του proxy D. Κανένα από τα υπόλοιπα 2. Ποιοι από τους παρακάτω τύπους δεδομένων περνιούνται πάντοτε (implicitly) με αναφορά (by reference) στην PHP5 ενώ περνιούνται με τιμή (by value) στην PHP4; A. Object B. Class C. String D. Array 3. Ποιο από τα επόμενα δεν είναι σωστός κώδικας σε PHP: A. $avar B. &$something C. $10_something D. $var 4. Πως δουλεύει ο τελεστής === στην PHP: A. Επιστρέφει true όταν οι μεταβλητές είναι του ίδιου τύπου και περιέχουν την ίδια τιμή B. Δουλεύει μόνο πάνω σε αλφαριθμητικές μεταβλητές (strings) C. Μετατρέπει και τις δύο συγκρινόμενες μεταβλητές σε ένα συμβατό τύπο και μετά συγκρίνει D. Μετατρέπει και τις δύο συγκρινόμενες μεταβλητές σε αλφαριθμητικά (strings) και μετά τις συγκρίνει 5. Ποια είναι η σωστή HTML έκφραση για να δημιουργήσουμε έναν σύνδεσμο; A. <a name="http://www.aaa.com"> Company </a> B. <a href="http://www.aaa.com"> Company </a> C. <a>http://www.aaa.com</a> D. <a url="http://www.aaa.com">company</a> 6. Ποια θα είναι η τιμή (περιεχόμενα του $a μετά την εκτέλεση του παρακάτω κώδικα: $a = array('a', 'b'); array_push($a, array(1, 2)); A. array('a', 'b', 1, 2) B. array(1, 2, 'a', 'b') C. array(array(1, 2), 'a', 'b') D. Κανένα από τα υπόλοιπα 7. Ποια δυνατότητα (- ες) μας δίνει η PHP για να θέσουμε την ημερομηνία λήξης μιας συνεδρίας (session); A. Θέτουμε το session.duration directive στο php.ini B. Θέτουμε το session cookie expiry date στον κώδικά μας χρησιμοποιώντας session_set_cookie_params() Δ. Κοτζίνος Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Σελίδα 2 από 7
C. Θέτουμε το session expiry date στον κώδικά μας χρησιμοποιώντας session_cache_expire() D. Κανένα από τα υπόλοιπα 8. Ποια HTTP μέθοδο χρησιμοποιούμε για file downloads; A. POST B. GET C. OPTIONS D. Είτε GET είτε POST 9. Με ποιο τρόπο αναθέτουμε μια συνάρτηση σε μια μεταβλητή με τον JavaScript Function constructor? A. Κανένα από τα υπόλοιπα B. var f=function("x","y","return x+y"); C. var f=function(x,y){ return x+y; D. var f= new Function("x", "y", "return x + y"); 10. Ποια είναι η σωστή CSS σύνταξη που κάνει ένα link να μην είναι υπογραμμισμένο? A. <a style="text- decoration:noline"> B. <a style="text- decoration:none"> C. <a style="decoration: none"> D. a {decoration: no line Δ. Κοτζίνος Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Σελίδα 3 από 7
ΘΕΜΑ 2 (30 μονάδες) Απαντήστε στα παρακάτω: 1. Τι θα επιστρέψει ο παρακάτω κώδικας αν κληθεί; Υποθέστε πως καλείται χρησιμοποιώντας την εξής URL: testscript.php?c=10 <?php function process($c, $d = 25) { global $e; $retval = $c + $d - $_GET[ c ] - $e; return $retval; $e = 10; echo process(5, 20);?> 2. Ποιο είναι το αποτέλεσμα του κώδικα που ακολουθεί και γιατί: 01 <?php 02 class a 03 { 04 public $val; 05 06 07 function renderval (a $a) 08 { 09 if ($a) { 10 echo $a->val; 11 12 13 14 renderval (null); 15?> Δ. Κοτζίνος Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Σελίδα 4 από 7
3. Τι κάνει ο παρακάτω κώδικας: <?php $x=dir("."); while($y=$x->read()) { echo $y." " $y->close();?> 4. Τι θα τυπώσει ο παρακάτω κώδικας, όταν κληθεί η συνέρτηση x: <script language="javascript"> function x() { document.write(3+4+"4"); </script> Δ. Κοτζίνος Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Σελίδα 5 από 7
5. Δίνεται ο παρακάτω CSS κώδικας: body p { text-align: right; backcolor: black; p { text-align: left; #id1 body.a { text-align: center; color: yellow; Ένα κομμάτι HTML κώδικα που φέρει τις ετικέτες <body>, το id #id1 και την κλάση a πως θα εμφανιστεί στην οθόνη; 6. Δίνεται ο παρακάτω CSS κώδικας: body p { text-align: right; backcolor: black; p { text-align: left; #id1 body.a { text-align: center; color: yellow; Γράψτε κώδικα σε javascript που να αλλάζει το css και να κάνει κόκκινο το backcolor όλων των παραγράφων που είναι σημειωμένες με την ετικέτα <p>. Δ. Κοτζίνος Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Σελίδα 6 από 7
ΘΕΜΑ 3 (30 μονάδες) ΓΙΑ ΟΣΟΥΣ ΔΕΝ ΕΔΩΣΑΝ PROJECT Ένα από τα σημαντικά προβλήματα στο διαδίκτυο είναι η διαδικασία κατά την οποία κάποιος μπορεί να παραστήσει πως είναι κάποιος άλλος απλά κλέβοντας τη συνεδρία (session) του. Δηλαδή κλέβοντας το session- id που την αντιπροσωπεύει. Η κατάσταση αυτή είναι γνωστή σαν session hijacking. Θα πρέπει να δώσετε κώδικα σε PHP που θα χειρίζεται sessions με έναν τρόπο που να μην μπορεί να χρησιμοποιηθούν από κάποιον άλλο ακόμα και αν γνωρίζει το session- id. Εξηγείστε τις επιλογές σας. Μπορείτε να κάνετε όποια υπόθεση θέλετε για την είσοδο, αρκεί να την περιγράψετε ολοκληρωμένα και να μην είναι εκτός λογικής (π.χ. υπόθεση πως κάποιος δεν είναι συνδεδεμένος στο διαδίκτυο). Δ. Κοτζίνος Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Σελίδα 7 από 7