Le langage P.H.P. 1
• Rappel du HTML et structure d'une page Web
- o Où s'exécute le code PHP ?
- o Comment on indique que c’est du PHP ?
- o Extension fichiers ?
- o Les variables sont-elles typées ?
- o Que veut dire « Concaténation » ?
<HTML>
<BODY>
<?php
$prenom="Votre prenom";
echo "Bonjour ".strtoupper($prenom)."<br>";
echo "Nous sommes le ". date('d/m/y')."<br> il est ".date('H:i:s')."<br>";
?>
<hr size= "2">
<?php
$tableau[]="occurrence";
$tableau[]="e";
$tableau[]=1.5;
$tableau[]=1;
$tableau[]=true;
echo gettype($tableau);
echo"<br>";
for ($i=0; $i<5; $i++)
{
echo ($tableau[$i] . " : ");
echo (gettype($tableau[$i]) . "<br>");
}
$chaine1 = $tableau[0] + $tableau[1] + $tableau[2] + $tableau[3] + $tableau[4];
echo $chaine1;
echo ("<br>");
$chaine2 = $tableau[0] . $tableau[1] . $tableau[2] . $tableau[3] . $tableau[4];
echo $chaine2;
$variableTest = 1;
echo ($variableTest . "<br>");
echo ($variableTest."<br>");
$variableTest = "Bonjour php";
echo ("Sous chaine de 2 caracteres commencant à la position 3 : " . substr($variableTest,3,2) . "<br>");
?>
La fonction date() retourne des informations sur la date (et/ou l'heure) selon le format spécifié.
date (chaine format [, entier timestamp])
d Jour, "01" à "31"
H Heure, au format 24h ("00" à "23")
i Minutes ("00" à "59")
s Secondes ("00" à "59")
On constate par l'exemple que les variables ne sont pas typées (voir cours).
De nombreuses fonctions natives existent et sont semblables à celles utilisées en C++.
Pour la fin de boucle du tableau, il est préférable d'utiliser la fonction qui compte le nombre d'éléments.
On alterne le PHP et le HTML suivant les besoins : il est inutile de tout écrire en PHP.
Le passage de variables dans l'url doit être utilisé pour des données non confidentielles.
Les tableaux peuvent être indicés ou associatifs (un nom à la place d'un indice. Voir cours).
Pour la concaténation, il faut utiliser le point
.
N'oubliez pas de commenter votre code !
Vous travaillerez sur une machine Debian disposant d'un serveur Apache et d'un serveur proftpd..
Pensez à vous mettre en mode pont pour obtenir une adresse I.P. dans la salle de T.P.
Vous travaillerez sous Windows et vous enverrez le fichier vers le serveur grâce à un client FTP
en utilisant le compte test.
Dans le répertoire /home/test créer un dossier à votre Nom :
mkdir VotreNom
Pour relier ce répertoire du compte test avec le serveur Apache et son répertoire de travail
il vous faudra saisir la commande suivante dans le répertoire /var/www
ln -s /home/test/VotreNom VotreNom
Dans le répertoire /var/www/VotreNom/tp1
Cela vous permettra, si cela est nécessaire de travailler à plusieurs sur le même serveur.
Exercice N°1
Créer le fichier « infos.php » suivant :
<?php
?>
Saisir dans l'URL du navigateur de la machine physique Windows
http://adresseIPMachineDebian/VotreNom/tp1/infos.php
Vous devez obtenir le fichier d’informations de PHP qui démontre que le serveur Apache et le moteur PHP fonctionne.
Précisez (en indiquant la ligne complète) :
Le port du serveur : __________________
L’adresse IP du serveur : __________________
L'adresse IP du client : _____________
Le protocole du serveur : __________________
Exercice N°2
Dans le répertoire tp1, créer le fichier « exo2.php » suivant en faisant attention aux points, apostrophes et guillemets. Il n’y a pas de balises HTML car ici on n’en a pas besoin.
<?php
$prenom="VotrePrénom";
echo ("Bonjour " . strtoupper($prenom) . "<br>");
echo ("Nous sommes le " . date('d/m/y') . "<br> il est " . date('H:i:s') . "<br>");
?>
Reproduire le résultat obtenu.
Apporter les modifications suivantes :
- Mettre le prénom en rouge en utilisant la balise HTML
<font color='red'> et </font>
- Afficher la longueur (le nombre de lettres) de votre prénom grâce à la fonction
- echo ("Nombre de lettres dans votre prénom : " . strlen($prenom));
Exercice N°3
Soit le fichier PHP suivant :
<HTML>
<BODY>
<?php
$prenom="VotrePrenom";
echo ("Bonjour " . strtoupper($prenom) . "<br>");
echo ("Nous sommes le " . date('d/m/y') . "<br> il est " . date('H:i:s') ."<br>");
?>
<hr size= "2">
<?php
$tableau[]="occurrence";
$tableau[]="e";
$tableau[]=1.5;
$tableau[]=1;
$tableau[]=true;
echo (gettype($tableau));
echo ("<br>");
for ($i=0; $i<5; $i++)
{
echo ($tableau[$i] . " : ");
echo (gettype($tableau[$i]) . "<br>");
}
$chaine1 = $tableau[0] + $tableau[1] + $tableau[2] + $tableau[3] + $tableau[4];
echo ($chaine1);
echo ("<br>");
$chaine2 = $tableau[0] . $tableau[1] . $tableau[2] . $tableau[3] . $tableau[4];
echo ($chaine2);
echo ("<br>");
$variableTest = 1;
echo ($variableTest . "<br>");
$variableTest = "Bonjour php";
echo ($variableTest . "<br>");
echo ("Sous chaine de 2 caracteres commencant a la position 3 : " . substr($variableTest,3,2) . "<br>");
?>
• Comparer le code source et le résultat affiché par le navigateur :
A quoi sert la fonction gettype() ?
Est-ce que l’on met des variables du même type dans le tableau ? oui ou non
Est-ce qu’en C#, on aurait pu mettre des types différents dans un tableau ? oui ou non
Qu’affiche $chaine1 : ________ Qu’a fait le moteur PHP avec le + ? _______________________
Qu’affiche $chaine2 : ________ Qu’a fait le moteur PHP avec le . ? _______________________
$variableTest prend la valeur 1 puis la valeur "Bonjour php". Est-ce que cela serait possible en C# ?
Qu’affiche la fonction substr() : __________________
• Rajouter le lien suivant au bas de la page, avant la dernière balise ?> :
echo ("<a href='suite.php?nom=$VotreNom&prenom=$prenom'>Page suivante</a>");
Donner le nom des deux variables passées dans l’URL : ____________ et ____________
Donner les deux valeurs passées dans l’URL : ____________ et ____________
• Créer la page dont le nom est dans l’url, mettre les balises <HTML> et <BODY>, et un titre « SUITE » en <H1> centré.
• Dans cette page, afficher BONJOUR en HTML suivit de votre prénom et de votre nom, qui doivent provenir des variables passées par le lien de la page « decouverte.php » en méthode GET.
• Tester si cela fonctionne correctement. Vous devez avoir :
SUITE
Bonjour VotrePrénom VotreNom
• Notez ici l’url exacte de la page qui est affichée dans la barre du navigateur :
• Sous IE, allez dans le menu, faire Affichage / Source
Sous Mozilla, clic droit sur la page Code source de la page
Recopiez ici le code :
TRES IMPORTANT : Ce code est le code que reçoit le navigateur de la part du serveur Apache, le moteur PHP ayant construit le code HTML