mission Game of Thrones 1

Créé en 2018 et modifié le 02 Sep 2019

Game of Thrones est une série de romans de George R.R Martin de  1996, adaptée en série télévisée par HBO en 2011.

 

Débuter en programmation objet avec PHP

Soit une classe characters. Elle possède comme propriétés un identifiant, un nom de personnage, une date de naissance, une date de mort. La classe noble hérite de characters. Elle possède une maison. La classe maison possède un nom, une devise, des armoiries et une date de fondation. Pour chaque noble, on enregistre l’époux ou épouse, le père et la mère. La classe Héro hérite de la classe characters. Elle possède un nom d’acteur. Un héro peut éventuellement être un noble. Chaque maison possède une région et chaque personnage une culture.

  • Réaliser le diagramme de classe correspondant.
  • Réaliser les classes correspondantes en PHP avec leur constructeur. On réalisera un fichier PHP par classe, characters.php, noble.php, maison.php et hero.php. On déclarera les propriétés en privées. La classe noble contiendra une instance de la classe maison.
  • Instancier deux maisons.
  • Rendre la classe personnage abstraite.
  • Réaliser un compteur static qui permet de compter le nombre de personnage instancié.
  • Enregistrer six […]

mission Hearthstone 6

Amélioration du projet

Partie 1

Permettre à un utilisateur d’avoir un ensemble de carte.

  • Modéliser les données nécessaires pour gérer les ensembles de cartes de différents utilisateurs
  • Modifier la base de données en conséquence
  • Permettre d’initialiser un ensemble de cartes d’un utilisateur en cliquant sur un bouton. Il sera initialiser avec 30 cartes aléatoires.
  • Le joueur se spécialise dans une classe. Ne garder que les cartes de sa classes parmi les 30.
  • Permettre grâce à un autre bouton de tirer au sort 5 cartes pour augmenter la collection. Seules les cartes de la classe du joueur seront sauvegardées dans sa collection.
  • Permettre l’affichage des cartes du joueur sous forme de catalogue. On pourra éventuellement rechercher les images de chaque carte.

Partie 2

  • Tirer au sort 5 cartes d’un joueur et les afficher sur la gauche.
  • Puis tirer au sort 5 cartes d’un autre joueur et les afficher sur la droite.
  • Permettre le déplacement des cartes sur le centre du plateau.

Partie 3

  • Enregistrer les fichiers sur Gitlab dans un répertoire hearthstone6 et partager avec cherryclass.
  •  Déployer votre application en ligne (hors localhost).

 

 

mission Hearthstone 3

PHP et les bases de données

Partie 1 – Enregistrement de données

  • Réaliser la base de données correspondante au script sous IBM ou AWS
    https://gitlab.com/cherryclass/hearthstone/blob/master/hearthstone.sql
  • Réaliser un administrateur hearthstone  dans MySQL.
  • Connecter sous IntelliJ la base de données.
  • Permettre au formulaire formRarity.html de s’insérer dans la base de données. On utilisera l’administrateur hearthstone pour la connexion PDO.
  • Permettre au formulaire formCarte.html de s’inserer dans la base de données. Interdire les chiffres dans le nom de la carte grâce à une expression régulière dans le champs input.

Partie 2 – Gestion d’utilisateurs

  • Ajouter une table utilisateur à la base de données, avec login, mot de passe, email et date d’inscription. Ajouter au moins 3 utilisateurs avec des emails du domaine frebourg.es.
  • Mettre à jour le diagramme de classe correspondant.
  • Vérifier que l’utilisateur existe en modifiant recupLogin.php. On pourra s’inspirer du code suivant.
$sql = "SELECT count(*) as total FROM utilisateur WHERE login=:login AND mdp=:mdp";
$resultats = $dbh->prepare($sql);
$login = "login";
$mdp = "mdp";
$resultats->bindParam(":login", $login);
$resultats->bindParam(":mdp", $mdp);
$resultats->execute(); 
$row= $resultats->fetch(PDO::FETCH_ASSOC);

