WikiBtsSio

142sPpe21tsioCTpLangagePhp3Me

Le langage P.H.P. 3



Exercice N°4 - création de fonctions

En PHP, tout est déclaré par le mot function, que cela soit une fonction ou une procédure.
Rappelez les différences entre une fonction et une procédure.

  • Si on souhaite une fonction, le sous-programme comportera le mot return, ce n'est pas le cas pour la procédure,
  • Le type de retour n’est pas à spécifier,
  • Une fonction peut retourner un tableau,
  • Elles peuvent être écrites dans la page où elle est appelée, ou comme souvent dans une page qui les regroupent.

PHP supporte les fonctions à nombre de paramètre variable, il n'est pas nécessaire de noter leur type.

<?
function Nom_De_La_Fonction($para1$para2, ...) 
{
    
//liste d'instructions
    
return valeur_ou_variable;  // return optionnel si procédure
}
?>


Les paramètres sont facultatifs, mais s'il n'y a pas de paramètre, les parenthèses doivent rester présentes.

Vous pouvez définir comme en C# des valeurs par défaut pour les arguments de type scalaire (int, float, boolean, string).

<?php
function servir_apero ($para "jus d’orange") {
   return 
"Servir un verre de " $para "<br>";
}

//appel
echo servir_apero();
echo 
servir_apero("d’eau");
?>




Exercice - fonction table de multiplication


➢ Créer une page nommée « inc_fonctions.php » qui contiendra uniquement des fonctions.
Pour l’instant il ne contient que le code suivant que vous devez recopier :

<?php
/**
 * Fichier qui regroupe les fonctions
 * @author votre nom
*/

/**
 * Affiche la table de multiplication
* @param $n La valeur de la table à afficher, valeur 1 par défaut
*/
function Multiplication($n=1)
{
    for (
$i=1$i<=10$i++)
        echo 
$i ." * " $n " = " .$i $n."<br>";
}
?>


Ce fichier sera inclus dans les pages à l’aide de la fonction php qui permet d’inclure une page

Exemple : include("nom_page.php") ;

➢ table.php

  • • Créer une page « table.php ».
  • • Dans cette page, mettre les balises <HTML> et <BODY> et un titre «TABLE DE MULTIPLICATION» en <H1> centré
  • • Ensuite, afficher BONJOUR en HTML suivit de votre prénom et de votre nom
  • • Ouvrir les balises PHP
  • • Inclure le fichier de fonctions tout en haut de votre code : include ("inc_fonctions.php") ;
  • • Appeler la fonction « Multiplication() » et regarder le résultat.

Quelle table est affichée ? _ Pourquoi ?

  • • Mettre le chiffre 5 en paramètre de la fonction

Quelle table est affichée ? _


➢ inc_fonctions.php

  • • Dans cette page, créer une fonction « MultiplicationTableau($n=1) » qui affiche la table de multiplication dans un tableau de bordure 1
  • • L’appeler dans la page « table.php ».
  • • Ecrire une fonction appelée « Produit », qui prend en paramètre deux entiers et retourne le produit des 2 nombres. L’appeler une fois avec 3 et 9, une autre fois avec 5 et 3.


Fournir le code final de la page table.php
Appel de la fonction multiplication
  • 1 * 5 = 5
  • 2 * 5 = 10
  • 3 * 5 = 15
  • 4 * 5 = 20
  • 5 * 5 = 25
  • 6 * 5 = 30
  • 7 * 5 = 35
  • 8 * 5 = 40
  • 9 * 5 = 45
  • 10 * 5 = 50

tableau


APPEL DE LA FONCTION Produit : 27

APPEL DE LA FONCTION Produit : 15


Exercice N°5 L’identification.


  • ➢ formulaireNom.php

  • • Créez une page « formulaireNom.php » qui va vous demander de saisir vos nom et prénom. La page peut avoir l’extension .php même si pour l’instant elle ne contient que du code HTML.

martin claire

