TD09 : Tableaux, images, mails

Pour ce TD vous devez avoir codé la galerie du td08 nous en aurons besoin pour créer une galerie avec une base de données.

Tableaux

Révisez rapidement le concept de tableaux qu'on a vu lors du td01

array_manip_events

Rajouter une date : 23 mars 1918 : L'offensive allemande est déviée du côté d'Amiens et de Paris.

$events=array("1914"  => array ("Juin" => array ("28" => "Archiduc Ferdinand d'Autriche assassiné"),"Juillet" => array ("26" => "Début de la mobilisation Autrichienne","28" => "Autriche declare la guerre à la Serbie")),"1918" => array ("Novembre" => array ("11" => "Armistice","16" => "Soldats alliés se déplacent vers l'Allemagne")));

NB: n'ayez pas peur de “ranger” un peu le code en rajoutant des retours à la ligne et des indentations qui vous permettront d'y voir un peu plus clair.

array_manip_saisons

$moisEnCours = date("m");
// permet de transformer du texte en nombre
// et de faire coïncider les mois numérotés de 1 à 12
// aux tableau numéroté de 0 à 11
 
$moisEnCours = (int) $moisEnCours -1;
 
 
$monthInfo = array(
	array("Janvier", 31),
	array("Fevrier", 28),
	array("Mars", 31),
	array("Avril", 30),
	array("Mai", 31),
	array("Juin", 30),
	array("Juillet", 31),
	array("Aout", 31),
	array("Septembre", 30),
	array("Octobre", 31),
	array("Novembre", 30),
	array("Decembre", 31));
 
echo "<p>Nous sommes au mois de {$monthInfo[$moisEnCours][0]} 
	qui a {$monthInfo[$moisEnCours][1]} jours </p>";

Ajoutez la saison (en paramètre) et affichez comme texte “Nous sommes au mois de Septembre qui a 30 jours et qui est à l'automne.

array_for

Affichez dans une liste à puces (<ul> et <li>) la liste de ces mois.

$mois = array('Janvier','F&eacute;vrier','Mars','Avril','Mai','Juin','Juillet','Ao&ucirc;t','Septembre','Octobre','Novembre','D&eacute;cembre');

array_for_double

Affichez de couleurs différentes tous les mois suivants :

$mois = array('Janvier','F&eacute;vrier','Mars','Avril','Mai','Juin','Juillet','Ao&ucirc;t','Septembre','Octobre','Novembre','D&eacute;cembre');
$couleur=array();
$couleur[0]='blue';
$couleur[1]='white';
$couleur[2]='red';
$couleur[3]='yellow';
$couleur[4]='grey';
$couleur[5]='lime';
$couleur[6]='lightblue';
$couleur[7]='fuchsia';
$couleur[8]='lightgrey';
$couleur[9]='olive'
$couleur[10]='pink';
$couleur[11]='purple';

array_foreach

Affichez le contenu de ce tableau dans une liste de <ul> et <li>

$myArray=array('fruit'=>'pomme','couleur'=>'rouge','outil'=>'marteau');

array_multi

Affichez le contenu de ce tableau, avec des <ul> et <li>. Vous pouvez vous aider de is_array.

$myArray=array('fruits'=>array('pomme','cerise','orange'),'outils'=>array('marteau','pelle','pioche'),'verite'=>42,'d'=>true);

array_multi_recursion (optionnel)

Affichez le contenu de ce tableau en utilisant la récursivité.

$myArray=array('fruits'=>array('pomme','cerise','orange'),'outils'=>array('marteau','pelle','pioche'),'verite'=>42,'d'=>true,'filesystem'=>array('index.html','images'=>array('logo.gif','header.jpg','footer.jpg'),'media'=>array('home.swf','menu.xml'=>array('node'=>array('home'=>'index.html','contact'=>'contact.html')),'contact.html'),'choucroute','pissenlit'),array(true,false,true,false));

NB : var_dump peut vous aider.

array_intersect

Quels sont les 5 nombres communs à ces trois listes ?

