
Hey ! Il y a peu je me suis remis à l'apprentissage du codage
J'ai décidé aujourd'hui de vous faire 3 partages !
- Un copyrighter (kézako ?)
- Un script qui créer des miniatures
- Un script qui effectue un tirage au sort

Un copyrighter
Qu'est-ce qu'un copyrighter ? Un copyrighter est un script en PHP qui va vous permettre de rajouter votre logo sur une image par incrustation, à la manière d'un copyright... d'où le nom ! Comme une image est bien plus parlante que tous les mots du monde, je vous mettrai un exemple juste en dessous... Mais avant tout, je vous explique son mode de fonctionnement !
Mode de fonctionnement: Pour ce script, vous aurez besoin de 2 images: une image mère (source) et une image fille (destination). Le script marche de la manière suivante: vous vous servez d'une image logo.png (de petite taille de préférence) pour l'incruster sur une image plus grande.
Par exemple, si on prend deux images:
- logo.png =>
- nomdelimage.png =>
Il vous suffira d'aller sur le lien copyrighter.php?image=nomdelimage.png...
... et la magie de PHP opère !
Il ne nous reste plus qu'à enregistrer l'image et on obtient le rendu suivant
- copyright.png =>
- logo.png =>
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
- nomdelimage.png =>
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Il vous suffira d'aller sur le lien copyrighter.php?image=nomdelimage.png...
... et la magie de PHP opère !
Il ne nous reste plus qu'à enregistrer l'image et on obtient le rendu suivant
- copyright.png =>
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Mon exemle n'est pas super jolie, mais il devrait vous donner une idée de ce que contient le script
NB: Ce script est issu de OpenClassroom.
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
!
PHP:
<?php
header ("Content-type: image/jpeg"); // L'image que l'on va créer est un jpeg
// On charge d'abord les images
$source = imagecreatefrompng("logo.png"); // Le logo est la source
$destination = imagecreatefrompng($_GET['image']); // La photo est la destination
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
// On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
$destination_x = $largeur_destination - $largeur_source;
$destination_y = $hauteur_destination - $hauteur_source;
// On met le logo (source) dans l'image de destination (la photo)
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);
// On affiche l'image de destination qui a été fusionnée avec le logo
imagepng($destination);
?>

Un créateur de miniatures
Mode de fonctionnement: Pour ce script, vous aurez besoin de 1 image de taille normale. Le script marche de la manière suivante: il redimensionne l'image que vous avez choisis avec la taille de 100x100px (taille modifiable dans le script)
Par exemple, si on reprend mon image de tout à l'heure
- nomdelimage.png =>
Il vous suffira d'aller sur le lien miniature.php?image=nomdelimage.png...
... et la magie de PHP opère !
Votre image est enregistrée sous le nom mini_nomdelimage.png
- mini_nomdelimage.png =>
- nomdelimage.png =>
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Il vous suffira d'aller sur le lien miniature.php?image=nomdelimage.png...
... et la magie de PHP opère !
Votre image est enregistrée sous le nom mini_nomdelimage.png
- mini_nomdelimage.png =>
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Mon exemle n'est pas super jolie, mais il devrait vous donner une idée de ce que contient le script
NB: Ce script est, lui aussi, issu de OpenClassroom.
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
!
PHP:
<?php
$source = imagecreatefrompng($_GET['image']); // La photo est la source
$destination = imagecreatetruecolor(100, 100); // On crée la miniature vide (il faut modifier les valeurs pour la taille de l'image)
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
// On enregistre la miniature sous le nom "mini_nomdufichier.png"
imagepng($destination, "mini_".$_GET['image']);
?>

Un algorithme de tirage au sort
Suite à une commande, je me suis retrouvé à coder un CMS avec pour thème: le concours... J'ai donc été amené à coder un script de tirage au sort. Je vous partage donc le script en lui-même.
J'ai retiré quelques lignes sur le script d'origine car sinon il faudrait que je vous donne le CMS complet... Et ce n'est pas dans mon intention
Bon, pour ce qui est de l'installation du script j'ai simplifié la connexion à la base de donnée, vous aurez juste à remplir les variables... Derien
PHP:
<?php
// DEBUT CONNEXION BDD
$hote = "localhost"; // Nom d'hôte de ton hébergeur
$nom_de_la_bdd = "site"; // Nom de ta base de donnée
$utilisateur = "root"; // Nom d'utilisateur (connexion bdd)
$mot_de_passe = ""; // Mot de passe (connexion bdd)
$bdd = new PDO('mysql:host='.$hote.';dbname='.$nom_de_la_bdd.';charset=utf8', ''.$utilisateur.'', ''.$mot_de_passe.'');
// FIN CONNEXION BDD
// Étape 0: Calcul du nombre de participants => stockage dans $idmax
$compteur = $bdd->query('SELECT COUNT(id) AS nbr FROM participants');
$participants = $compteur->fetch();
$idmax = $participants['nbr'];
// Étape 1: Tirer au sort un nombre compris entre idmin et $idmax
$idgagnant = mt_rand(1, $idmax);
// Étape 2: Sélectionner le nom de l'utilisateur dont l'id a été choisi
$selection = $bdd->query('SELECT * FROM participants WHERE id = '.$idgagnant.'');
$gagnant = $selection->fetch();
// Étape 3: Effacer toute la table participants et la remet à 0
$empty = $bdd->query('TRUNCATE TABLE participants');
// Étape 5: Afficher les infos du gagnant dans la table gagnants
$new_winner = $bdd->prepare('INSERT INTO gagnants (pseudo, contact, lot_type, lot_jeux, date) VALUES (:pseudo, :contact, :lot_type, :lot_jeux, :date)');
$new_winner->execute(array(
'pseudo' => $gagnant['pseudo'],
'contact' => $gagnant['contact'],
'lot_type' => $settings['lot_type'],
'lot_jeux' => $settings['lot_jeux'],
'date' => time()
));
// Étape 6: On redirige l'utilisateur vers l'accueil
header('Location: index');
?>
CREATE TABLE `participants` (
`id` int(11) NOT NULL,
`pseudo` varchar(255) NOT NULL,
`contact` text NOT NULL,
`ip` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `gagnants` (
`id` int(11) NOT NULL,
`pseudo` varchar(255) NOT NULL,
`contact` text NOT NULL,
`ip` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
`id` int(11) NOT NULL,
`pseudo` varchar(255) NOT NULL,
`contact` text NOT NULL,
`ip` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `gagnants` (
`id` int(11) NOT NULL,
`pseudo` varchar(255) NOT NULL,
`contact` text NOT NULL,
`ip` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Voilà ! J'espère que ces 3 petits scripts vous font plaisir ! Pour les deux premiers vous pouvez remercier OpenClassrooms, j'ai juste modifié les 2 scripts en une minute pour y rajouter la fonctionnalité $_GET['image']... Pour le script de tirage j'ai fait ça en une vingtaine de minutes de mémoire

Pour le topic en revanche j'aurais mit une bonne heure donc j'espère que ce sujet ne va pas rester sans réponses

À bientôt
