php get

Transcription

php get
M1202 Algorithmique et
programmation
PHP par l'exemple - 3
Jérôme Landré – [email protected]
bureau C203 (GMP) – bureau H110 (MMI)
DUT Métiers du Multimédia et de l'Internet
I.U.T. de Troyes
Université de Reims Champagne-Ardenne
Plan
●
I – Passer des données de page en page avec
PHP
●
II – Formulaires HTML
●
III – Traitement des formulaires HTML en PHP
●
IV – Sessions en PHP
●
V - Tableaux en PHP
●
–
a) Tableaux indexés
–
b) Tableaux associatifs
VI – Appel de fonctions en PHP
I – Passer des données
de page en page avec PHP
3
Passage de données en PHP
●
●
PHP permet de faire passer des informations
entre les différentes pages web d'un site
Pour cela, PHP fournit deux manières de
procéder :
–
Les formulaires HTML
–
Les sessions
4
II – Formulaires HTML
5
Formulaires HTML
●
Les formulaires HTML permettent de demander
des informations aux utilisateurs
6
La balise <form>
●
●
●
●
La balise <form> permet de déclarer un
formulaire contenant des champs de
formulaires
Il y a deux façons d'utiliser les formulaires
HTML :
–
La méthode GET
–
La méthode POST
Un formulaire contient OBLIGATOIREMENT un
bouton de validation (submit)
La balise <form> possède deux propriétés
(attributs) method et action
7
Formulaire en méthode GET
●
Exemple :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8"/>
</head>
<body>
<div>Informations personnelles</div>
<form method="GET" action="traite_form_get.php">
Genre : <select name="genre_u">
<option value="M">M.</option>
<option value="F">Mme</option>
</select><br/>
Nom : <input type="text" name="nom_u" /><br/>
Prénom : <input type="text" name="prenom_u" /><br/>
age : <input type="text" name="age_u" /><br/>
login : <input type="text" name="login_u" /><br/>
mdp : <input type="password" name="password_u" /><br/>
<input type="submit" name="valider" />
</form>
</body>
</html>
8
Formulaire en méthode GET
●
●
Ce qui donne :
Quand on appuie sur le bouton valider, on
envoie les données du formulaire à la page
spécifiée par action
9
Formulaire en méthode GET
●
Dans l'URI, la chaîne passée à la page de
traitement des données est :
http://195.83.128.55/~jlandre/traite_form.php?
genre_u=M&nom_u=LANDRE&prenom_u=Jérôme&age_u=41&
login_u=jlandre&password_u=toto&valider=Valider
●
En méthode GET, les données de formulaires
passent par l'URI !
10
Formulaire en méthode POST
●
Exemple :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8"/>
</head>
<body>
<div>Informations personnelles</div>
<form method="POST" action="traite_form_post.php">
Genre : <select name="genre_u">
<option value="M">M.</option>
<option value="F">Mme</option>
</select><br/>
Nom : <input type="text" name="nom_u" /><br/>
Prénom : <input type="text" name="prenom_u" /><br/>
age : <input type="text" name="age_u" /><br/>
login : <input type="text" name="login_u" /><br/>
mdp : <input type="password" name="password_u" /><br/>
<input type="submit" name="valider" />
</form>
</body>
</html>
11
Formulaire en méthode POST
●
●
Ce qui donne :
Quand on appuie sur le bouton valider, on
envoie les données du formulaire à la page
spécifiée par action
12
Formulaire en méthode POST
●
Dans l'URI, la chaîne passée à la page de
traitement des données est :
http://195.83.128.55/~jlandre/traite_form.php
●
En méthode POST, les données de formulaires
sont invisibles à l'utilisateur (elles passent par le
protocole http)
13
III- Traitement des formulaires en PHP
14
Traitement des données en PHP
●
●
●
PHP permet de traiter les données de
formulaires dans la page de traitement
spécifiée dans l'attribut action du formulaire
Pour cela, PHP fournit deux tableaux
associatifs (on verra plus tard de quoi il s'agit) :
–
$_GET pour les données passées en méthode GET
–
$_POST pour les données passées en méthode
POST
Pour récupérer les valeurs des données, on
utilise tout simplement le nom de la variable
(attribut name en HTML) dans le tableau
associatif $_GET ou $_POST
15
Traitement des données en PHP
●
Exemple en méthode GET :
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"/></head>
<body>
<div>Informations personnelles</div>
<form method="GET" action="traite_form_get.php">
Nom : <input type="text" name="nom_u" /><br/>
Prénom : <input type="text" name="prenom_u" /><br/>
<input type="submit" name="valider" />
</form>
</body>
</html>
<?php
$nom=$_GET['nom_u'];
echo '</p>Votre nom est : '.$nom.'</p>'."\n";
$prenom=$_GET['prenom_u'];
echo '</p>Votre prénom est : '.$prenom.'</p>'."\n";
?>
16
Traitement des données en PHP
●
Ce qui donne :
17
Traitement des données en PHP
●
Exemple en méthode POST :
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"/></head>
<body>
<div>Informations personnelles</div>
<form method="POST" action="traite_form_post.php">
Nom : <input type="text" name="nom_u" /><br/>
Prénom : <input type="text" name="prenom_u" /><br/>
<input type="submit" name="valider" />
</form>
</body>
</html>
<?php
$nom=$_POST['nom_u'];
echo '</p>Votre nom est : '.$nom.'</p>'."\n";
$prenom=$_POST['prenom_u'];
echo '</p>Votre prénom est : '.$prenom.'</p>'."\n";
?>
18
Traitement des données en PHP
●
Ce qui donne :
19
IV- Sessions en PHP
20
Sessions en PHP
●
●
●
●
Une autre façon de passer des variables entre
des pages est d'utiliser les sessions PHP
Une session permet de stocker sur le serveur
des données dans des variables qui ne peuvent
être affichées/modifiées qu'en PHP
Pour démarrer une session, on utilise la
fonction « session_start(); » en premier dans le
fichier PHP, avant même le début de la page !
Une fois la session lancée, on utilise le tableau
associatif $_SESSION[""] pour lire et écrire des
données qui seront stockées de page en page
21
Sessions en PHP
●
●
Page 1 :
<?php
session_start();
$_SESSION["utilisateur"]= "jlandre";
?>
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"/></head>
<body>
<p>Bienvenue sur ma première page. Voici
un lien vers la <a href="page2.php">seconde</a>
page.</p>
</body>
</html>
Page 2 :
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"/></head>
<body>
<p>Bienvenue <?php
echo $_SESSION["utilisateur"]; ?>.</p>
<p><a href="page3.php">page 3</a></p>
</body>
</html>
22
Sessions en PHP
●
Page 3 :
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"/></head>
<body>
<p>Bienvenue sur la page 3, vous êtes
l'utilisateur
<?php echo $_SESSION["utilisateur"]; ?>.
</p>
</body>
</html>
23
Sessions en PHP
●
Ce qui donne :
24
V-a) Tableaux indexés en PHP
25
Tableaux indexés en PHP
●
Les tableaux sont une structure de données qui
permet de stocker une suite de valeurs en
mémoire sous un seul nom, chaque valeur est
repérée par un numéro
0
1
2
3
4
5
6
12
8,5
11
3
17,5
14
9
$tabnotes[]
●
●
La taille t du tableau donne son nombre
d'éléments
Les indices de tableau vont de 0 à t-1
26
Création de tableaux en PHP
●
Exemple :
<?php
// Créer un tableau vide
$tabNotes = array();
// Ajouter de nouvelles valeurs à un tableau
$tabNotes[] = 12.5;
$tabNotes[] = 9;
// Afficher les valeurs
echo 'La valeur à l'indice 0 est : '.$tabNotes[0];
echo 'La valeur à l'indice 1 est : '.$tabNotes[1];
// Ajouter une autre note
$tabNotes[] = 11;
?>
// Changer une note puis afficher la nouvelle valeur
$tabNotes[1] = 8;
echo 'La valeur à l'indice 1 est : '.$tabNotes[1];
27
Création de tableaux en PHP
●
Exemple :
<?php
// Créer un tableau rempli
$tabNotes = array(12.5, 9, 11);
// Ajouter de nouvelles valeurs à un tableau
$tabNotes[] = 7;
$tabNotes[] = 12.5;
// Calculer la moyenne
$somme = $tabNotes[0] + $tabNotes[1] + $tabNotes[2] +
$tabNotes[3] + $tabNotes[4];
echo 'La somme vaut : '.$somme;
$moyenne = $somme/5;
echo 'La moyenne vaut : '.$moyenne;
?>
28
Parcours de tableaux en PHP
●
La taille du tableau $tab est donnée par la
fonction count($tab) :
<?php
// Créer un tableau rempli
$tabNotes = array(12.5, 9, 11, 7, 12.5);
$somme=0;
// Parcourir un tableau
for ($i=0; $i<count($tabNotes); $i++) {
$somme=$somme+tabNotes[$i] ;
}
// Calculer la moyenne
$moyenne = $somme/count($tabNotes);
echo '<p>La moyenne vaut : '.$moyenne.'</p>'."\n";
?>
29
V-b) Tableaux associatifs en PHP
30
Tableaux associatifs en PHP
●
●
<
Un tableau associatif en PHP est un tableau
dont les indices ne sont pas des nombres, mais
des chaînes de caractères
Un tableau associatif permet donc d'associer un
nom à une valeur dans un tableau
<?php
// Créer un tableau associatif rempli
$tabAssoNotes = array( "matiere" => "m1202", "note1" =>
12, "note2" => 7,
"note3" => 11.5 );
// Afficher les valeurs
echo '<p>'.$tabAssoNotes["matiere"].' : '.
$tabAssoNotes["note1"].', '.$tabAssoNotes["note2"].', '.
$tabAssoNotes["note3"].'</p>'."\n";
?>
31
Tableaux associatifs en PHP
●
Ce qui donne :
32
Parcours de tableaux associatifs
●
Instruction foreach :
<?php
// Créer un tableau associatif rempli
$tabAssoNotes = array( "matiere" => "m1202", "note1" =>
12, "note2" => 7,
"note3" => 11.5 );
echo '<p>';
// Afficher les valeurs
foreach ($tabAssoNotes as $cle => $valeur) {
echo $cle.' : '.$valeur.'<br />'."\n";
}
echo '</p>';
?>
33
Parcours de tableaux associatifs
●
Ce qui donne :
34
VI- Appels de fonctions en PHP
35
Les fonctions en PHP
●
●
●
Les fonctions sont des blocs de code PHP
réunis sous un nom (le nom de la fonction) qui
peuvent être appelés à n'importe quel endroit
d'un programme PHP (rupture de séquence)
Les fonctions peuvent ou non recevoir des
paramètres
Les fonctions peuvent ou non renvoyer un
résultat
<?php
// Appel d'une fonction sans paramètre
phpinfo();
?>
36
Les fonctions en PHP
●
Ce qui donne :
37
Les fonctions en PHP
●
●
●
●
●
Dans un programme PHP, on reconnaît les
fonctions à la parenthèse ouvrante qui suit leur
nom
Une fonction qui ne renvoie rien est appelée une
procédure
On peut affecter à une variable le résultat d'une
fonction (impossible avec une procédure)
Il existe sous PHP des centaines de fonctions très
utiles déjà incluses avec le langage
Les fonctions sont en général spécialisées :
fonctions sur les dates, sur les chaînes de
caractères, sur les tableaux...
38
Quelques fonctions utiles
●
PHP propose de très nombreuses fonctions sur les
dates http://fr2.php.net/manual/fr/function.date.php :
<?php
// Récupérer la date d'aujourd'hui
$maDate = date('Y-m-d H:i:s'); // $maDate est une chaîne de
caractères
echo '<p>La date actuelle est : '.$maDate.'</p>';
$maDateFormatSQL = date('Y-m-d', strtotime($maDate));
echo '<p>Au format SQL : '.$maDateFormatSQL.'</p>';
$maDateFrancaise = date('d/m/Y', strtotime($maDate));
echo '<p>Au format Fran&ccedil;ais : '.$maDateFrancaise.'</p>';
?>
●
Il est facile de passer d'un format date français à un
format date MySQL et vice versa
39
Les fonctions en PHP
●
Ce qui donne :
40
Avez-vous des questions ?
41