summaryrefslogtreecommitdiff
path: root/sem_5/HLIN510_Web
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
commit9fe033ea88c2f705ec18c232873d056e0c229d72 (patch)
tree0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_5/HLIN510_Web
Initial commit
Diffstat (limited to 'sem_5/HLIN510_Web')
-rw-r--r--sem_5/HLIN510_Web/index.html30
-rw-r--r--sem_5/HLIN510_Web/naval.html42
-rw-r--r--sem_5/HLIN510_Web/panier.html20
-rw-r--r--sem_5/HLIN510_Web/php.php15
-rw-r--r--sem_5/HLIN510_Web/styles.css63
-rw-r--r--sem_5/HLIN510_Web/tp2/Mastermind.php74
-rw-r--r--sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdfbin0 -> 193816 bytes
-rw-r--r--sem_5/HLIN510_Web/tp2/master.php93
8 files changed, 337 insertions, 0 deletions
diff --git a/sem_5/HLIN510_Web/index.html b/sem_5/HLIN510_Web/index.html
new file mode 100644
index 0000000..348b1de
--- /dev/null
+++ b/sem_5/HLIN510_Web/index.html
@@ -0,0 +1,30 @@
+
+<!DOCTYPE html>
+<html lang="fr">
+ <head>
+ <meta charset="utf-8">
+ <title>INFOCOM : vente de materiel informatique</title>
+ <link rel="stylesheet" href="./styles.css">
+ </head>
+ <body>
+ <h1 id="titre"> INFOCOM</h1> <h2> Vente de materiel informatique</h2>
+ <div class="barre"><a href=#HDD><div class="onglet">Disques durs</div></a><a href=#periphs><div class= "onglet">Claviers et souris</div></a><a href=#Divers><div class ="onglet">Divers</div></a><a href="./panier.html">
+<div class="onglet"> Commander</div></a><a href="./naval.html"><div class="onglet">Bonus</div></a></div>
+ <div id="HDD"><h2 class="categorie"> Disques Durs</h2><table><tr class="entete"><td>Produit</td><td> Prix </td> <td>Description</td> </tr>
+ <tr><td>Disque dur Seagate 500go</td><td>100 euros</td><td>Dim : 135x87x30, temps d'accés moyen 12ms</td></tr>
+ <tr><td>Disque dur Western 750go</td><td>120 euros</td><td>Dim : 155x88x32, temps d'accés moyen 15ms</td></tr>
+ <tr><td>Disque dur Externe 500go</td><td>115 euros</td><td>Dim : 120x78x32, temps d'accés moyen 20ms, USB2, 2,5 pouces</td></tr>
+ </table></div>
+ <div id="periphs"><h2 class="categorie"> Les claviers et souris</h2><table><tr class="entete"><td>Produit</td><td> Prix </td> <td>Description</td> </tr>
+ <tr><td>clavier Logitech</td><td>10 euros</td><td>filaire USB2, controles multimedia</td></tr>
+ <tr><td>souris Logitech</td><td>12 euros</td><td>optique; filaire USB2</td></tr>
+ <tr><td>clavier souris sans-fil</td><td>35 euros</td><td>recepteur USB2</td></tr>
+ </table></div>
+ <div id="Divers"><h2 class="categorie"> Divers</h2><table><tr class="entete"><td>Produit</td><td> Prix </td> <td>Description</td> </tr>
+ <tr><td>Enceintes 5W</td><td>30 euros</td><td>filaire USB2</td></tr>
+ <tr><td>Tapis de Souris</td><td>5 euros</td><td></td></tr>
+ </table></div>
+
+ <footer> <p>INFOCOM : le leader de la vente de materiel informatique</p><p> <a href="urldesconditions"> Condition generales de ventes </p></footer>
+ </body>
+</html>
diff --git a/sem_5/HLIN510_Web/naval.html b/sem_5/HLIN510_Web/naval.html
new file mode 100644
index 0000000..da9cbfd
--- /dev/null
+++ b/sem_5/HLIN510_Web/naval.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html lang="fr">
+ <head>
+ <meta charset="utf-8">
+ <title>Panier INFOCOM : vente de materiel informatique</title>
+ </head>
+ <body>
+ <form>
+ <table>
+ <tr><td></td><td>A</td><td>B</td><td>C</td><td>D</td><td>E</td></tr>
+ <tr><td>1</td>
+ <td><input type="submit" name="A1" value="?"></td>
+ <td><input type="submit" name="B1" value="?"></td>
+ <td><input type="submit" name="C1" value="?"></td>
+ <td><input type="submit" name="D1" value="?"></td>
+ <td><input type="submit" name="E1" value="?"></td></tr>
+ <tr><td>2</td>
+ <td><input type="submit" name="A2" value="?"></td>
+ <td><input type="submit" name="B2" value="?"></td>
+ <td><input type="submit" name="C2" value="?"></td>
+ <td><input type="submit" name="D2" value="?"></td>
+ <td><input type="submit" name="E2" value="?"></td></tr>
+ <tr><td>3</td>
+ <td><input type="submit" name="A3" value="?"></td>
+ <td><input type="submit" name="B3" value="?"></td>
+ <td><input type="submit" name="C3" value="?"></td>
+ <td><input type="submit" name="D3" value="?"></td>
+ <td><input type="submit" name="E3" value="?"></td></tr>
+ <tr><td>4</td>
+ <td><input type="submit" name="A4" value="?"></td>
+ <td><input type="submit" name="B4" value="?"></td>
+ <td><input type="submit" name="C4" value="?"></td>
+ <td><input type="submit" name="D4" value="?"></td>
+ <td><input type="submit" name="E4" value="?"></td></tr>
+ <tr><td>5</td>
+ <td><input type="submit" name="A5" value="?"></td>
+ <td><input type="submit" name="B5" value="?"></td>
+ <td><input type="submit" name="C5" value="?"></td>
+ <td><input type="submit" name="D5" value="?"></td>
+ <td><input type="submit" name="E5" value="?"></td></tr>
+</table>
+</form>
diff --git a/sem_5/HLIN510_Web/panier.html b/sem_5/HLIN510_Web/panier.html
new file mode 100644
index 0000000..afe9a3b
--- /dev/null
+++ b/sem_5/HLIN510_Web/panier.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="fr">
+ <head>
+ <meta charset="utf-8">
+ <title>Panier INFOCOM : vente de materiel informatique</title>
+ <link rel="stylesheet" href="./styles.css">
+ </head>
+<body id="commande">
+ <h1> Formulaire de commande</h1>
+ <form id="panierform">
+ Quantité de disques durs <input type="text" name="qdd" placeholder="Nb de disques"></br>
+ <select name="modele" size="1"><option selected> HDD Seagate 500GO (100e)<option> HDD Western 750GO (120e)<option>HDD externe 500Go (115e)</select></br>
+ clavier logitech (10e) <input name="souris"type="checkbox"> souris logitech (12e) <input name="souris"type="checkbox"> clavier souris sans fils (35e) <input name="souris" type="checkbox"> </br>
+ enceintes 5W (30 e) <input name="enceintes" type="radio"> tapis de souris (5e) <input name="tapis" type="radio"> </br>
+ Adresse email <input type="text" name="mail" placeholder="Saissisez email"></br>
+ Nom <input type="text" name="nom"></br>
+ <input type="submit" value="Commander">
+
+
+</body>
diff --git a/sem_5/HLIN510_Web/php.php b/sem_5/HLIN510_Web/php.php
new file mode 100644
index 0000000..fe8175f
--- /dev/null
+++ b/sem_5/HLIN510_Web/php.php
@@ -0,0 +1,15 @@
+<?php
+ echo 'allo ';
+
+function factorielle ($n){
+ if ($n == 0){
+ return 1;
+ }
+ else {
+ return $n*factorielle($n-1);
+ }
+}
+
+ $tmp = factorielle(10);
+ echo $tmp;
+?>
diff --git a/sem_5/HLIN510_Web/styles.css b/sem_5/HLIN510_Web/styles.css
new file mode 100644
index 0000000..9d55372
--- /dev/null
+++ b/sem_5/HLIN510_Web/styles.css
@@ -0,0 +1,63 @@
+.barre {
+ width: 100%;
+ height: 2%;
+ background: #F00000;
+ text-align: center;
+}
+.onglet{
+ display: inline-block;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ margin-left: 1px;
+ margin-right: 1px;
+ background: #900000;
+ padding : 5px 5px 5px 5px;
+}
+head{
+ text-align: center;
+}
+body {
+ background-color: #636972;
+ color:white;
+ text-align:center;
+}
+footer {
+ border-top: 2px solid;
+ border-color: #900000;
+ position: fixed;
+ width:100%;
+ background-color: grey;
+ bottom: 0%;
+ text-align : center;
+ margin-left: auto;
+}
+#HDD{
+ margin-left: auto;
+ text-align:left;
+ margin-left: 4%;
+}
+#periphs{
+ margin-left: auto;
+ text-align:left;
+ margin-left: 4%;
+}
+#Divers{
+ margin-left: auto;
+ text-align:left;
+ margin-left: 4%;
+}
+
+a {
+ color: white;
+}
+.entete {
+ font-weight: bold;
+ text-align:center;
+}
+
+#commande{
+ text-align: left;
+}
+#panierform{
+ margin: auto;
+}
diff --git a/sem_5/HLIN510_Web/tp2/Mastermind.php b/sem_5/HLIN510_Web/tp2/Mastermind.php
new file mode 100644
index 0000000..548af3a
--- /dev/null
+++ b/sem_5/HLIN510_Web/tp2/Mastermind.php
@@ -0,0 +1,74 @@
+<?php
+interface iMastermind {
+ public function __construct($taille=4);
+ public function test($code);
+ public function getEssais();
+ public function getTaille();
+}
+
+/** classe dont une instance est un jeu de mastermind */
+class Mastermind implements iMastermind {
+ /** code à découvrir chaine de car compris entre 0 et 9 */
+ protected $code="";
+
+ /** liste des essais */
+ protected $lessai=array();
+
+ /** constructeur par défaut : génération d'un code aléatoire de taille
+ * chiffres différents
+ */
+ public function __construct($taille=4){
+ for($i=0;$i<$taille;$i++){
+ $c=rand(0,9); // nouveau chiffre
+ $this->code.="$c";
+ }
+ }
+ /** teste la validité d'une chaîne code et retourne un booléen :
+ * - que des chiffres ;
+ * - de même taille que $this->code
+ */
+ public function valide($code){
+ if(!is_string($code) || strlen($code)!=strlen($this->code)
+ || !ctype_digit($code)){
+ return false;
+ }
+ return true;
+ }
+ /** teste une chaîne de caractères par rapport au code et retourne un
+ * tableau de 2 entiers : ( nb de chiffres bien placés, nb de chiffres mal
+ * placés ou false si invalide
+ */
+ public function test($code){
+ if(!$this->valide($code))
+ return false;
+ $res=array("bon"=>0, "mal"=>0);
+ $tampon=$this->code;
+ for($i=0;$i<strlen($code);$i++){ // boucle des biens placés
+ if($tampon[$i]==$code[$i]){
+ $tampon[$i]='Y'; // afin de ne plus le prendre en compte
+ $res["bon"]++;
+ }
+ } // fin de la boucle des biens placés
+ for($i=0;$i<strlen($code);$i++){ // boucle des mals placés
+ $pos = strpos($tampon,$code[$i]);
+ if (!($pos === false)) {
+ $res["mal"]++;
+ $tampon[$pos]='Y';
+ }
+ } // fin de boucle des mals placés
+ $this->lessai[$code]=$res;
+ return $res;
+ }
+
+ /** retourne la taille du code */
+ public function getTaille () {
+ return strlen($this->code);
+ }
+ public function getEssais () {
+ return $this->lessai;
+ }
+}
+// $m=new Mastermind(); //pour tester
+// print_r($m);
+// print_r($m->test("1234"));
+?>
diff --git a/sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf b/sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf
new file mode 100644
index 0000000..c20b4ca
--- /dev/null
+++ b/sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf
Binary files differ
diff --git a/sem_5/HLIN510_Web/tp2/master.php b/sem_5/HLIN510_Web/tp2/master.php
new file mode 100644
index 0000000..58f8e26
--- /dev/null
+++ b/sem_5/HLIN510_Web/tp2/master.php
@@ -0,0 +1,93 @@
+<?php
+//include "Mastermind.php"; // PLUS NÉCESSAIRE AVEC AUTOLOAD !
+function __autoload($classname){ // avant le session_start !
+ include './' . $classname . '.php';
+}
+session_start();
+if (isset($_POST['nouveau'])){ // SI nouvelle partie
+ $_SESSION=array();
+}
+ini_set('display_errors', 1); error_reporting(E_ALL);
+?>
+<!doctype html>
+<html lang="fr">
+<head>
+<meta charset="utf-8" />
+<title>Site de jeu : Mastermind</title>
+</head>
+<body>
+<h1 align="center">Mastermind</h1>
+<form method="post">
+<p>Veuillez saisir successivement des combinaisons de
+
+<?php
+$i=1;
+if(isset($_SESSION['jeu'])){ // restauration objet Mastermind
+ $jeu=$_SESSION['jeu'];
+ // print_r($jeu); // DEBUG
+ $taille=$jeu->getTaille();
+}else { // début de partie
+ if(!empty($_GET['taille'])){
+ $taille=(int)$_GET['taille'];
+ }else{
+ $taille=4;
+ }
+ $jeu=new Mastermind($taille);
+ $_SESSION['jeu']=$jeu;
+}
+echo $taille;
+?> chiffres jusqu'à la victoire !
+</p>
+<table>
+ <tr>
+ <th align="left" valign="middle">Num&eacute;ro</th>
+ <th align="left" valign="middle">Proposition</th>
+ <th align="left" valign="middle">Bien plac&eacute;(s)</th>
+ <th align="left" valign="middle">Mal plac&eacute;(s)</th>
+ </tr>
+<?php
+ foreach($jeu->getEssais() as $code=>$res){
+ echo "<tr><td>$i</td><td>".$code."</td><td>".$res['bon'].
+ "</td><td>".$res['mal']."</td></tr>\n";
+ $i++;
+ }
+if (!empty($_POST['prop'])){ // une proposition
+ $r=$jeu->test($_POST['prop']); // résultat
+
+ if ($r===false){ // proposition invalide
+ echo "<tr><td>Incorrect</td><td>".$_POST['prop'].
+ "</td><td></td><td></td></tr>\n";
+ }else { // valide !
+ echo "<tr><td>$i</td><td>".$_POST['prop']."</td><td>".$r["bon"].
+ "</td><td>".$r["mal"]."</td></tr>\n";
+ $_SESSION['jeu']=$jeu;
+ $i++;
+ }
+ if ($r===false || $r["bon"]!=$taille){ // tq pas gagné !
+ echo "<tr><td>$i</td><td>";
+ echo "<input type='text' name='prop' autofocus size='".$jeu->getTaille().
+ "'</td><td></td><td></td></tr>\n";
+?>
+ </table>
+ <input type="submit" value="OK">
+<?php
+ }else{ // GAGNE
+?>
+ <tr><td></td><td>GAGNE !</td><td></td></tr>
+ </table>
+<?php
+ }
+}else{ // pas de proposition
+ echo "<tr><td>$i</td><td>";
+ echo "<input type='text' name='prop' autofocus size='".$jeu->getTaille().
+ "'</td><td></td><td></td></tr>\n";
+?>
+ </table>
+ <input type="submit" value="OK">
+<?php
+}
+?>
+ <input type="submit" name="nouveau" value="Nouvelle Partie">
+ </form>
+ </body>
+</html>