Formulaires - Charlie-Soft

Transcription

Formulaires - Charlie-Soft
Utili ti d f
Utilisation des formulaires
l i
1
Principe
p
y Quand on veux récupérer des valeurs (nom, mot de passe ) le principe est toujours le même :
passe…), le principe est toujours le même :
y Une page de saisie (formulaires)
y
y
y
Zone de texte
Checkbox
Liste déroulante
y Un page de traitement des valeurs
y
y
y
Verification des valeurs
Enregistrement
Affichage (ou non) d’information
2
Transmettre les valeurs
y Il reste une question : comment passer les valeurs de la première page vers la seconde ?
y Exemple :
y Dans la page d’accueil, on demande le nom à l’utilisateur
D l d’
il d
d l à l’ ili
y Comment retrouver le nom dans les autres pages ?
3
Transmission des variables
y Utiliser l’adresse du site :
y http://tibo.lelore.free.fr/test.php?nom=titi&age=25
http://tibo lelore free fr/test php?nom=titi&age=25
Ad
Adresse du fichier php
d fi hi h
Valeurs et noms des variables
y Il est par exemple possible de faire des liens :
l
l
bl d f
d l
<a href="test.php?nom=Lelore&age=25">Lien
p p
g
vers Lelore</a>
/
<a href="test.php?nom=Dupond&age=45">Lien vers Dupond</a>
4
Transmission des variables
y Dans la page test.php, il est possible de récupérer les valeurs pour les tester, les afficher ou encore les utiliser valeurs pour les tester
les afficher ou encore les utiliser dans une fonction :
y sommaire($_GET[‘nom']);
y if($_GET[‘age']<18){
echo "il faut être majeur pour accéder à cette
section... ;
section...";
}
5
Exemple de page test.php
p
p g
p p
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
h l
<head>
<title>Titre de la page</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"/>
</head>
<body>
b d
<h1>Exemple de page PHP</h1>
Bonjour <?php print($_GET[‘nom‘]);?>, tu as <?php
print($ GET[‘age‘]);?> ans !<br/>
print($_GET[‘age‘]);?>
</body>
</html>
6
Saisir des valeurs
y C’est bien joli, mais comment demander des valeurs à l utilisateur ?
l’utilisateur ?
y Utiliser des formulaires :
<form action="cible.php" method="post">
<input type="text" name="prenom" /><br />
<select name="emploi">
<option value="1">enseignant</option>
<option value="2">étudiant</option>
<option value="3">ingénieur</option>
<option
option value
value="4">retraité</option>
4 retraité /option
<option value="5">autre</option>
</select>
<input type=
type="submit"
submit value=
value="Valider"
Valider />
</form>
7
Saisir des valeurs
y La balise form contient deux propriétés importantes :
y action
ti : désigne la page qui devra traiter les valeurs
dé i
l i d
t it l l
y
En général, c’est une page PHP…
y method : précise la manière d
: précise la manière d’envoyer les données :
envoyer les données :
y
y
post : incluse dans les données de la requête, les valeurs ne sont donc pas facilement visibles par l’utilisateur (à p
p
(
privilégier)
y Pour récupérer les valeurs, il faut utiliser $_POST['…']
get : elles sont mises dans l’adresse de la page : ll
d
l’ d
d l
(test.php?nom=titi&age=26)
y Pour récupérer les valeurs, il faut utiliser $_GET[
Pour récupérer les valeurs il faut utiliser $ GET['…']
]
8
Saisir des valeurs
y Les formulaires
y input
i
t peut être de type (entre autre) :
t êt d t ( t t ) y
Checkbox : case à cocher
y
File : choix d
choix d’un fichier
un fichier
y
Password : permet de mettre des * à chaque caractère saisi
y
Submit : c’est le bouton qui validera le formulaire
S
q
y select permet de faire une liste déroulante
y
y
Chaque choix est encadré de la balise q
<option>
p
La valeur envoyé à l’autre page est différente de la valeur affichée !
9
Résultat
y Quand l’utilisateur clique sur le bouton Valider :
y Le serveur change de page vers cible.php
L h
d ibl
h
y Dans la page cible.php, on récupère les valeurs des champs grâce à $ POST['
champs grâce à $_POST['...']
']
y
y
Par exemple, pour récupérer le prénom : $_POST['prenom']
En effet le code HTML était :
En effet, le code HTML était :
<input type="text" name="prenom" />
10
Les variables globales
g
y Problème :
y Comment utiliser une valeur dans toutes les pages ?
C
t tili l d t t l ?
y Solution
y Utiliser une variable globale
l
bl l b l
y Pas dépendant d’un formulaire
y Les variables de sessions !
11
Les variables globales
g
y Toutes les pages d’un utilisateur partagent la valeur
y Ell
Elles sont contenues dans un tableau particulier :
d bl
i li y $_SESSION
y Utilisation :
y Mettre session_start() au début de chaque fichier php
y Mettre des valeurs dans la variable globale
y
$_SESSION[‘pass’]="azerty";
y Récupérer les valeurs :
y echo $_SESSION[‘pass’];
12
Utilisation des sessions
y Concrètement, les sessions peuvent servir pour :
y Enregistrer un login / mot de passe E
i t l i / t d y
Permet de se souvenir du login du visiteur sur toutes les pages du site !
y Gérer un "panier"
y
y
y
Permet de sauvegarder les produits que commande le client, g
p
q
,
quelle que soit la page où il est.
Lorsqu'il valide sa commande, on récupère ces informations et on le fait payer.
l f it Attention, si l’utilisateur ferme le navigateur, il perd aussi les information… Penser à utiliser les cookies ou les bases de données
13
Sites utiles
y Pas le temps de tout présenter…
y http://fr.php.net/manual/fr/
htt //f h
t/
l/f /
y
manuel très complet
y http://g‐rossolini.developpez.com/tutoriels/web‐
http://g rossolini developpez com/tutoriels/web
debutant/
y
Vu d’ensemble de la création internet
Vu d
ensemble de la création internet
y http://www.lephpfacile.com/cours/
y
Cou s t ès co p ets su e
Cours très complets sur le PHP
14