javais zapper beaucoup de truc...

This commit is contained in:
Simon SAYE BABU 2023-09-20 12:11:33 +02:00
parent d934da10c1
commit f8b2e47118
24 changed files with 1243 additions and 1 deletions

View File

@ -1,6 +1,5 @@
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Maintamere {

BIN
DEV3.1/BDD_java/vote.class Normal file

Binary file not shown.

55
DEV3.1/BDD_java/vote.java Normal file
View File

@ -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");
}
}
}

View File

@ -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);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

View File

@ -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()<this.getWidth()/2)
{
this.previousOld();
}
else
{
this.nextOld();
}
}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
}

View File

@ -0,0 +1,6 @@
public class galerie {
public static void main(String[] args) {
fenetre boum = new fenetre();
boum.setVisible(true);
}
}

652
WEBBE/cinema/sql/cinema.sql Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,18 @@
table{
width:100%;
}
img{
width:500px;
}
td + td + td + td{
width : 20%;
}
td:first-child + td{
width:10%;
}
td:first-child{
width:30%;
}
td:first-child + td + td {
width:30%;
}

View File

@ -0,0 +1,14 @@
<?php
include './modeles/modeleFilms.php';
$films = getFilms();
//
// on "charge" la vue
//
include './vues/header.php';
include './vues/vueFilms.php';
include './vues/footer.php';
?>

View File

@ -0,0 +1,16 @@
<?php
function _getConnection()
{
static $_conn = NULL;
if ($_conn === NULL){
$_conn = mysqli_connect("localhost","","","");
}
return $_conn;
}
function getFilms()
{
// A completer
}
?>

View File

@ -0,0 +1,3 @@
</main>
</body>
</html>

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<title>Films</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@1/css/pico.min.css">
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<main class="container">

View File

@ -0,0 +1,31 @@
<!-- Variables de la vue
$films : les films de la page
-->
<h2>Films</h2>
<table>
<thead>
<tr>
<th>Titre</th>
<th>Année</th>
<th>Genre</th>
<th>Réalisateur</th>
</tr>
</thead>
<tbody>
<?php
foreach($films as $film){
echo "
<tr>
<td><a href='#'>{$film['titre']}</a></td>
<td>{$film['annee']}</td>
<td>{$film['genre']}</td>
<td>{$film['prenom']} {$film['nom']}</td>
</tr>";
}
?>
</tbody>
</table>

73
WEBBE/tp4/README.md Normal file
View File

@ -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
<dl>
<dt><code>inscription.php</code></dt>
<dd>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 !)</dd>
<dt><code>authentification.html</code></dt>
<dd>formulaire d'authentification.</dd>
<dt><code>verification.php</code></dt>
<dd>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.</dd>
<dt><code>securite.php</code></dt>
<dd>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.</dd>
</dl>
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
<?php
// Voir l'exemple fourni sur la page de la fonction password_hash()
// pour savoir d'où cela provient.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';
if (password_verify('rasmuslerdorf', $hash)) {
echo 'Le mot de passe est valide !';
} else {
echo 'Le mot de passe est invalide.';
}
?>
```

View File

@ -0,0 +1,12 @@
main>section {
display: flex;
align-items:center;
justify-content:space-between;
}
section > section {
width: 25%;
}
section > section + section {
width: 50%;
}

49
WEBBE/tp4/ex1/index.php Normal file
View File

@ -0,0 +1,49 @@
<?php
$OS = "linux";
// TODO
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@1.*/css/pico.min.css">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<main class="container">
<section>
<section>
<form method="POST">
<fieldset>
<legend>Changez votre OS</legend>
<label>
<input type="radio" name="OS" value="linux">
<i class="fa fa-linux fa-2x" aria-hidden="true"></i>
</label>
<label>
<input type="radio" name="OS" value="windows">
<i class="fa fa-windows fa-2x" aria-hidden="true"></i>
</label>
<label>
<input type="radio" name="OS" value="apple">
<i class="fa fa-apple fa-2x" aria-hidden="true"></i>
</label>
</fieldset>
<button type="submit">Envoyer</button>
</form>
</section>
<section>
<p>
<?php echo "<i class='fa fa-$OS fa-4x'></i>";?>
</p>
<p>Rafraîchir la page <a href=""><i class="fa fa-refresh" aria-hidden="true"></i></a></p>
</section>
</section>
</main>
</body>
</html>

View File

@ -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;
}

View File

@ -0,0 +1,66 @@
<?php
$message = "";
$grid = [0,1,0,1,0,2,2,0,0];
//
// TODO
//
//
function isWinner($grid, $player)
{
$winStates = array
(
array(0, 1, 2), array(3, 4, 5), array(6, 7, 8), // Horizontal
array(0, 3, 6), array(1, 4, 7), array(2, 5, 8), // Vertical
array(0, 4, 8), array(2, 4, 6) // Diagonal
);
foreach ($winStates as $winState)
{
if ($grid[$winState[0]] == $player &&
$grid[$winState[1]] == $player &&
$grid[$winState[2]] == $player)
{
return true;
}
}
return false;
}
function noWinner($grid)
{
for($i = 0; $i < 9; $i++)
if ($grid[$i] == 0)
return false;
return true;
}
function displayGrid($grid)
{
echo '<table class="morpion">';
for ($i = 0; $i < 3; $i ++){
echo "<tr>";
for ($j = 0; $j < 3; $j ++){
echo "<td>";
$pos = 3*$i + $j;
if ($grid[$pos] == 0)
echo "<a href='?pos=$pos'></a>";
if ($grid[$pos] == 1)
echo '<i class="fa fa-times" aria-hidden="true"></i>';
if ($grid[$pos] == 2)
echo '<i class="fa fa-circle-o" aria-hidden="true"></i>';
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
}

26
WEBBE/tp4/ex2/index.php Normal file
View File

@ -0,0 +1,26 @@
<?php
include 'include/tictactoe.php';
?>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@1.*/css/pico.min.css">
<link rel="stylesheet" href="./css/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<main class="container center">
<h3>Tic Tac Toe : <?php echo "player $playerTurn turn";?></h3>
<?php
if ($message != ""){
echo "<h1>$message";
echo " <a href='?'>new game</a></h1>";
}
displayGrid($grid);
?>
</main>
</body>
</html>

BIN
WEBBE/tp4/img/cookie.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
WEBBE/tp4/img/ttt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB