\documentclass{article}
\usepackage{xltxtra}
\usepackage[bloc,lang=FR]{automultiplechoice}
\usepackage{multicol}
\usepackage{fancyvrb}
\setmainfont{Linux Libertine}
\geometry{paper=a4paper}
\geometry{hmargin=1.5cm}\begin{document}
\def\AMCmakeTitle#1{\par\noindent\hrule\vspace{1ex}{\hspace*{\fill}\Large\bf #1\hspace*{\fill}}\vspace{1ex}\par\noindent\hrule\par\vspace{1ex}}
\AMCrandomseed{1527384}
\AMCtext{none}{aucune des réponses ci-{}dessus n'est correcte.}
\begin{SaveVerbatim}{AMCverbC}
$ch1 = "ABC"; $ch2 = "123"; $ch3 = "DFE"; $ch4 = "456";
$txt1 = ""; $txt1 .= $ch1 . "-" . $ch4; $txt1 .= "#" . $ch2 . "-" . $ch3;
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbD}
$ch1 = "ABC"; $ch2 = "123"; $ch3 = "DFE"; $ch4 = "456";
$txt1 = ""; $txt1 .= $ch1 . "-" . $ch4; $txt1 .= "#" . $ch2 . "-" . $ch3;
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbE}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
	<body>
		Nous sommes le <?php echo Date("j/m/Y"); ?>
		<?php 
			echo "il est ". Date("H:i:s") . "<br/>";
			if ( Date("H") < 12 )
				echo "Bonjour…";
			else
				echo "Bonne après midi…";
		?>
	</body>
</html>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbF}
$k = 0; $email = "luc.skywalker@jedi.com"; $nom = "Skywalker"; $prenom = "Luc";
$membres[$k]["email"] = $email;
$membres[$k]["nom"] = $nom;
$membres[$k]["prenom"] = $prenom;
foreach( $membres as $i => $val) {
	$nom_prenom = ""; $email = "";
	foreach( $val as $titre => $valeur) {
		if ( strcmp( $titre, "email") == 0)
			print( $valeur . "<br/>");
		else 
			print( $valeur . " ");
	}
}
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbG}
$k = 1; $email = "han.solo@contrabandist.com"; $nom = "Solo"; $prenom = "Han";
$membres[$k]["email"] = $email;
$membres[$k]["nom"] = $nom;
$membres[$k]["prenom"] = $prenom;
$membres[$k]["email"] = $email;
$membres[$k]["nom"] = $nom;
$membres[$k]["prenom"] = $prenom;
foreach( $membres as $i => $val) {
	$nom_prenom = ""; $email = "";
	foreach( $val as $titre => $valeur) {
		if ( strcmp( $titre, "email") == 0)
			print( $valeur . "<br/>");
		else 
			print( $valeur . " ");
	}
}
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbH}
$k = 2; $email = "dark.vador@darkside-force.com"; $nom = "Dark"; $prenom = "Vador";
$membres[$k]["email"] = $email;
$membres[$k]["nom"] = $nom;
$membres[$k]["prenom"] = $prenom;
foreach( $membres as $m => $val) {
	$nom_prenom = ""; $email = "";
	foreach ($val as $name => $valeur) {
		if ( strcmp( $name, "email") != 0)
			print( $valeur . "<br/>");
		else 
			print( $valeur . " ");
	}
}
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbI}
$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 <br/>") ;		// premier print
	$z = $a + $b - $z;
	$v = 4 * $z;
	print("2) La valeur de v est $v <br/>") ;		// deuxième print
}
xyz( 1, 2, $v);
kwz( 2, $v, 5);
print("3) La valeur de v est $v <br/>") ;			// troisième print
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbJ}
$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 <br/>") ;		// premier print
	$z = $a + $b - $z;
	$v = 4 * $z;
	print("2) La valeur de v est $v <br/>") ;		// deuxième print
}
xyz( 1, 2, $v);
kwz( 2, $v, 5);
print("3) La valeur de v est $v <br/>") ;			// troisième print
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbK}
$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 <br/>") ;		// premier print
	$z = $a + $b - $z;
	$v = 4*$z ;
	print("2) La valeur de v est $v <br/>") ;		// deuxième print
}
xyz(1,2,&$v);
kwz(2,$v,5);
print("3) La valeur de v est $v <br/>") ;			// troisième print
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbL}
<form name= "f1" action="exemple.php?v1=10&v2=20" method="get">, 
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbM}
<form name= "f1" action="./file.php" method="post">
	<select name="f1[v][]"  multiple="multiple" size="4">
		<option value="a">A</option>				(1)
		<option value="b">B</option>				(2)
		<option value="c">C</option>				(3)
		<option value="d">D</option>			(4)
	</select>
	<!-- … -->
	<input type="submit" name="f1[submit]" value= "Submit1">
