diff --git a/DEV2.1/TP5/Maintamere.java b/DEV2.1/TP5/Maintamere.java index ceee0e5..814184c 100644 --- a/DEV2.1/TP5/Maintamere.java +++ b/DEV2.1/TP5/Maintamere.java @@ -1,6 +1,5 @@ import javax.swing.*; import java.awt.*; -import java.awt.event.*; public class Maintamere { diff --git a/DEV3.1/BDD_java/vote.class b/DEV3.1/BDD_java/vote.class new file mode 100644 index 0000000..27c0b18 Binary files /dev/null and b/DEV3.1/BDD_java/vote.class differ diff --git a/DEV3.1/BDD_java/vote.java b/DEV3.1/BDD_java/vote.java new file mode 100644 index 0000000..6cd23bd --- /dev/null +++ b/DEV3.1/BDD_java/vote.java @@ -0,0 +1,55 @@ +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + + +public class vote +{ + public static void main(String[] args) + { + + try + { + Connection cnx = DriverManager.getConnection("jdbc:mariadb://dwarves.iut-fbleau.fr/sayebabu","sayebabu", "kjrzB5S4kqKAwdT"); + try + { + PreparedStatement pst = cnx.prepareStatement("SELECT PaysID FROM `Pays` WHERE Pays = '?'"); + pst.setString(1, args[0]); + ResultSet rs = pst.executeQuery(); + int paysID = rs.getInt(1); + pst = cnx.prepareStatement("SELECT PaysVoteID, Points FROM `Comp` WHERE PaysCompID = '?'"); + pst.setInt(1, paysID); + + int sumVote = 0; + while(rs.next()) + { + int comp = rs.getInt(1); + int votants = rs.getInt(2); + sumVote+=votants; + + PreparedStatement pst2 = cnx.prepareStatement("SELECT Pays FROM `Pays` WHERE PaysID = '?'"); + pst2.setInt(1, comp); + ResultSet rs2 = pst.executeQuery(); + rs2.next(); + String PaysName = rs2.getString(1); + + + System.out.printf("%20s,%f \n",PaysName,votants); + } + System.out.printf("%20s --- \n", " "); + System.out.printf("%20s %f \n", "Total",sumVote); + } + catch (Exception e) + { + cnx.close(); + System.out.printf("TA MERE"); + + } + } + catch (Exception e) + { + System.out.printf("TA MERE"); + } + } +} diff --git a/DEV3.1/Mises en pages/boutons.java b/DEV3.1/Mises en pages/boutons.java new file mode 100644 index 0000000..ebe4b50 --- /dev/null +++ b/DEV3.1/Mises en pages/boutons.java @@ -0,0 +1,88 @@ +import javax.swing.*; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + +public class boutons +{ + public static void main(String[] args) + { + JFrame fenetre = new JFrame(); + fenetre.setSize(1000, 1000); + fenetre.setLocation(0, 0); + fenetre.setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + + JButton b1 = new JButton("1"); + gbc.gridx = 0; // la plage de cellules commence à la première colonne + gbc.gridy = 0; // la plage de cellules commence à la première ligne + gbc.gridwidth = 2; // la plage de cellules englobe deux colonnes + gbc.gridheight = 1; // la plage de cellules englobe une seule ligne + gbc.fill = GridBagConstraints.BOTH; // occupe tout l'espace de la plage + gbc.anchor = GridBagConstraints.CENTER; // se place au centre de la plage + gbc.weightx = 1.0; // souhaite plus de largeur si possible + gbc.weighty = 1.0; // n'a pas besoin de hauteur supplémentaire + fenetre.add(b1, gbc); + + JButton b2 = new JButton("2"); + gbc.gridx = 2; // la plage de cellules commence à la troisième colonne + gbc.gridy = 0; // la plage de cellules commence à la première ligne + gbc.gridwidth = 1; // la plage de cellules englobe une seule colonnes + gbc.gridheight = 2; // la plage de cellules englobe deux ligne + gbc.fill = GridBagConstraints.BOTH; // occupe tout l'espace de la plage + gbc.anchor = GridBagConstraints.CENTER; // se place au centre de la plage + gbc.weightx = 1.0; // n'a pas besoin de largeur supplémentaire + gbc.weighty = 1.0; // souhaite plus de heuteur si possible + fenetre.add(b2, gbc); + + JButton b3 = new JButton("3"); + gbc.gridx = 1; // la plage de cellules commence à la deuxième colonne + gbc.gridy = 2; // la plage de cellules commence à la troisième ligne + gbc.gridwidth = 2; // la plage de cellules englobe deux colonnes + gbc.gridheight = 1; // la plage de cellules englobe une seule ligne + gbc.fill = GridBagConstraints.BOTH; // occupe tout l'espace de la plage + gbc.anchor = GridBagConstraints.CENTER; // se place au centre de la plage + gbc.weightx = 1.0; // souhaite plus de largeur si possible + gbc.weighty = 1.0; // n'a pas besoin de hauteur supplémentaire + fenetre.add(b3, gbc); + + JButton b4 = new JButton("4"); + gbc.gridx = 0; // la plage de cellules commence à la première colonne + gbc.gridy = 1; // la plage de cellules commence à la deuxième ligne + gbc.gridwidth = 1; // la plage de cellules englobe une seule colonnes + gbc.gridheight = 2; // la plage de cellules englobe deux ligne + gbc.fill = GridBagConstraints.BOTH; // occupe tout l'espace de la plage + gbc.anchor = GridBagConstraints.CENTER; // se place au centre de la plage + gbc.weightx = 1.0; // n'a pas besoin de largeur supplémentaire + gbc.weighty = 1.0; // souhaite plus de heuteur si possible + fenetre.add(b4, gbc); + + JButton b5 = new JButton("5"); + gbc.gridx = 1; // la plage de cellules commence à la deuxième colonne + gbc.gridy = 1; // la plage de cellules commence à la deuxième ligne + gbc.gridwidth = 1; // la plage de cellules englobe une seule colonnes + gbc.gridheight = 1; // la plage de cellules englobe une seule ligne + gbc.fill = GridBagConstraints.BOTH; // occupe tout l'espace de la plage + gbc.anchor = GridBagConstraints.CENTER; // se place au centre de la plage + gbc.weightx = 1.0; // n'a pas besoin de largeur supplémentaire + gbc.weighty = 1.0; // n'a pas besoin de heuteur supplémentaire + fenetre.add(b5, gbc); + + fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + fenetre.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent we) + { + if(JOptionPane.showConfirmDialog(null,"Etes-vous sur ?", null, JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) + { + fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + } + }); + + fenetre.setVisible(true); + + } +} \ No newline at end of file diff --git a/DEV3.1/Transitions/0495Snivy.png b/DEV3.1/Transitions/0495Snivy.png new file mode 100644 index 0000000..20c9f57 Binary files /dev/null and b/DEV3.1/Transitions/0495Snivy.png differ diff --git a/DEV3.1/Transitions/0498Tepig.png b/DEV3.1/Transitions/0498Tepig.png new file mode 100644 index 0000000..410b295 Binary files /dev/null and b/DEV3.1/Transitions/0498Tepig.png differ diff --git a/DEV3.1/Transitions/0501Oshawott.png b/DEV3.1/Transitions/0501Oshawott.png new file mode 100644 index 0000000..9969fd7 Binary files /dev/null and b/DEV3.1/Transitions/0501Oshawott.png differ diff --git a/DEV3.1/Transitions/fenetre.java b/DEV3.1/Transitions/fenetre.java new file mode 100644 index 0000000..2cc7bb9 --- /dev/null +++ b/DEV3.1/Transitions/fenetre.java @@ -0,0 +1,89 @@ +import java.awt.CardLayout; +import java.awt.BorderLayout; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; + +import javax.swing.*; + +public class fenetre extends JFrame implements MouseListener{ + + int imgN = 0; + String[] imgs = {"DEV3.1/Transitions/0495Snivy.png","DEV3.1/Transitions/0498Tepig.png","DEV3.1/Transitions/0501Oshawott.png"}; + + public fenetre() + { + super(); + this.setSize(1000, 1000); + this.setLocation(0, 0); + this.add(new JLabel(new ImageIcon(this.imgs[this.imgN])),BorderLayout.CENTER); + addMouseListener(this); + + } + + public void next() + { + + } + + public void previous() + { + + } + + public void nextOld() + { + if (this.imgN+1>=imgs.length) + { + this.imgN = 0; + } + else + { + this.imgN++; + } + this.getContentPane().removeAll(); + this.add(new JLabel(new ImageIcon(this.imgs[this.imgN])),BorderLayout.CENTER); + this.repaint(); + this.revalidate(); + } + + public void previousOld() + { + if (this.imgN-1<0) + { + this.imgN = imgs.length-1; + } + else + { + this.imgN--; + } + this.getContentPane().removeAll(); + this.add(new JLabel(new ImageIcon(this.imgs[this.imgN])),BorderLayout.CENTER); + this.repaint(); + this.revalidate(); + } + + @Override + public void mouseClicked(MouseEvent e) + { + if (e.getX() + diff --git a/WEBBE/cinema/src/modeles/modeleFilms.php b/WEBBE/cinema/src/modeles/modeleFilms.php new file mode 100644 index 0000000..1ca9f2e --- /dev/null +++ b/WEBBE/cinema/src/modeles/modeleFilms.php @@ -0,0 +1,16 @@ + diff --git a/WEBBE/cinema/src/vues/footer.php b/WEBBE/cinema/src/vues/footer.php new file mode 100644 index 0000000..eabbf93 --- /dev/null +++ b/WEBBE/cinema/src/vues/footer.php @@ -0,0 +1,3 @@ + + + diff --git a/WEBBE/cinema/src/vues/header.php b/WEBBE/cinema/src/vues/header.php new file mode 100644 index 0000000..f6df11c --- /dev/null +++ b/WEBBE/cinema/src/vues/header.php @@ -0,0 +1,13 @@ + + + + + Films + + + + + +
+ + diff --git a/WEBBE/cinema/src/vues/vueFilms.php b/WEBBE/cinema/src/vues/vueFilms.php new file mode 100644 index 0000000..90f937a --- /dev/null +++ b/WEBBE/cinema/src/vues/vueFilms.php @@ -0,0 +1,31 @@ + + +

Films

+ + + + + + + + + + + + + + + + "; + +} +?> + +
TitreAnnéeGenreRéalisateur
{$film['titre']}{$film['annee']}{$film['genre']}{$film['prenom']} {$film['nom']}
+ diff --git a/WEBBE/tp4/README.md b/WEBBE/tp4/README.md new file mode 100644 index 0000000..23c7d90 --- /dev/null +++ b/WEBBE/tp4/README.md @@ -0,0 +1,73 @@ + +# TP4 : Cookies et sessions en PHP. + +### Ex1. +Complétez le script `index.php` de l'exercice 1 de manière à +mémoriser grâce à un cookie son os préféré (parmi Linux, Windows et +MacOS). Le cookie est valable pendant une minute, et l'os par +défaut est Linux. + +![](./img/cookie.png) +### Ex2. +Le but est de créer un min-jeu de morpion. + +![](./img/ttt.png) + +Les variables de session : +- `grid` : le plateau du jeu. tableau de 9 cases, prennant les valeurs 0 (libre), 1 (joueur 1), 2 (joueur 2). +- `playerTurn` : le joueur qui joue. + +Le script prend en paramètre la variable `pos` : la position du coup joué par le joueur. +### Ex3. +On désire rendre les pages du [tp3](./../tp3) (cinema) accessibles +uniquement à des utilisateur **inscrits au préalable**. + +1. Rajouter à la base une table `user` qui comprend un **login**, +**email** et un **password**. (login est la clé) +2. Ecrire un formulaire d'inscription au site qui comprend les + champs correspondants. Vous enregistrerez dans la base la mot de + passe hashé avec la fonction + [password\_hash](http://php.net/manual/fr/function.password-hash.php) + de php. +3. Faire en sorte que toutes les pages de l'application soient + accessibles **uniquement** si l'utilisateur s'est authentifié. + (utiliser une session) + +Ecrire les scripts ou pages suivants +
+
inscription.php
+
formulaire d'inscription, et qui traite les données du formulaire. +Si le formulaire n'est pas correctement rempli, Il est réaffiché. +(les champs correctes sont conservés !)
+
authentification.html
+
formulaire d'authentification.
+
verification.php
+
traite le formulaire précédent et vérifie si l'utilisateur est +enregistré. En cas de succés, renvoie vers la page d'accueil du +site. Pour éviter des attaques force brute, ajoutez une +temporisation qui ralentira de telles attaques.
+
securite.php
+
morceau de code que vous inclurez systématiquement dans vos pages +que vous voulez rendre accessible uniquement aux utilisateurs dûment +authentifiés. Ce script vérifiera l'existence d'une variable de +session créée lors de la connexion.
+
+Pour permettre l'authentification d'un utilisateur, il faut que +login et le mot de passe conviennent. On compare le hash de +l'utilisateur stocké dans la base avec le hashage calculé du +password soumis lors de l'authentification : + +```php + +``` + diff --git a/WEBBE/tp4/ex1/css/style.css b/WEBBE/tp4/ex1/css/style.css new file mode 100644 index 0000000..6492de3 --- /dev/null +++ b/WEBBE/tp4/ex1/css/style.css @@ -0,0 +1,12 @@ +main>section { +display: flex; + align-items:center; + justify-content:space-between; +} + +section > section { +width: 25%; +} +section > section + section { +width: 50%; +} diff --git a/WEBBE/tp4/ex1/index.php b/WEBBE/tp4/ex1/index.php new file mode 100644 index 0000000..c0ae581 --- /dev/null +++ b/WEBBE/tp4/ex1/index.php @@ -0,0 +1,49 @@ + + + + + + + + + + + + +
+
+
+
+
+ Changez votre OS + + + +
+ + +
+
+
+

+ ";?> +

+

Rafraîchir la page

+
+
+
+ + + diff --git a/WEBBE/tp4/ex2/css/style.css b/WEBBE/tp4/ex2/css/style.css new file mode 100644 index 0000000..3a5f75c --- /dev/null +++ b/WEBBE/tp4/ex2/css/style.css @@ -0,0 +1,32 @@ +table.morpion{ + border-collapse: collapse; + table-layout:fixed; + margin-left:auto; + margin-right:auto; + display:inline-block; + width:auto; +} +table.morpion td { + border : 1px solid #aaaaaa; + width:10rem; + height:10rem; + padding : 0px; + margin:0px; + overflow: hidden; + white-space: nowrap; + text-align:center; + vertical-align:middle; +} +table.morpion i { +font-size:8rem; +} + +table.morpion a { +display : inline-block; +width : 8rem; +height: 8rem; + +} +.center{ + text-align:center; +} diff --git a/WEBBE/tp4/ex2/include/tictactoe.php b/WEBBE/tp4/ex2/include/tictactoe.php new file mode 100644 index 0000000..ed46142 --- /dev/null +++ b/WEBBE/tp4/ex2/include/tictactoe.php @@ -0,0 +1,66 @@ +'; + for ($i = 0; $i < 3; $i ++){ + echo ""; + for ($j = 0; $j < 3; $j ++){ + + echo ""; + + $pos = 3*$i + $j; + if ($grid[$pos] == 0) + echo ""; + if ($grid[$pos] == 1) + echo ''; + if ($grid[$pos] == 2) + echo ''; + + echo ""; + + } + + echo ""; + } + + echo ""; +} diff --git a/WEBBE/tp4/ex2/index.php b/WEBBE/tp4/ex2/index.php new file mode 100644 index 0000000..dd05e0a --- /dev/null +++ b/WEBBE/tp4/ex2/index.php @@ -0,0 +1,26 @@ + + + + + + + + + + +
+

Tic Tac Toe :

+ +$message"; +echo " new game"; +} +displayGrid($grid); +?> +
+ + + diff --git a/WEBBE/tp4/img/cookie.png b/WEBBE/tp4/img/cookie.png new file mode 100644 index 0000000..f54392b Binary files /dev/null and b/WEBBE/tp4/img/cookie.png differ diff --git a/WEBBE/tp4/img/ttt.png b/WEBBE/tp4/img/ttt.png new file mode 100644 index 0000000..daf90ff Binary files /dev/null and b/WEBBE/tp4/img/ttt.png differ