# AMC-TXT source PaperSize: A4 Lang: FR Title: Université Côte d’Azur - Institut Universitaire de Technologie Département Informatique M314 - Programmation Côté Serveur PHP Mardi 07 janvier 2020 Presentation: Questionnaire à choix unique - Durée ~ 1h00 Calculatrice, Téléphone Portable et Ordinateur non-autorisés ShuffleQuestions: 0 Code: 1 NameFieldLines: 0 CodeDigitsDirection: horizontal Columns: 1 CompleteMulti: 0 L-None: aucune des réponses ci-dessus n'est correcte. Pages: 2 ManualDuplex: 1 LaTeX-Preambule: \geometry{hmargin=1.5cm} *[columns=2] Soit le code PHP suivant : [verbatim] $ch1 = "ABC"; $ch2 = "123"; $ch3 = "DFE"; $ch4 = "456"; $txt1 = ""; $txt1 .= $ch1. "-".$ch4; et $tx1 .= "#".$ch2."-".$ch3; [/verbatim] Quelle est la valeur de $txt1 ? - "123-DFE#ABC-456" - "456-ABC#123-DFE" + "ABC-456#123-DFE" - “DFE-123#456-ABC" *[columns=2]Soit le code PHP suivant : [verbatim] $ch1 = "ABC"; $ch2 = "123"; $ch3 = "DFE"; $ch4 = "456"; $txt1 = ""; $txt1 .= $ch1. "-".$ch4; et $tx1 .= "#".$ch2."-".$ch3; [/verbatim] Quelle est la valeur de $txt1[4]. $txt1[8] ? - "#6" + "41" - "B3" - "14" *[columns=1]Soit el code PHP suivant : [verbatim] Nous sommes le "; if ( Date("H") < 12 ) { echo "Bonjour .."; } else { echo "Bonne après midi .."; } ?> [/verbatim] Nous supposons qu’il est 9 h, et que notre fichier php se trouve sous : Mes Documents\PHP\bonjour.php ; nous chargeons le fichier en local sur notre navigateur, que s’affiche-t-il ? - Nous sommes le 05/05/2011 Bonjour - Nous sommes le 05/05/2011 Bonne après midi - Nous sommes le + Le code tel quel sans les balises html *[columns=1]Peut-on manipuler dans un fichier .html, une variable globale définie dans le langage PHP ? - Oui + Non - Il suffit d’utiliser la table $_GLOBAL de PHP - Il suffit de la manipuler entre deux balises < ?php … ?> **[columns=1] Peut on exécuter que du code html dans un fichier php + Oui - Non + Il faut utiliser les balises … … - Il faut que le fichier ne contienne pas de balise < ?php … ?> *[columns=1]Sous php, on considère un extrait de code suivant : [verbatim] $club_membres_tab[$k]["email"] = $email_club_membre; $club_membres_tab[$k]["nom"] = $nom_club_membre; $club_membres_tab[$k]["prenom"] = $prenom_club_membre; foreach ($club_membres_tab as $ind => $val) { $nom_prenom = ""; $email = ""; foreach ($val as $titre => $valeur) { if ( strcmp($titre, "email") == 0) print($valeur.”
”); else print($valeur.” “); } } [/verbatim] Que désigne la variable « titre » dans le foreach ? - Le titre de la table - Les indices des lignes de la table + Les indices des colonnes de la table - Les valeurs des éléments de la table *[columns=2]Sous php, on considère un extrait de code suivant : [verbatim] $club_membres_tab[$k]["email"] = $email_club_membre; $club_membres_tab[$k]["nom"] = $nom_club_membre; $club_membres_tab[$k]["prenom"] = $prenom_club_membre; foreach ($club_membres_tab as $ind => $val) { $nom_prenom = ""; $email = ""; foreach ($val as $titre => $valeur) { if ( strcmp($titre, "email") == 0) print($valeur.”
”); else print($valeur.” “); } } [/verbatim] Que désigne la variable $val ? + Les colonnes de la table - Le champ nom - Le champ prénom - Le champ email *[columns=2]Sous php, on considère un extrait de code suivant : [verbatim] $club_membres_tab[$k]["email"] = $email_club_membre; $club_membres_tab[$k]["nom"] = $nom_club_membre; $club_membres_tab[$k]["prenom"] = $prenom_club_membre; foreach ($club_membres_tab as $ind => $val) { $nom_prenom = ""; $email = ""; foreach ($val as $titre => $valeur) { if ( strcmp($titre, "email") != 0) print($valeur.”
”); else print($valeur.” “); } } [/verbatim] Que fait l'instruction if ... else ? - Trie les éléments de la table par email, par nom et par prénom - Affiche les valeurs de la table par email suivi par le nom et le prénom - Affiche les indices des colonnes de la table - Affiche les indices des lignes de la table *[columns=2]Soit le code php suivant : [verbatim] $v = 3; function xyz($a, $b, $x) { $x = $a*$a + $b*$b ; } function kwz($a, $b, $z) { print("1) La valeur de v est $v
") ; // premier print $z = $a + $b - $z; $v = 4*$z ; print("2) La valeur de v est $v
") ; // deuxième print } xyz(1,2,&$v); kwz(2,$v,5); print("3) La valeur de v est $v
") ; // troisième print [/verbatim] Quelle est la valeur de la variable v au premier print ? - 3 - 5 - 2 + aucune *[columns=2]Soit le code php suivant : [verbatim] $v = 3; function xyz($a, $b, $x) { $x = $a*$a + $b*$b ; } function kwz($a, $b, $z) { print("1) La valeur de v est $v
") ; // premier print $z = $a + $b - $z; $v = 4*$z ; print("2) La valeur de v est $v
") ; // deuxième print } xyz(1,2,&$v); kwz(2,$v,5); print("3) La valeur de v est $v
") ; // troisième print [/verbatim] Quelle est la valeur de la variable v au deuxième print ? - 3 + 8 - 2 - aucune *[columns=2]Soit le code php suivant : [verbatim] $v = 3; function xyz($a, $b, $x) { $x = $a*$a + $b*$b ; } function kwz($a, $b, $z) { print("1) La valeur de v est $v
") ; // premier print $z = $a + $b - $z; $v = 4*$z ; print("2) La valeur de v est $v
") ; // deuxième print } xyz(1,2,&$v); kwz(2,$v,5); print("3) La valeur de v est $v
") ; // troisième print [/verbatim] Quelle est la valeur de la variable v au troisième print ? - 3 - 8 - 2 + 5 **[columns=2]Dans le code html : [verbatim]
, [/verbatim] Comment récupère-t-on les variables v1 et v2 passées en ligne de commande lors que le formulaire est appelé? - $v1 et $v2 + $_RQUEST["v1"] et = $_REQUEST["v2"] + $_GET["v1"] et $_GET["v2"] - $_POST["v1"] et $_POST["v2"] *[columns=2]Soit le code html suivant : [verbatim]
[/verbatim] Quel est le nombre d’éléments maximal que l’on peut sélectionner simultanément dans le formulaire f1? - 1 - 2 - 3 + 4 *[columns=2]Soit le code html suivant : [verbatim]
[/verbatim] En supposant que l’on a sélectionné 2 et 4 quel est la valeur de $_RQUEST["f1[v]"] ? - "B" + array("b", "d") - "AD" - array("A", "D") *[columns=2]Soit le code html suivant : [verbatim]
[/verbatim] Considérons les droits du répertoire /tmp se trouvant dans la racine du site, que doivent être ces droits pour qu’en cliquent sur « f2[submit] » le fichier soit téléchargé sur le serveur ? - « –rwxr-xr-x » - « –rwxr—rr—- »  + « trwxrwxrwx » - « –rwxrwxr-x » *[columns=2]Soit le code html suivant : [verbatim]
[/verbatim] Quelle est la variable globale qui permet de récupérer les fichiers téléchargés ? - $_GET - $_POST - $_REQUEST + $_FILES *[columns=1]Soit le code html suivant : [verbatim]
[/verbatim] Supposons que nous avons sélectionné deux fichiers images img1.jpg et img2.jpg. Comment sont récupérés les noms des fichiers img1.jpg et img2.jpg ? - $_FILES[["f2[p]"]["tmp_name"][0] et $_FILES[["f2[p]"]["tmp_name"][1] + $_FILES[["f2[p]"]["name"][0] et $_FILES[["f2[p]"]["name"][1] - $_GET[["f2[p]"]["tmp_name"][0] et $_GET[["f2[p]"]["tmp_name"][1] - $_REQUEST[["f2[p]"]["tmp_name"][0] et $_REQUEST[["f2[p]"]["tmp_name"][1] **[columns=1]Soit le fichier exemple.txt possédant les droits « -rwxr-x—-x » et se trouvant sous /files/mytexts/. Dans le fichier open.php se trouvant sous /work/read/ laquelle de ces instruction retourne «TRUE» ? + is_file("../../files/mytexts/exemple.txt") - is_file("exemple.txt") + is_file("/files/mytexts/exemple.txt") - is_file("files/mytexts/exemple.txt") *[columns=1]Soit le fichier exemple.txt possédant les droits « -rwxr-xr-x » et se trouvant sous /files/mytexts/. Nous voulons ouvrir le fichier en écriture soit : [verbatim] $fp = fopen("/…/exemple.txt", "w+"); [/verbatim] Quelle sera la valeur de $fp ? - TRUE + FALSE - un pointeur sur la première ligne du fichier - un pointeur sur la dernière ligne du fichier *[columns=1]Soit le code php suivant : [verbatim] function xyz() { static $col; $c1 = "lightgray"; $c2 = "white"; if ($col == $c1) { $col = $c2; } else { $col = $c1; } return $col; } // Traitement echo ""; while($row = $result->fetch_assoc()) { echo ""; foreach($row as $val) echo ""; echo ""; } echo "
$val
"; [/verbatim] Comment le tableau est il affiché ? - Les cellules du tableau ont une couleur de fond en quinconce - Les colonnes du tableau ont une couleur de fond en alternance + Les lignes du tableau ont une couleur de fond en alternance - L’entête du tableau est d’une couleur différente de celle des lignes *[columns=1]Soit le code php suivant : [verbatim] $tableau = array("0","1","2","3","4","5","6","7","8","9", "a","b","c","d","e","f","g","h","i","j","k","l","m","n", "o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N", "O","P","Q","R","S","T","U","V","W","X","Y","Z"); $str = array_rand($tableau, 8); $new_str = ""; foreach($str as $i) { $new_str .= $tableau[$i]; } echo "La chaine est : " . $new_str; [/verbatim] Que contient la chaine $new_str ? - Une suite de 8 caractères du tableau (ex : "6","7","8","9", "a","b","c","d") prise au hasard - 8 lettres prises au hasard - 8 chiffres pris au hasard + 8 caractères du tableau pris au hasard *[columns=1]Soit le code php suivant : [verbatim] $user="root"; $pass="rt!123"; $host="localhost"; $conn = new mysqli_connect($host,$user,$pass,"personnel"); $sql = 'select * from from employe'; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { foreach($row as $val) { echo " $val
"; } } $conn->close(); [/verbatim] Que se passe t’il lors de l’exécution ? - On a une erreur de connexion au SGBD - On a une erreur de connexion à la base - On a une erreur de requête SQL + Tout se passe correctement **[columns=1]On considère le code php suivant : [verbatim] function xxx($texte) { $StringTab=explode(" ",$texte); $NewString=""; for($i=0;$i [/verbatim] Que fait le code précédent ? - Affiche le contenu de la table "tatable" - Affiche un sélecteur constituée par les valeurs du champ "tonchamp" - Affiche un sélecteur constituée par les champs de "tatable" + Génère une erreur d’exécution **[columns=1]Soit le code php suivant : [verbatim] // Récupère le contenu du fichier "xyz.txt" $cpt = file_get_contents("xyz.txt"); if(!isset($_COOKIE["xyz »])) { setcookie("xyz","ok",time() + (86400 * 30),"/"); $cpt++; $inf = fopen($fichier,"w"); if ($inf) { fputs($inf,$cpt); fclose($inf); } } [/verbatim] Que fait le code précédent ? + Compte le nombre de visite à une page et l’enregistre dans le fichier "xyz.txt" pour le cookie "xyz" - Affiche le contenu du fichier xyz.txt + Génère un cookie "xyz" et lui affecte "ok" - Enregistre le cookie "xyz" dans le fichier "xyz.txt" *[columns=2]Soit le cookie suivant : [verbatim] $cookie_name = "user"; $cookie_value = "Alphonse Karr"; setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); [/verbatim] Quelle est la durée de ce cookie ? - Un jour + Un mois - 30 heures - 30 jours *[columns=1]Soit le cookie suivant : [verbatim] $cookie_name = "user"; $cookie_value = "Alphonse Karr"; setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); [/verbatim] Comment peut on détruire le cookie précédent ? - unset($cookie_name); - unset($_COOKIE["user"]); - $cookie_name = FALSE; + setcookie($cookie_name, $cookie_value, time(), "/"); *[columns=1]Soit le code suivant : [verbatim] $filters = array ( "name" => array ("filter"=>FILTER_CALLBACK, "flags"=>FILTER_FORCE_ARRAY, "options"=>"ucwords"), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array("min_range"=>18,"max_range"=>120)), "email" => FILTER_VALIDATE_EMAIL ); print_r(filter_input_array(INPUT_POST, $filters)); [/verbatim] Sur quoi est appliqué ce filtre ? - Les variables $name, $age, $email + Les champs input d’un formulaire - Les propriétés « name », « age » et « email » d’un objet - Les champs « name », « age » et « email » d’une table associative *[columns=1]Soit le code suivant : [verbatim] $filters = array ( "name" => array ("filter"=>FILTER_CALLBACK, "flags"=>FILTER_FORCE_ARRAY, "options"=>"ucwords"), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array("min_range"=>18,"max_range"=>120)), "email" => FILTER_VALIDATE_EMAIL ); print_r(filter_input_array(INPUT_POST, $filters)); [/verbatim] Sachant que la constante « FILTER_FORCE_ARRAY » force à retourner une table et « ucwords » exige une majuscule sur le premier mot d’une chaine sélectionnez les cas où la réponse sera vraie : + array("name" => "Peter", "age" => 41, "mail" => peter@exemple.com) - array("name" => "John", "age" => 15, "mail" => john@exemple.com) - array("name" => "sabine", "age" => 30, "mail" => sabine@exemple.com) - array("name" => "Daniel", "age" => 66, "mail" => daniel@xz*y.com) **[columns=1]On veut déclarer une session dans le fichier ses1.php, on écrit le code : [verbatim] [/verbatim] Sélectionnez les réponses exactes : - L’instruction echo affiche : Variables session green cat + La session ne démarre pas - Les variables $_SESSION["favcolor"] et $_SESSION["favanimal"] sont vides + La session doit être lancée avant les balises *[columns=1]On suppose qu’une session a été lancée et que les variables session « favcolor » et « favanimal » sont affectées respectivement à « black » et « cat »; Soit le code suivant : [verbatim] [/verbatim] Que fait le code précédent ? - L’instruction echo affiche : Variables session green cat - Les variables $_SESSION["favcolor"] et $_SESSION["favanimal"] sont vides - La session session étant relancée les variables $_SESSION["favcolor"] et $_SESSION["favanimal"] n’existent plus. - La réutilisation de l’instruction session_start(); déclenche une erreur. **[columns=2]Soit $v = "1"; et $t = 1; Sélectionnez les cas où les opérateurs suivants renvoient TRUE : + ($v == $t) - ($t === $v) + ($v.$t === "11") + ($v !== $t) **[columns=1]Soit la variable globale « y » déclarée entre les balises dans index.php dont voici un extrait : [verbatim] ?php $GLOBALS["y"]=1; ?> .. [/verbatim] Sélectionnez les réponses exactes - La valeur de « y » dans le fichier est conservée dans une autre fichier que test.php + La valeur « y » utilisée dans la fonction xyz déclarée dans index.php (cf 1) est conservée + La valeur « y » utilisée dans entre les balises de index.php (ch 2) est conservée - La valeur de « y » a une durée de vie limitée **[columns=2]Soit la classe : [verbatim] class Fruit { // Properties public $name; public $color; private $region; // Methods function set_name($name) { $this->name = $name; } function set_region($name) { $this->region = $name; } function get_name() { return $this->name; } } $apple = new Fruit(); [/verbatim] Sélectionnez les réponses exactes + $apple->name = "Pomme"; - $apple->region = "Normandie"; + $apple->set_name("Normandie"); + $apple->set_name("Apple"); **[columns=2]Soit un objet défini à partir de la classe myobject : [verbatim] $a = new myobject(); $b = $a; $c = $b; $d = clone $a; La classe myobject contient un destructeur défini par : function __destruct() { echo "My Object is destroyred."; } [/verbatim] on effectue : unset($a); (1) unset($b); (2) unset($c); (3) unset($c); (4) Quand s'affiche la phrase "My Object is destroyred" ? - après (1) - après (2) + après (3) + après (4) **[columns=1]Soit un objet défini par : [verbatim] class Fruit { // Propriétés private $name; private $color; public function __construct($name, $color) { $this->name = $name; $this->color = $color; } protected function intro() { echo "Ce fruit est un(e) {$this->name} et sa couleur est {$this->color}."; } } class Pomme Extends Fruit { private $region; public function message() { echo "Je suis un fruit ou une pomme?"; } __construct($name, $color, $reg) { this->reg = $reg; parent::__construct($name, $color); } } [/verbatim] Indiquez l'instruction qui génère une erreur : - $F = new Fruit("pomme", "rouge"); - $P = new Pomme("pomme", "rouge", "var"); - $P->message(); + $P->intro(); *[columns=1]Que fait la constante __CLASS__ ? - Donne le chemin d'accès à la classe en cours - Donne le nom de l'objet utilisé + Donne le nom de la classe en cours - Donne le nom du fichier utilisé par la classe en cours *[columns=1]Soit la fonction add() déclarée dans les fichiers model.php, view.php et controller.php. comme suit : [verbatim] model.php : namespace MVC::Controllers; (1) function add(int a, int b) { .. } view.php : namespace MVC::Views; function add(int a, int b) { .. } (2) controller.php function add(int a, int b) { .. } (3) [/verbatim] On inclu les 3 fichiers par des "require" dans un fichier main.php. Que se passe-t-il? - on a une erreur en (1) : Erreur MVC est inconnu - on a une erreur en (2) : Redeclaration de la fonction add() + on a une erreur en (3) : Redeclaration de la fonction add() - il n'y a aucune erreur