Vous êtes sur la page 1sur 2

Décembre 2016 Décembre 2016

RÉPUBLIQUE TUNISIENNE Devoir de Synthèse N°1 RÉPUBLIQUE TUNISIENNE Devoir de Synthèse N°1
Classes : 4SI Classes : 4SI
Ministère de l’Éducation Ministère de l’Éducation
Durée : 1h Durée : 1h
Lycée Attarine Ariana TIC Lycée Attarine Ariana TIC

Important : Important :
• Dans le dossier d’hébergement du serveur Apache (www), créer le dossier « DS1 » qui • Dans le dossier d’hébergement du serveur Apache (www), créer le dossier « DS1 » qui
servira à y enregistrer tous les documents demandés dans cette épreuve. servira à y enregistrer tous les documents demandés dans cette épreuve.
• Toutes les fonctions JavaScript demandées doivent être dans un fichier externe nommé • Toutes les fonctions JavaScript demandées doivent être dans un fichier externe nommé
« fonctions.js » « fonctions.js »
• Il est conseillé de s’assurer de l’emplacement de tous vos fichiers et de faire des • Il est conseillé de s’assurer de l’emplacement de tous vos fichiers et de faire des
enregistrements périodiques pour éviter une éventuelle perte de données. enregistrements périodiques pour éviter une éventuelle perte de données.

Dans le projet de création du nouveau réseau éducatif tunisien EduAttarine, vous êtes chargés Dans le projet de création du nouveau réseau éducatif tunisien EduAttarine, vous êtes chargés
de créer les deux pages abonnement et remerciement. La maquette ci-dessous présente l'interface de créer les deux pages abonnement et remerciement. La maquette ci-dessous présente l'interface
basique de la page inscription que vous pourriez l’améliorer : basique de la page inscription que vous pourriez l’améliorer :

Description : Description :
• Le champ Pseudonyme est obligatoire, de • Le champ Pseudonyme est obligatoire, de
longueur minimale 5 caractères, il commence longueur minimale 5 caractères, il commence
obligatoirement par une lettre latine, et il n’est obligatoirement par une lettre latine, et il n’est
composé que par des lettres, chiffres et tirets composé que par des lettres, chiffres et tirets
bas. bas.
• Le champ Mot de passe est obligatoire et de taille • Le champ Mot de passe est obligatoire et de taille
minimale 8 caractères. minimale 8 caractères.
• L’utilisateur doit obligatoirement sélectionner • L’utilisateur doit obligatoirement sélectionner
au moins un module de formation. au moins un module de formation.
• La liste déroulante, indiquant la durée de • La liste déroulante, indiquant la durée de
l’abonnement, est remplie automatiquement en l’abonnement, est remplie automatiquement en
utilisant un code PHP par les durées allant de utilisant un code PHP par les durées allant de
1 Mois au 24 Mois. 1 Mois au 24 Mois.
• Le bouton Vider les champs permet de réinitialiser le formulaire. • Le bouton Vider les champs permet de réinitialiser le formulaire.
• Le bouton S’inscrire permet de valider les données de l’utilisateur (selon les indications • Le bouton S’inscrire permet de valider les données de l’utilisateur (selon les indications
mentionnées ci-dessus) puis d’appeler la page remerciement qui affiche le tableau suivant : mentionnées ci-dessus) puis d’appeler la page remerciement qui affiche le tableau suivant :

Pseudonyme : « Pseudonyme» Pseudonyme : « Pseudonyme»


Modules choisis : « Les modules choisis séparés par des espaces » Modules choisis : « Les modules choisis séparés par des espaces »
Date de fin de l’abonnement : « Date de fin de l’abonnement (Format : JJ/MM/AAAA) » Date de fin de l’abonnement : « Date de fin de l’abonnement (Format : JJ/MM/AAAA) »
Montant à payer : « Montant à payer en Dinar » Montant à payer : « Montant à payer en Dinar »