</form>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbN}
<form name= "f1" action="./file.php" method="post">
	<select name="f1[v][]"  multiple="multiple" size="4">
		<option value="a">A</option>				(1)
		<option value="b">B</option>				(2)
		<option value="c">C</option>				(3)
		<option value="d">D</option>				(4)
	</select>
	<!-- … -->
	<input type="submit" name="f1[submit]" value= "Submit1">
</form>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbO}
<form name= "f2" action="./file.php" method="post" enctype="multipart/form-data">
	<input type="file" name="f2[p][]">
	<!-- … -->
	<input type="submit" name="f2[submit]" value= "Submit2">
</form>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbP}
<form name= "f2" action="./file.php" method="post" enctype="multipart/form-data">
	<input type="file" name="f2[p][]">
	<!-- … -->
	<input type="submit" name="f2[submit]" value="Submit2">
</form>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbQ}
<form name= "f2" action="./file.php" method="post" enctype="multipart/form-data">
	<input type="file" name="f2[p][]">
	<!-- … -->
	<input type="submit" name="f2[submit]" value= "Submit2">
</form>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbR}
$fp = fopen("/…/exemple.txt", "w+");
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbS}
function xyz() {
	static $col;
	$c1 = "lightgray";
	$c2 = "white";

	if ($col == $c1) {
		$col = $c2;
	} else {
		$col = $c1;
	}
	return $col; 
}
echo "<table>";
while($row = $result->fetch_assoc()) {
	echo "<tr style=\"background-color: " . xyz() . "\">";
	foreach($row as $val) 
		echo "<td>$val</td>";
	echo "</tr>";
}
echo "</table>";
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbT}
$tableau = ["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;
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbU}
$user = "root"; $pass = "rt!123"; $host = "localhost";
$conn = new mysqli_connect( $host, $user, $pass, "staff");
$sql = 'SELECT * FROM employes;';
$result = $conn->query( $sql);
if ( $result->num_rows > 0) {
	while( $row = $result->fetch_assoc()) {
		foreach( $row as $val) {
			echo " $val <br />";
	}
}
$conn->close();
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbV}
function xxx( string $texte) : string {
	$String = explode( " ", $texte);
	$NewString = "";
	for( $i = 0; $i < count( $String); $i++) {
		$NewString .= $String[$i];
	}
	return $NewString;
}
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbW}
function xxx( string $texte) : string {
	$String = explode( " ", $texte); 
	$NewString="";
	for( $i = 0; $i < count( $String); $i++) {   
		$NewString .= $String[$i];   
	} 
	return $NewString;   
}
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbX}
$date = time();
function yyy( $date){
	// l’appel de la fonction date avec "z" calcule le nombre de jour depuis le début de l’année
	$jour = date( "z", $date);
	$num = ( $jour / 7) + 1;
	$num_res = intval( $num);
	return $num_res;
}
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbY}
<form>
	<select>
	<?php
	$sql = "SELECT * FROM mytable;";
	$result = $conn->query( $sql);
	if ( $result === TRUE) {
		if ($result->num_rows > 0) {
			// output data of each row
			while( $row = $result->fetch_assoc()) {
				echo "<option value=\"" . $row['myfield'] . "\">";
				echo $row['myfield'] . "</option>\n";
			}
		}
	}
	?>
	</select>
