Introduction à PHP

Transcription

Introduction à PHP
Introduction à PHP
Formulaires HTML et PHP
IUT de Fontainebleau
11 mars 2014
Introduction à PHP
Formlaire et traitement
Eléments HTML
1
Formlaire et traitement
Passage des paramètres depuis un formulaire
Encodage des données
2
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Formulaire HTML
I
Echange de données entre le navigateur (client) et les pages
(serveur) via le web. A quelles fins ?
Créer un espace sécurisé.
Uploader des fichiers.
Administration du contenu d’un site.
Récupération d’information concernant un utilisateur, ...
I
En HTML, <form> et </form> déclare le début et la fin d’un
formulaire.
I
L’attribut action indique la page destinatrice des données saisies
après soumission.
<form action="TraiterFormulaire.php">
<!-le formulaire
-->
</form>
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Lorsqu’un formulaire est envoyé au serveur Web, toutes ses données
se retrouvent dans des superglobales. Il s’agit de tableaux associatifs
accessibles depuis une fonction ou une méthode de classe sans avoir
besoin de vous soucier de la portée des variables. Il en existe
beaucoup. on utilisera :
$_GET[]
$_POST[]
$_REQUEST[]
contient toutes les données envoyées via
l’URL (en GET)
contient les données envoyées via un formulaire en POST
est la fusion des deux premiers.
Récupération des donnéees
C’est la valeur de l’attribut name des éléments html du formulaire
qui sert de clés dans les tableaux précédents.
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Méthode POST
La méthode post permet de passer des variables saisies par
l’utilisateur à un script php, dans la corps de la requête http.
Un exemple de formulaire
<form method="post" action="enregistrement.php">
<fieldset>
<legend><b>Identite</b></legend>
<label>Nom</label> : <input type=text name="nom" />
<label>Prenom</label> : <input type=text name="prenom" />
<label>Email</label> : <input type=text name="email" />
</fieldset>
<input type="submit" name="accepter" value="OK" >
</form>
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
L’exemple affiche un formulaire simple dans le navigateur : trois
champs de saisie de texte.
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Lorsque l’utilisateur valide et envoie les données au serveur, les
variables du formulaire sont passées au script php destination au
moyen du tableau _POST.
<?php
// on recupere les valeurs
// du formulaire
$nom=$_POST[’nom’];
$prenom=$_POST[’prenom’];
$email=$_POST[’email’];
// on les traite
echo "<li>$nom</li>";
echo "<li>$prenom</li>";
echo "<li>$email</li>";
?>
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Remarque : la fonction extract permet de créer des variables à partir
des clés d’un tableau associatif. chaque case du tableau génére une
variable du nom de sa clé.
<?php
// on recupere les valeurs du formulaire
extract($_POST);
// on les traite
echo "<li>$nom</li>";
echo "<li>$prenom</li>";
echo "<li>$email</li>";
?>
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Méthode GET
Les données sont passées directement via l’URL (elles sont encodées).
I
On peut l’utiliser dynamiquement via un formulaire en précisant
la méthode GET.
I
Ou statiquement en formant soi-meme l’URL avec les variables.
$id=3;
echo "<a href=\"Traiter.php?action=buy&id=$id\">Acheter</a>";
I
ce qui donnera l’URL :
I
Les variables se récupérent à l’aide du tableau _GET
I
La syntaxe pour passer des arguments à une page est la suivante
mon_url_amoi?var1=valeur1&var2=valeur2 ...
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Encodage
L’attribut enctype de la balise form contrôle l’encodage des données.
Par défaut, les données issues d’un formulaire sont de "type"
application/x-www-form-urlencoded. Il s’agit d’une seule chaîne
de caractères de la forme
var1=valeur1&var2=valeur2
qui est url encodée :
I Les caractères non alphanumériques sont remplacés par %xx, ( xx
est le code ascii du caractère en hexadécimal)
I Les caractères ; / ? : @ & = + $ , sont reservés :
? : début de QUERY_STRING.
& : séparateur de champs.
= : séparation entre le champ et sa valeur.
I
Les espaces sont remplacés par des +.
Il existe d’autres encodages (notamment multipart/form-data).
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Quelle méthode utiliser ? peu importe, sauf.... On préfére la méthode
POST.
I
envoi de fichiers (pas le choix !)
I
envoi de données de taille importante (poids supérieur à 4ko)
I
envoi de données confidentielles. (elles passent en clair sur le
réseau néanmoins !)
La méthode GET peut être utiliser dans tous les autres cas.
I
On peut revenir en arrière avec le navigateur.
I
Mise en cache. (recherche sur un site, ....)
I
Utilisation statique pour passer directement un paramètre à un
script.
Introduction à PHP
Formlaire et traitement
Eléments HTML
Passage des paramètres depuis un formulaire
Encodage des données
Gestion d’un formulaire
1
Génération du premier formulaire.
2
Envoie des données.
3
Reception des données.
4
Vérification de la validité des champs.
5
Si OK, on traite les données (modification d’un bd, etc....)
6
Sinon, on regénére le formulaire, en y insérant les données valides
déjà saisies par l’utilisateur. (attribut value)
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
1
Formlaire et traitement
Passage des paramètres depuis un formulaire
Encodage des données
2
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
Textes
I
I
Champ texte : créer avec la balise <input> et l’attribut type
text.
Zone de texte (zone de texte sur plusieurs lignes) : créer avec la
balise <texarea>
<form method="post" action="enregistrement.php">
<fieldset>
<legend><b>Enregistrement</b></legend>
<label>Titre</label>
<input type="text" name="titre">
<label>Contenu</label>
<textarea rows="5" name="contenu"></textarea>
</fieldset>
<button type="submit" name="accepter">
ENVOYER
</button>
</form>
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
<?php
echo $_POST[’titre’]."<br />";
echo nl2br($_POST[’contenu’]);
?>
Notez bien la fonction nl2br qui permet de convertir les sauts de
lignes de la zone de texte en balise <br /> pour l’affichage HTML.
Remarques
I
champ texte qui permet de saisir un mot de passe : Il s’agit
toujours de la balise input avec l’attribut password
I
champ texte caché Il s’agit toujours de la balise input avec
l’attribut hidden
<input type="password" name="nom" value="" />
<input type="hidden" name="nom" value="" />
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
balise input avec l’attribut checkbox.
<form method="post" action="traitement.php">
<legend> Quel (s) langage (s) utilisez vous ?</legend>
<input type="checkbox"
name="langages[]" value="C"> C
<input type="checkbox"
name="langages[]" value="PHP"> PHP
<input type="checkbox"
name="langages[]" value="JS"> JS
<input type="checkbox"
name="langages[]" value="JAVA"> JAVA
<button type="submit">
Validez
</button>
</form>
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
<?php
$langages = $_POST[’langages’];
foreach ($langages as $unlangage)
echo (’La case ’ . $unlangage . ’a ete cochee <br>’);
?>
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
balise input avec l’attribut radio : un seul choix possible.
input radio
<form action="reponse.php" methode=post>
Qui etait Pythagore ?
<input type="radio" name="question1" value=1>
Un realisateur de film d’horreur.
<input type="radio" name="question1" value=2>
Un mathematicien grec.
<input type="radio" name="question1" value=3>
Un danseur mondain
<input type=submit value=valider>
</form>
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
Il existe d’autres valeurs pour l’attribut type de la balise input
I Boutons
reset qui vide tous les champs d’un formulaire.
submit pour envoyer les données d’un formulaire.
image pour créer un bouton de validation graphique.
I
Zone de données.
file pour soumettre un nom de fichier à uploader.
hidden pour envoyer une donnée cachée depuis un formulaire.
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
Balise select
<form action="traiter.php" method=post>
Quel est votre langage prefere ?
<select name="langage">
<option value=1>C</option>
<option value=2>PHP</option>
<option value=3>Bash</option>
<option value=4>Assembleur Mips</option>
</select>
<input type=submit value=Valider>
</form>
Un seul choix possible. On peut néanmoins, en rajoutant multiple
dans la balise, autorisé plusieurs choix.
Introduction à PHP
Formlaire et traitement
Eléments HTML
Texte
Cases à cocher
Listes
Upload de fichiers
<form enctype="multipart/form-data"
action="fileupload.php"
method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Transfere le fichier <input type="file" name="monfichier" />
<input type="submit" />
</form>
Le tableau _FILE contient un tableau pour chaque fichier transféré
(clé correspondant à l’attribut name) contenant :
I
tmp_name : le nom (et chemin) du fichier temporaire sous lequel
le fichier a été stocké.
I
name : le nom qu’avait le fichier dans l’espace de l’utilisateur
I
size : la taille du fichier en octets
I
type : le "MIME type" du fichier (ex : text/html, image/gif, etc.)
Introduction à PHP

Documents pareils