➢ traitementNom.php : contrôle de saisie

  • • Lorsque vous validerez le formulaire, vous devez arriver sur la page « traitementNom.php » qui va afficher « Bonjour Claire Martin ».
  • • Dans un deuxième temps on va faire un contrôle de saisie pour vérifier que le nom et le prénom sont saisis. Ce contrôle peut se faire de deux manières :
  • en Javascript : le traitement sera réalisé sur le navigateur du client. Cette solution sera étudiée plus tard.
  • en PHP : le raitement est réalisé sur le serveur. Nous allons étudier cette solution.

  • o si jamais on valide le formulaire sans avoir rien rempli, la page effectuera une redirection vers « formulaireNom.php » en passant une variable dans l’url de redirection,
  • o sinon elle affiche le message « Bonjours Claire Matin »

Il faut donc vérifier sur la page « traitementNom.php » que les variables nom et prenom ne sont pas égales à « rien ». Si c’est le cas, on redirige l’utilisateur vers le formulaire en passant une variable dans l’url. Cette variable servira à afficher un message sur la page redirigée.
  • Pour vérifier si les champs sont vides :

<?
if( $_POST['nom']== "" || $_POST['prenom']== "" )
        
header("location:formulaireNom.php?erreur=champvide");   
   else    
        
//on affiche les variables 
                    
nom de variable passée par l’url    valeur
?>

-- erreur est le nom de la variable
-- champvide est sa valeur


- On aurait pu réaliser le test inverse s’ils ne sont pas vides :

<?
if( $_POST['nom']!= "" && $_POST['prenom']!= "" )
        
//on affiche les variables     
else    
    
header("location:formulaireNom.php?erreur=champvide");   
?>


- Ou on aurait pu utiliser une fonction native php :

<?
if( !empty($_POST['nom']) &&  !empty($_POST['prenom']) )
        
//on affiche les variables     
else    
    
header("location:formulaireNom.php?erreur=champvide");   
?>


Remarque : ne pas utiliser if (isset($_POST[‘prenom’]])) puisque la variable est créée avec une valeur vide.


  • ➢ formulaireNom.php : affichage du message d’erreur

Le message d’erreur sera affiché au-dessus du formulaire dans le cas où l’utilisateur a appuyé sur le bouton « Envoyer » sans rien avoir saisi. Pour cela il faut effectuer un test sur l’existence de la variable « erreur ». En effet, cette variable existe seulement si la redirection a été effectuée à partir de la page « traitementNom.php » puisqu’elle était passée par l’URL de redirection : « location:formulaireNom.php?erreur=champvide »

erreur


  • • Pour afficher un message d’erreur il faut vérifier 2 éléments sur la variable « erreur » :
    • o Premièrement vérifier si elle existe grâce à la fonction isset().
    • o Deuxièmement si elle existe, il faut vérifier que si elle est égale à « champvide » (la valeur passée par l’url), dans ce cas on affiche le message d’erreur en rouge.


La fonction isset($nomVariable) retourne « VRAI » si la variable en paramètre existe, « FAUX » sinon.
Il faut faire ce test car si on fait directement le test sur la valeur de la variable, cela génèrera un message d’erreur.
Car arrivé sur la page le moteur va chercher une variable qui n’existe pas.

Exemple :


<?
if ( isset($_GET["message"]) )     //cette fonction renvoie VRAI si la variable message existe
{   
          
// vérifier si la variable vaut « champvide » et afficher le message
}
?>



➢ formulaireNom.php : boutons radio

• Rajouter dans le formulaire 2 boutons radio.
Ils auront la même propriété name
  • o name= classe

boton-radio

➢ traitementNom.php : redirection

• Cette page ne va plus faire aucun affichage, mettre en commentaire la phrase « Bonjour nom prenom »
- Dans le cas où l’utilisateur à cocher SLAM, il est redirigé vers la page « SLAM.php »
- Dans le cas où l’utilisateur à cocher SISR, il est redirigé vers la page « SISR.php »

• Contrainte : dans les pages « SLAM.php » et « SISR.php », il faut
- afficher le prénom qui a été saisi dans le formulaire, qui doit être passé par l’URL de redirection de la page « traitementNom.php »
- afficher le nom qui a été saisi dans le formulaire, qui doit être mis en session dans la page « traitementNom.php »

• Mettre sur chacune des pages un lien pour retourner à la page d’accueil.

SLAM.php
ACCUEIL SLAM
Bonjour Truc Muche
Retour à la page d'accueil

SISR.php
ACCUEIL SISR
Bonjour Truc MachinChose
Retour à la page d'accueil



Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]