</form>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbZ}
// 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);
	}
}
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBA}
$cookie_name = "user";
$cookie_value = "Alphonse Karr";
setcookie( $cookie_name, $cookie_value, time() + (86400 * 30), "/");
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBB}
$cookie_name = "user";
$cookie_value = "Alphonse Karr";
setcookie( $cookie_name, $cookie_value, time() + (86400 * 30), "/");
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBC}
$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));
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBD}
$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));
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBE}
<!DOCTYPE html>
<html>
  <body>
	<?php
	// Start the session
	session_start();
	$_SESSION["favcolor"] = "green";
	$_SESSION["favanimal"] = "cat";
	echo "Variables session : " . $_SESSION["favcolor"] . " " . $_SESSION["favanimal"];
	?>
	<!-- … -->
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBF}
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
	<?php
		echo "Variables session : " . $_SESSION["favcolor"] . " " . $_SESSION["favanimal"];
	?>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBG}
<head>
	<?php
		$GLOBALS["y"] = 1;
	?>
</head>
<body>
	<?php 
		function xyz() {
			echo "y = " . $GLOBALS["y"]; // (1)
			// …
			return();
		}
		echo "y = " . $GLOBALS["y"];         // (2)
	?>
	<!-- … -->
</body>
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBH}
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();
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBI}
class myObject  {
	function __destruct() {
		echo "My Object is destroyed :(";
	}
}
$a = new myObject();
$b = $a;
$c = $b;
$d = clone $a;
unset($a);	// (1)
unset($b);	// (2)
unset($c);	// (3)
unset($d);	// (4)
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBJ}
class Fruit {
	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);
	}
}
$F = new Fruit( "pomme", "rouge");
$P = new Pomme( "pomme", "rouge", "var");
$P->message();
$P->intro();
\end{SaveVerbatim}
\begin{SaveVerbatim}{AMCverbBK}
=> model.php :
namespace MVC\Model;
function add(int $a, int $b) { // (1)
}

=> view.php : 
namespace MVC\View;
function add(int $a, int $b) { // (2)
}

=> controller.php :
function add(int $a, int $b) { // (3)
}