$tableau_1 = array(71, 14, 21, 28, 45, 78, 89, 56);
$tableau_2 = array(17, 14, 21, 28, 23, 56, 45, 78, 94);
$tableau_3 = array(17, 14, 26, 28, 23, 56, 45, 78, 94);

array_sum

Quelle est la somme de ces nombres ?

$tableau = array(71, 14, 21, 28, 45, 78, 89, 56.75,5,77,66,1,0,11,12,34,45,78);

(Bonus : quelle est la moyenne de ces nombres ?)

array_count_values

Quel est le le nombre d'occurences de chaque valeur pour chaque clé, quelle automobile est la plus populaire ?

$cars_rented = array("Clio", "Twingo", "Laguna", "Laguna", "Clio", "Laguna", "Velsatis", "Clio", "Polo");

array_rand

$legumes = array("Guillaume", "Pierre", "Louis", "Julie", "Valentin", "Jennifer", "Joane");

Tirez au hasard 3 étudiants (sans remise)

Manipulation d'images

Vous allez avoir besoin des cours sur la manipulation d'images et d'un peu de patience.

image_logotize

Créez un dossier image_logotize dans-lequel vous placerez l'image mdr.jpg. Un script php devra modifier l'image pour afficher un rendu ressemblant à l'image image_logotize.png ci-dessous.

Pour la réaliser, j'ai utilisé les fonctions php suivantes :

header();
imagecreatetruecolor();
imagecolorallocate();
ImageFillToBorder();
imagefilledpolygon();
imagecreatefromjpeg();
imagecopyresampled();
imagefilledrectangle();
imagestring();
imagepng();

Bonus : le texte qui s'affiche peut être paramétrable en utilisant $_GET[]

L'envoi de mails

Sur vos machines locales, il y a peu de chances pour que le mail soit vraiment envoyé. Pour tester ce script, il va vous falloir héberger les fichiers sur un hébergeur qui supporte PHP. L'envoi de mails est bien documenté sur la page de la fonction mail.

mail_formulaire

Faites un formulaire de contact qui vous envoie un mail.

Les champs du formulaire doivent être :

  • Le nom de l'interlocuteur
  • Son adresse e-mail
  • Son message

Quand le formulaire est soumis, une page de remerciement doit s'afficher.

mail_lien

Faire un formulaire de contact qui propose d'uploader un fichier et dans le corps du mail, spécifiez l'adresse du fichier à télécharger.

NB : Pensez à utiliser la fonction rand ou la fonction uniqid pour donner un nom aléatoire au fichier pour ne pas qu'un utilisateur ayant donné le même nom à son fichier qu'un utilisateur précédent n'écrase le fichier.

mail_pj (optionnel)

Faites le même formulaire mais en y ajoutant une pièce jointe, attention, vous devez créer vous devez encoder le fichier avec base64_encode.

Mysql

Quelques petits exercices en MySQL pour vous remémorer les requêtes SELECT et INSERT si vous êtes un peu courageux, vous pouvez faire ce tutoriel fort instructif qui permet de créer un module de news : http://www.grafikart.fr/tutoriels/gerer-news-php-43

mysql_galerie

Sur une page, listez l'ensemble des images de la galerie et leur nom. Pour ce faire, vous utiliserez une base MySQL, vous pouvez utiliser le td03 pour vous remémorer.

Créez un fichier mysql_galerie.php pour le code PHP et placez utilisez ce fichier pour créer la table dans MySQL. mysql_galerie.sql.zip

mysql_galerie_add

Créez un formulaire vous permettant d'ajouter une nouvelle image, celui-ci doit vous permettre de renseigner le nom de l'image et de l'uploader.

Faites en sorte que l'image ne soit renseignée dans la base de données que si l'upload a été fructueux (il s'agit bien d'une image, le fichier n'est pas trop volumineux, etc.)

ressources/php/td09.txt · Last modified: 2013/06/16 22:51 (external edit)
 
 
Creative Commons License Powered by PHP Valid XHTML 1.0 April