NB : NB :
A. La date de fin de l’abonnement est générée automatiquement à l’aide d’un script PHP. A. La date de fin de l’abonnement est générée automatiquement à l’aide d’un script PHP.
B. Le montant à payer est calculé selon le barème suivant : B. Le montant à payer est calculé selon le barème suivant :
a. Module PHP : 50d par mois. a. Module PHP : 50d par mois.
b. Module JavaScript : 40d par mois. b. Module JavaScript : 40d par mois.
c. Module Pascal : 60d par mois. c. Module Pascal : 60d par mois.
Lycée Attarine Ariana 2016-2017 Lycee.Attarine@gmail.com Lycée Attarine Ariana 2016-2017 Lycee.Attarine@gmail.com
TIC-Corrigé du Devoir de Synthèse N°1-4SI // Fn qui Vérifie si une chaîne passée en Paramètre est composée
// uniquement par des lettres latines, chiffres et tirets-bas
function AlphaNumerique(Ch){
var D="ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789"; var Ok=true;
for(i=0; i<Ch.length; i++){
if ( D.indexOf( Ch.charAt(i).toUpperCase() )==-1 ) {Ok = false}
}
Ps
return Ok;
Mp
}
Abonnement.php
Remerciement.php
Php <?php
Js $Pseudo=$_POST["Ps"]; $DureeAb=$_POST["Duree"];
Pas $ModulesChoisis=""; $MontantParMois=0;
// Déterminer les modules sélectionnés par l'utilisateur
Duree
if(isset($_POST["Php"])){
$ModulesChoisis=$ModulesChoisis . "PHP ";
$MontantParMois += 50;
}
<select name="Duree"> if(isset($_POST["Js"])){
<?php $ModulesChoisis=$ModulesChoisis . "JavaScript ";
for($i=1; $i<=24; $i++){ $MontantParMois += 40;
echo "<option value='", $i,"'>",$i," Mois</option>"; }
} if(isset($_POST["Pas"])){
?> $ModulesChoisis=$ModulesChoisis . "Pascal ";
</select> $MontantParMois += 60;
}
$MontantTotal=$MontantParMois*$DureeAb;
Fonctions.js
?>
function Verif(){ <table border="1">
var Ps=F.Ps.value; //Pseudonyme <!------- 1ère Ligne ------------->
var Mp=F.Mp.value; //Mot de Passe <tr>
// Vérif du Pseudonyme <td>Pseudonyme:</td> <td><?php echo $Pseudo;?></td>
if(Ps.length<5 || Ps.charAt(0).toUpperCase()<'A' </tr>
|| Ps.charAt(0).toUpperCase()>'Z' || !AlphaNumerique(Ps)){ <!------- 2ème Ligne ------------->
alert("Veuillez Vérifier Votre Pseudo!!"); <tr>
return false; <td>Module Choisis: </td> <td><?php echo $ModulesChoisis;?></td>
} </tr>
// Vérif du Mot de Passe <!------- 3ème Ligne ------------->
if(Mp.length<8){ <tr>
alert("Veuillez Vérifier Votre Mot de Passe!!"); <td>Date de Fin de Formation: </td>
return false; <td><?php echo date("d/m/Y", strtotime("+ $DureeAb Months")) ;?></td>
} </tr>
// Vérif de la Sélection d'au moins un module <!------- 4ème Ligne ------------->
if(!F.Php.checked && !F.Js.checked && !F.Pas.checked){ <tr>
alert("Veuillez Sélectionner au moins un module de formation!!"); <td>Montant à Payer: </td>
return false; <td><?php echo $MontantTotal . " Dinars";?></td>
} </tr>
} </table>
Lycée Attarine Ariana 2016-2017 Lycee.Attarine@gmail.com Lycée Attarine Ariana 2016-2017 Lycee.Attarine@gmail.com

Vous aimerez peut-être aussi