=> main.php :
require_once './model.php';
require_once './view.php';
require_once './controller.php';
function add(int $a, int $b) { // (4)
}
echo "Happy New Year !";
\end{SaveVerbatim}
\element{grB}{
\begin{question}{Q001}
Quelle est la valeur de la variable \textdollar{}txt1 correspondant au code PHP suivant :
\UseVerbatim{AMCverbC}
\begin{multicols}{2}
\begin{choices}
\wrongchoice{"123-{}DFE\#ABC-{}456"}
\wrongchoice{"456-{}ABC\#123-{}DFE"}
\correctchoice{"ABC-{}456\#123-{}DFE"}
\wrongchoice{“DFE-{}123\#456-{}ABC"}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q002}
Quelle est la valeur de \textdollar{}txt1[4] . \textdollar{}txt1[8] correspondant au code PHP suivant ?
\UseVerbatim{AMCverbD}
\begin{multicols}{2}
\begin{choices}
\wrongchoice{"\#6"}
\correctchoice{"41"}
\wrongchoice{"B3"}
\wrongchoice{"14"}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q003}
Soit le code PHP suivant :
\UseVerbatim{AMCverbE}

Nous supposons qu’il est 9h00 et que notre fichier PHP se trouve dans notre dossier /home/jb123456/bonjour.php.
Nous ouvrons ce fichier avec notre navigateur avec comme URL file:///home/jb123456/bonjour.php, qu'affichera-{}t-{}il ?
\begin{choices}
\wrongchoice{Nous sommes le 07/01/2020 Bonjour…}
\wrongchoice{Nous sommes le 07/01/2020 Bonne après midi…}
\wrongchoice{Nous sommes le}
\correctchoice{Le code PHP tel quel sans les balises du langage HTML}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q004}
Dans un fichier .html, peut-{}on manipuler une variable globale définie en langage PHP ?
\begin{choices}
\wrongchoice{Oui}
\correctchoice{Non}
\wrongchoice{Il suffit d’utiliser la variable \textdollar{}GLOBALS de PHP}
\wrongchoice{Il suffit de la manipuler entre deux balises <?php … ?>}
\end{choices}
\end{question}
}
\element{grB}{
\begin{questionmult}{Q005}\scoring{haut=2}
Peut-{}on intégrer du code HTML dans un fichier .php ?
\begin{choices}
\correctchoice{Oui}
\wrongchoice{Non}
\correctchoice{Il faut utiliser les balises <html> … <body> … </body></html>}
\wrongchoice{Il faut que le fichier ne contienne pas de balise < ?php … ?>}
\end{choices}
\end{questionmult}
}
\element{grB}{
\begin{question}{Q006}
En langage PHP, on considère l'extrait de code suivant :
\UseVerbatim{AMCverbF}

Que désigne la variable \textdollar{}titre dans la seconde boucle « foreach » ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{Le titre du tableau}
\wrongchoice{Les clés d'un tableau associatif}
\correctchoice{Les indices d'un tableau associatif}
\wrongchoice{Les valeurs des éléments d'un tableau}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q007}
En langage PHP, on considère l'extrait de code suivant :
\UseVerbatim{AMCverbG}
Que désigne la variable \textdollar{}val dans la première boucle « foreach » ?
\begin{multicols}{2}
\begin{choices}
\correctchoice{Un tableau associatif}
\wrongchoice{La clé "nom"}
\wrongchoice{Le clé "prenom"}
\wrongchoice{La variable \textdollar{}email}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q008}
On considère l'extrait de code PHP suivant :
\UseVerbatim{AMCverbH}

Que fait l'instruction if … else ?
\begin{choices}
\wrongchoice{Trie les éléments du tableau par email, par nom et par prenom.}
\correctchoice{Affiche les valeurs du tableau par email suivi par le nom et le prenom.}
\wrongchoice{Affiche les indices des valeurs du tableau}
\wrongchoice{Affiche les indices des clés du tableau}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q009}
Soit le code PHP suivant :
\UseVerbatim{AMCverbI}

Quelle est la valeur de la variable \textdollar{}v au premier print ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{3}
\wrongchoice{5}
\wrongchoice{2}
\correctchoice{Non définie}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q010}
Soit le code PHP suivant :
\UseVerbatim{AMCverbJ}

Quelle est la valeur de la variable \textdollar{}v au deuxième print ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{3}
\correctchoice{8}
\wrongchoice{2}
\wrongchoice{Non définie}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q011}
Soit le code PHP suivant :
\UseVerbatim{AMCverbK}

Quelle est la valeur de la variable \textdollar{}v au troisième print ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{3}
\wrongchoice{8}
\wrongchoice{2}
\correctchoice{5}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{questionmult}{Q012}\scoring{haut=2}
Dans le code HTML : 
\UseVerbatim{AMCverbL}

Comment récupère-{}t-{}on les variables v1 et v2 passées dans l'« action » du formulaire lors de sa soumission ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{\textdollar{}v1 et \textdollar{}v2}
\correctchoice{\textdollar{}\_REQUEST["v1"] et = \textdollar{}\_REQUEST["v2"]}
\correctchoice{\textdollar{}\_GET["v1"] et \textdollar{}\_GET["v2"]}
\wrongchoice{\textdollar{}\_POST["v1"] et \textdollar{}\_POST["v2"]}
\end{choices}
\end{multicols}
\end{questionmult}
}
\element{grB}{
\begin{question}{Q013}
Soit le code HTML suivant : 
\UseVerbatim{AMCverbM}

Quel est le nombre d’éléments maximal que l’on peut sélectionner simultanément dans le formulaire f1?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{1}
\wrongchoice{2}
\wrongchoice{3}
\correctchoice{4}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q014}
Soit le code HTML suivant : 
\UseVerbatim{AMCverbN}

En supposant que l’on a sélectionné 2 et 4 quel est la valeur de \textdollar{}\_REQUEST["f1[v]"] ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{"B"}
\correctchoice{array("b", "d")}
\wrongchoice{"AD"}
\wrongchoice{array("A", "D")}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q015}
Soit le code HTML suivant :
\UseVerbatim{AMCverbO}