echo var_dump($row);
echo $row["total"];
  • Réaliser une fonction qui permette de générer un mot de passe d’au moins 5 lettres
  • Réaliser une page inscription.php qui permette d’ajouter un utilisateur en utilisant […]

mission Hearthstone 2

Découverte de PHP

Partie 1

  • Installer WAMP ou équivalent.
  • Réaliser une page bonjour.php dans le répertoire web d’Apache déployé par WAMP, soit www qui affiche grâce à l’instruction echo « Hello ». Tester grâce  à http://localhost/bonjour.php
  • Enregistrer l’ensemble des fichiers HTML, CSS de Hearthstone 1 . Transformer index.html en index.php
  • Afficher au début de la page index.php une image d’Orc le matin, d’Humain l’après-midi et de Pandaren le midi.
$heure = date("H");
  • Réaliser une page footer.html avec son nom, ajouter celle-ci à chaque autres pages grâce à une inclusion PHP.

Partie 2

  • Récupérer les informations de formLogin.html avec la méthode GET puis les afficher sur la page recupLogin.php avec la méthode GET puis avec la méthode POST en changeant la méthode du formulaire. Quelle différence dans l’url sur les deux méthodes ?
  • Sur recupLogin.php, ajouter un tableau
$utilisateurs =["Lina","passeLina","Edgar","passeEdgar"];
  • Vérifier que le couple {login, mot de passe} saisi dans formLogin existe dans $utilisateurs.
  • Enregistrer le login en variable de session et afficher « connecté »+Login en cas de réussite ou afficher une liste déroulante des logins en cas d’erreur grâce à […]

PHP

– support stone thrones tickoon zoo ristoo fi,der otelo finder

Présentation

PHP: Hypertext Preprocessor est un langage libre de 1994. Exécuté coté serveur web, il peut générer du code HTML.

Avantages

  • populaire
  • interprété par le serveur, indépendant de l’OS
  • non verbeux
  • création de page web dynamiques
  • disponible sur tous les hébergements

Inconvenients

  • syntaxe fouillie, ajout de l’objet à posteriori
  • prise en charge des types incomplete
  • plus lent et moins  à la mode que NodeJS

 

Utilisation

Il peut être déployé sur différents serveurs web comme

  • Internet Information Services IIS, de Microsoft
  • Apache HTTP Server de la Apache Software Foundation
  • lighttpd de Jan Kneschke ;
  • nginx d’Igor Sysoev ;

Attention, les anciens accès aux bases MySQL sont dépréciés (mysql_query par exemple).

Les métiers

 

Premier code

On doit indiquer les balises HTML et insérer du code PHP.
Tout code PHP commence par une balise < ?php et termine par ?> sauf pour les fichiers 100% PHP.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>mon titre</title>
</head>

<body>
<?php
echo "Je suis un script PHP qui va être [...]

API Gateau

Base de données

réaliser une base de données patisserie avec une table gateau. Cette table possédera comme champs un id et un nom.
insérer 10 sortes de gâteaux

API

Permettre à votre API de répondre aux routes suivantes grâce à SLIM dans un seul fichier index.php.

  1. gateau en POST pour insérer un gateau
  2. gateau/{id} en GET pour afficher un gateau
  3. gateaux en GET pour lister tous les gateaux
  4. gateau/{id} en DELETE pour supprimer un gateau
  5. gateau/{id} en PUT pour modifier un gateau

Réaliser le fichier htacess qui permet de regiriger les URI vers index.php
Implémenter les routes, dans un premier temps, elle répondront seulement « ok »
Ecrire une fonction qui se connecte à la base de données.
Relier chaque route à une fonction qui execute le service demandé.

Client

Réaliser une interface cliente uniquement en HTML, JQuery et Ajax pour utiliser les routes précédentes.
Afficher tous les boutons sur une seul page.
Appeler les routes grâce à JQuery qui lance une fonction Ajax au click du bouton. Les parametres seront transmis en dur dans l’URL dans un premier temps.
Permettre à l’utilisateur de saisir les informations du gateau pour la route 1, et l’id du gateau pour […]