Considérons les droits du répertoire tmp/ se trouvant dans la racine du site, quel doivent être ses droits pour qu’en clickant sur « Submit2 » le fichier puisse être téléchargé sur le serveur ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{« drwxr-{}xr-{}x »}
\wrongchoice{« drwxr—xr—-{} »}
\correctchoice{« trwxrwxrwx »}
\wrongchoice{« drwxrwxr-{}x »}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q016}
Soit le code HTML suivant :
\UseVerbatim{AMCverbP}

Quelle est la variable globale de PHP qui  permet de récupérer les fichiers téléchargés ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{\textdollar{}\_GET}
\wrongchoice{\textdollar{}\_POST}
\wrongchoice{\textdollar{}\_REQUEST}
\correctchoice{\textdollar{}\_FILES}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q017}
Soit le code HTML suivant :
\UseVerbatim{AMCverbQ}

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 ?
\begin{choices}
\wrongchoice{\textdollar{}\_FILES[["f2[p]"]["tmp\_name"][0] et \textdollar{}\_FILES[["f2[p]"]["tmp\_name"][1]}
\correctchoice{\textdollar{}\_FILES[["f2[p]"]["name"][0] et \textdollar{}\_FILES[["f2[p]"]["name"][1]}
\wrongchoice{\textdollar{}\_GET[["f2[p]"]["tmp\_name"][0] et \textdollar{}\_GET[["f2[p]"]["tmp\_name"][1]}
\wrongchoice{\textdollar{}\_REQUEST[["f2[p]"]["tmp\_name"][0] et \textdollar{}\_REQUEST[["f2[p]"]["tmp\_name"][1]}
\end{choices}
\end{question}
}
\element{grB}{
\begin{questionmult}{Q018}\scoring{haut=2}
Soit le fichier exemple.txt possédant les droits « -{}rwxr-{}x—-{}x » et se trouvant sous le répertoire /files/mytexts/.
Dans le fichier open.php se trouvant sous /work/read/ laquelle de ces instructions retourne « TRUE » ?
\begin{multicols}{2}
\begin{choices}
\correctchoice{is\_file( "../../files/mytexts/exemple.txt")}
\wrongchoice{is\_file( "exemple.txt")}
\correctchoice{is\_file( "/files/mytexts/exemple.txt")}
\wrongchoice{is\_file( "files/mytexts/exemple.txt")}
\end{choices}
\end{multicols}
\end{questionmult}
}
\element{grB}{
\begin{question}{Q019}
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 soitavec l'instruction suivante : 
\UseVerbatim{AMCverbR}

Quelle sera la valeur de la ressource \textdollar{}fp ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{TRUE}
\correctchoice{FALSE}
\wrongchoice{un pointeur sur la première ligne du fichier}
\wrongchoice{un pointeur sur la dernière ligne du fichier}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q020}
Soit le code PHP suivant :
\UseVerbatim{AMCverbS}

Comment le tableau est il affiché ?
\begin{choices}
\wrongchoice{Les cellules du tableau ont une couleur de fond en quinconce}
\wrongchoice{Les colonnes du tableau ont une couleur de fond en alternance}
\correctchoice{Les lignes du tableau ont une couleur de fond en alternance}
\wrongchoice{L’entête du tableau est d’une couleur différente de celle des lignes}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q021}
Soit le code PHP suivant :
\UseVerbatim{AMCverbT}

Que contient la chaine \textdollar{}new\_str ?
\begin{choices}
\wrongchoice{Une suite de 8 caractères du tableau (ex : "6","7","8","9", "a","b","c","d") prise au hasard}
\wrongchoice{8 lettres prises au hasard}
\wrongchoice{8  chiffres pris au hasard}
\correctchoice{8  caractères du tableau pris au hasard}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q022}
Soit le code PHP suivant :
\UseVerbatim{AMCverbU}

Que se passe t’il lors de l’exécution de ce code ?
\begin{choices}
\wrongchoice{On a une erreur de connexion au SGBD}
\wrongchoice{On a une erreur de connexion à la base de données « staff »}
\wrongchoice{On a une erreur de requête SQL}
\correctchoice{Tout se passe correctement}
\end{choices}
\end{question}
}
\element{grB}{
\begin{questionmult}{Q023}\scoring{haut=2}
On considère le code PHP suivant :
\UseVerbatim{AMCverbV}

Que fait l'instruction explode ?
\begin{choices}
\wrongchoice{Supprime les espaces dans \textdollar{}texte}
\correctchoice{Crée un tableau formée par les mots de \textdollar{}texte séparés par des espaces}
\wrongchoice{Crée une liste formée par les mots de \textdollar{}texte séparés par des espaces}
\correctchoice{Crée un tableau formée par les mots de \textdollar{}texte}
\end{choices}
\end{questionmult}
}
\element{grB}{
\begin{question}{Q024}
On considère le code PHP suivant :
\UseVerbatim{AMCverbW}

Que fait la fonction xxx() ?
\begin{choices}
\wrongchoice{Renvoie une chaine de caractère extraite du texte sans le modifier}
\correctchoice{Renvoie une chaîne de caractère constituée par les mots du texte sans les espaces}
\wrongchoice{Renvoie une chaîne de caractère constituée par les mots du texte rangés en sens inverse}
\wrongchoice{Renvoie une chaine vide}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q025}
Soit le code PHP suivant :
\UseVerbatim{AMCverbX}

Que fait la fonction yyy ?
\begin{choices}
\wrongchoice{Renvoie le nombre de mois depuis le début de l’année}
\wrongchoice{Renvoie le nombre de dimanche depuis le début de l’année}
\correctchoice{Renvoie le nombre de semaine depuis le début de l’année}
\wrongchoice{Renvoie le nombre de jours depuis le début de l’année}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q026}
Soit le code suivant :
\UseVerbatim{AMCverbY}
Que fait le code précédent si on suppose que la connection \textdollar{}conn à la base de donnée est établie
et que la table « mytable » contient plusieurs colonnes dont « myfield » ?
\begin{choices}
\wrongchoice{Affiche le contenu de la table "mytable"}
\wrongchoice{Affiche un sélecteur constituée par les valeurs du champ "myfield"}
\wrongchoice{Affiche un sélecteur constituée par les champs de "mytable"}
\correctchoice{Génère une erreur d’exécution}
\end{choices}
\end{question}
}
\element{grB}{
\begin{questionmult}{Q027}\scoring{haut=2}
Soit le code PHP suivant :
\UseVerbatim{AMCverbZ}

Que fait le code précédent ?
\begin{choices}
\correctchoice{Compte le nombre de visite à une page et l’enregistre dans le fichier "xyz.txt" pour le cookie "xyz"}
\wrongchoice{Affiche le contenu du fichier xyz.txt}
\correctchoice{Génère un cookie "xyz" et lui affecte "ok"}
\wrongchoice{Enregistre le cookie "xyz" dans le fichier "xyz.txt"}
\end{choices}
\end{questionmult}
}
\element{grB}{
\begin{question}{Q028}
Soit le cookie suivant : 
\UseVerbatim{AMCverbBA}

Quelle est la durée de ce cookie ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{Un jou}
\correctchoice{Un mois}
\wrongchoice{30 heures}
\wrongchoice{30 jours}
\end{choices}
\end{multicols}
\end{question}
}
\element{grB}{
\begin{question}{Q029}
Soit le cookie suivant : 
\UseVerbatim{AMCverbBB}

Comment peut on détruire le cookie précédent ?
\begin{choices}
\wrongchoice{unset( \textdollar{}cookie\_name);}
\wrongchoice{unset( \textdollar{}\_COOKIE["user"]);}
\wrongchoice{\textdollar{}cookie\_name = FALSE;}
\correctchoice{setcookie( \textdollar{}cookie\_name, \textdollar{}cookie\_value, time(), "/");}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q030}
Soit le code suivant : 
\UseVerbatim{AMCverbBC}

Sur quoi s'applique ce filtre ?
\begin{choices}
\wrongchoice{Les variables \textdollar{}name, \textdollar{}age, \textdollar{}email}
\correctchoice{Les champs d’un formulaire soumis avec la méthode « post »}
\wrongchoice{Les propriétés « name », « age » et « email » d’un objet}
\wrongchoice{Les champs « name », « age » et « email » d’une table associative}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q031}
Soit le code suivant :
\UseVerbatim{AMCverbBD}

Sachant que la constante « FILTER\_FORCE\_ARRAY » force à retourner un tableau et « ucwords »  exige une majuscule sur le premier mot d’une chaine.
Sélectionnez les cas où la réponse sera vraie :
\begin{choices}
\correctchoice{array( "name" => "Peter", "age" => 41, "email" => 'peter@exemple.com')}
\wrongchoice{array( "name" => "John", "age" => 15, "email" => 'john@exemple.com')}
\wrongchoice{array( "name" => "sabine", "age" => 30, "email" => 'sabine@exemple.com')}
\wrongchoice{array( "name" => "Daniel", "age" => 66, "email" => 'daniel@xz\(\ast\)y.com')}
\end{choices}
\end{question}
}
\element{grB}{
\begin{questionmult}{Q032}\scoring{haut=2}
Pour déclarer une session dans le fichier session.php, on écrit le code : 
\UseVerbatim{AMCverbBE}

Sélectionnez les réponses exactes :
\begin{choices}
\wrongchoice{L’instruction echo affiche : « Variables session green cat »}
\correctchoice{La session ne démarre pas}
\wrongchoice{Les variables  \textdollar{}\_SESSION["favcolor"] et \textdollar{}\_SESSION["favanimal"] sont vides}
\correctchoice{La session doit être lancée avant les balises  <!DOCTYPE html><html>}
\end{choices}
\end{questionmult}
}
\element{grB}{
\begin{question}{Q033}
On suppose qu’une session a été lancée et que les variables de session « favcolor »  et « favanimal » sontont été affectées respectivement à « black » et « cat ».
Soit le code suivant :
\UseVerbatim{AMCverbBF}
Que fait le code ci-{}dessus ?
\begin{choices}
\correctchoice{L’instruction echo affiche : « Variables session green cat »}
\wrongchoice{Les variables \textdollar{}\_SESSION["favcolor"] et \textdollar{}\_SESSION["favanimal"] sont vides}
\wrongchoice{La session session étant relancée les variables \textdollar{}\_SESSION["favcolor"] et \textdollar{}\_SESSION["favanimal"] n’existent plus}
\wrongchoice{La réutilisation de l’instruction « session\_start(); » déclenche une erreur}
\end{choices}
\end{question}
}
\element{grB}{
\begin{questionmult}{Q034}\scoring{haut=2}
Soit \textdollar{}v = "1"; \textdollar{}t = 1. Sélectionnez les cas où les opérateurs logiques suivants renvoient TRUE :
\begin{multicols}{2}
\begin{choices}
\correctchoice{(\textdollar{}v == \textdollar{}t)}
\wrongchoice{(\textdollar{}t === \textdollar{}v)}
\correctchoice{(\textdollar{}v.\textdollar{}t === "11")}
\correctchoice{(\textdollar{}v !== \textdollar{}t)}
\end{choices}
\end{multicols}
\end{questionmult}
}
\element{grB}{
\begin{questionmult}{Q035}\scoring{haut=2}
Soit la variable globale « y » déclarée entre les balises <head> dans index.php dont un extrait est :
\UseVerbatim{AMCverbBG}
Sélectionnez la/les réponse(s) exacte(s) ?
\begin{choices}
\wrongchoice{La valeur de « y » dans le fichier est conservée dans une autre fichier que test.php}
\correctchoice{La valeur « y » utilisée dans la fonction xyz déclarée dans index.php (cf 1) est conservée}
\correctchoice{La valeur « y » utilisée dans entre les balises <body> de index.php (cf 2) est conservée}
\wrongchoice{La valeur de « y » a une durée de vie limitée}
\end{choices}
\end{questionmult}
}
\element{grB}{
\begin{questionmult}{Q036}\scoring{haut=2}
Soit la définition de classe :
\UseVerbatim{AMCverbBH}

Sélectionnez la/les syntaxe(s) exacte(s) ?
\begin{multicols}{2}
\begin{choices}
\correctchoice{\textdollar{}apple-{}>name = "Pomme";}
\wrongchoice{\textdollar{}apple-{}>region = "Normandie";}
\correctchoice{\textdollar{}apple-{}>set\_name("Normandie");}
\wrongchoice{\textdollar{}apple-{}>get\_name("Apple");}
\end{choices}
\end{multicols}
\end{questionmult}
}
\element{grB}{
\begin{questionmult}{Q037}\scoring{haut=2}
Soit un objet défini à partir de la classe myObject : 
\UseVerbatim{AMCverbBI}

Quand s'affiche la phrase "My Object is destroyed :(" ?
\begin{multicols}{2}
\begin{choices}
\wrongchoice{après (1)}
\wrongchoice{après (2)}
\correctchoice{après (3)}
\correctchoice{après (4)}
\end{choices}
\end{multicols}
\end{questionmult}
}
\element{grB}{
\begin{questionmult}{Q038}\scoring{haut=2}
Soit un objet défini par : 
\UseVerbatim{AMCverbBJ}

Indiquez l'instruction qui génère une erreur :
\begin{choices}
\wrongchoice{\textdollar{}F = new Fruit( "pomme", "rouge");}
\wrongchoice{\textdollar{}P = new Pomme( "pomme", "rouge", "var");}
\wrongchoice{\textdollar{}P-{}>message();}
\correctchoice{\textdollar{}P-{}>intro();}
\end{choices}
\end{questionmult}
}
\element{grB}{
\begin{question}{Q039}
Que fait la constante \_\_CLASS\_\_ ?
\begin{choices}
\wrongchoice{Donne le chemin d'accès à la classe en cours}
\wrongchoice{Donne le nom de l'objet utilisé}
\correctchoice{Donne le nom de la classe en cours}
\wrongchoice{Donne le nom du fichier utilisé par la classe en cours}
\end{choices}
\end{question}
}
\element{grB}{
\begin{question}{Q040}
Soit la fonction add() déclarée dans les fichiers model.php, view.php et controller.php.
On inclut les 3 fichiers par des "require\_once" dans un fichier main.php.
\UseVerbatim{AMCverbBK}

Que se passe-{}t-{}il lors de l'exécution de main.php ?
\begin{choices}
\wrongchoice{on a une erreur en (1) : Erreur MVC est inconnu}
\wrongchoice{on a une erreur en (2) : Redeclaration de la fonction add()}
\wrongchoice{on a une erreur en (3) : Redeclaration de la fonction add()}
\correctchoice{on a une erreur en (4) : Redeclaration de la fonction add()}
\wrongchoice{on affiche : Happy New year !}
\end{choices}
\end{question}
}
\def\insertPlainGroupgrB{\insertgroup{grB}}
\onecopy{5}{
\begin{center}\bf\large Université Côte d’Azur -{} Institut Universitaire de Technologie

Département Informatique

M314 -{} Programmation Côté Serveur -{} PHP

Mardi 07 janvier 2020\end{center}

{\setlength{\parindent}{0pt}\hspace*{\fill}\hbox{\vtop{\AMCcodeH{student.number}{8}}}\hspace*{\fill}\begin{minipage}[t]{5.8cm}$\longleftarrow{}$\hspace{0pt plus 1cm}Veuillez coder votre numéro d'étudiant ci-contre et écrire votre nom dans la case ci-dessous.\vspace{3ex}

\hfill\namefield{\fbox{\begin{minipage}{.9\linewidth}\AMClocalized{namesurname}

\vspace*{.5em}\dotfill

\vspace*{.5em}\dotfill
\vspace*{1mm}
\end{minipage}
}}\hfill\vspace{5ex}\end{minipage}\hspace*{\fill}

}\vspace{4mm}
Questionnaire à Choix Unique ou Multiple (♣) -{} Durée \(\sim\) 1h00

Document autorisé : une feuille A4 recto-{}verso.

Calculatrice, Téléphone Portable et Ordinateur non-{}autorisés.

\vspace{4mm}\noindent\hrule


\vspace{2ex}

\insertPlainGroupgrB


\AMCaddpagesto{2}
\AMCcleardoublepage
}
\end{document}