Protégé : DinoJBoc

Cette publication est protégée par un mot de passe. Pour la voir, veuillez saisir votre mot de passe ci-dessous :

Ship

On souhaite réaliser une application qui permette le déchargement des marchandises de navire rentrant du nouveau monde.

Partie 1

  • Réaliser la base de données
--
-- Base de données : `ship`
--

-- --------------------------------------------------------

--
-- Structure de la table `dechargement`
--

DROP TABLE IF EXISTS `dechargement`;
CREATE TABLE IF NOT EXISTS `dechargement` (
`id` int(11) NOT NULL,
`idNavire` int(11) NOT NULL,
`dateD` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Déchargement des données de la table `dechargement`
--

INSERT INTO `dechargement` (`id`, `idNavire`, `dateD`) VALUES
(1, 1, '1610-08-11');

-- --------------------------------------------------------

--
-- Structure de la table `lignedechargement`
--

DROP TABLE IF EXISTS `lignedechargement`;
CREATE TABLE IF NOT EXISTS `lignedechargement` (
`idDechargement` int(11) NOT NULL,
`idMarchandise` int(11) NOT NULL,
`quantite` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Déchargement des données de la table `lignedechargement`
--

INSERT INTO `lignedechargement` (`idDechargement`, `idMarchandise`, `quantite`) VALUES
(1, 1, 3);

-- --------------------------------------------------------

--
-- Structure de la table `marchandise`
--

DROP TABLE IF EXISTS `marchandise`;
CREATE TABLE IF NOT EXISTS `marchandise` (
`id` int(11) NOT NULL,
`nom` varchar(50) NOT NULL,
`poidsUnitaire` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Déchargement des données de la table `marchandise`
--

INSERT INTO `marchandise` (`id`, `nom`, `poidsUnitaire`) VALUES
(1, 'tabac', 2),
(2, 'indigo', 2),
(3, 'vanille', 2),
(4, [...]

Mission fish

Soit plusieurs fichiers dans différents répertoires de la forme :

rep1/
f1.jpg
f2.jpg
f3.jpg
..
wiwi.pdf
wawa.pdf

rep2/
f1.jpg
f2.jpg
f3.jpg
...
wiwi.pdf
wawa.pdf

rep3/
f1.jpg
f2.jpg
f3.jpg
..
wiwi.pdf
wawa.pdf

Chaque fichier est différent. On souhaite tout rassembler dans un seul répertoire avec comme préfix le nom du répertoire.
Exemple : repglobal/rep1-f1.jpg

  • Réaliser le programme dans le langage de votre choix, Python, PHP ou autre.
  • Améliorer le programme pour sélectionner uniquement les images.
  • Faire en sorte que les sous répertoire soient pris en compte (rep3/rep3a).

 

 

 

 

from pathlib import Path
import shutil
for p in  Path('.').glob('./**/*'):
   if p.is_file():
       word=str(p)
       word = word.replace("\\", "_")
       print(word)
       shutil.move(p,word)

 

mini mission PHP Data Objects

Mini code :

<?php 
$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; 
$user = 'dbuser'; 
$password = 'dbpass'; 

try { 
    $dbh = new PDO($dsn, $user, $password); 
} catch (PDOException $e) { 
    echo 'Connexion échouée : ' . $e->getMessage(); 
} 
$sql = "SELECT nom FROM client WHERE login=:login AND mdp=:mdp ";
$resultats=$dbh->prepare($sql) ;
$login= "login" ;
$mdp= "mdp";
$resultats->bindParam(":login", $login);
$resultats->bindParam(":mdp", $mdp);
$resultats->execute() ; 
foreach($resultats->fetchAll(PDO::FETCH_OBJ) as $ligne)
{
	echo 'Utilisateur : '.$ligne->nom.'<br>';
}
?>
  • Se connecter à une base de vos missions SQL depuis sio-hautil ou IBM Cloud.
  • Afficher les données de la table de votre choix
  • Exécuter les requêtes de sélection de votre choix
  • Tester des requêtes de modification et d’insertion.

 

Go to Top