Module I3 Introduction au PHP Chapitre 2 : Fichiers, formulaires

Transcription

Module I3 Introduction au PHP Chapitre 2 : Fichiers, formulaires
Module I3
Faire communiquer un script PHP avec son environnement
lecture et écriture dans des fichiers
affichage dans le navigateur
récupération de données depuis un formulaire
Introduction au PHP
Toute sortie vers le navigateur (echo, print, printf) est
interprétée comme du texte HTML
Chapitre 2 :
Fichiers, formulaires
Pas de fonction dattente de saisie au clavier comme en C
interactivité avec lutilisateur à laide des formulaires
2
1
"!! !! #!
"
!"
" !"
!
$
$! !
!
se la sortie html du
toujours par le c
$
$
! ! 3
4
!
(
(
!
'
$
$
&
%
" $
#
5
Exemple de lecture :
6
Fin de fichier :
<?php
$monfichier=fopen("monfichier.txt","r") ;
if ( !($monfichier)) {
print("Impossible d’ouvrir le fichier") ;
exit ;
}
$ligne = fgets($monfichier,255);
while ( !feof($monfichier) ) {
print "$ligne <BR>" ;
$ligne = fgets($monfichier,255);
}
fclose ($monfichier) ;
?>
booleén feof (int fichier):
renvoie TRUE (1) si la fin du fichier "fichier" a été atteinte
(une tentative de lecture a échouée), FALSE (0) sinon
Écrire dans un fichier :
int fwrite (int fichier, string chaine [, int length]):
int fputs (int fichier, string chaine [, int length]):
écrit le contenu de la chaîne "chaine" dans le fichier "fichier".
Si la longueur "length" est fournie, l'écriture s'arrêtera après
length octets, ou à la fin de la chaîne (le premier des deux)
7
8
Exemple décriture :
Fonction Explode :
<?
$monFichier = fopen("monfichier.txt","w") ;
if ( !($monfichier)) {
print(" Impossible de créer le fichier \n") ;
exit ;
}
manipuler des fichiers contenant sur chaque ligne des
champs séparés par un délimiteur (espace, tabulation, )
description :
array explode( Delimiteur, Ligne)
renvoie un tableau de chaînes de caractères
sous-chaînes de Ligne, séparées par Delimiteur
fputs($monfichier, "ligne 1") ;
fputs($monfichier, "ligne 2") ;
exemple :
fclose($monfichier) ;
?>
fichier etudiants.txt
Durand|Paul|18
Martin|Jean|21
…
9
Exemple dutilisation de explode :
10
Principe :
<?php
$fich_etud = fopen("etudiants.txt","w") ;
HTML permet la récupération de données dun formulaire
Champs positionnés entre les balises (!& et (*!&
zones de saisie de texte
liste déroulantes, cases à cocher, $ligne = fgets($fich_etud,255);
while ( !feof($fich_etud) ) {
$tab = explode("|",$ligne);
print "Nom : $tab[0]<br>";
print "Prénom : $tab[1]<br>";
print "Age : $tab[2]<br>";
$ligne = fgets($fich_etud,255);
}
PHP transforme tous les champs dun formulaire en
variables qui permettent den analyser la réponse
La page qui reçoit ces variables est celle qui est désignée
par l'attribut %$ de la balise (!&.
fclose ($fich_etud) ;
?>
11
12
Exemple :
Envoi des données :
(!%$',+
,"#' "&
)("'%"',,&
("'%"',",&
(*!&
Les boutons de validation dun formulaire sont définis par des
balises de la forme Lappui sur un bouton de validation provoque lenvoi des
données du formulaire vers la page cible et son chargement
fichier
resultat.php
Lattribut de la balise définit la méthode
denvoi des données du formulaire vers cette page cible
<?php
echo 'Valeur de $_GET[\'nom\'] : ';
echo $_GET['nom'] ;
?>
GET : passage par lURL du navigateur, les données
étant séparées par des ?
POST : passage par lintermédiaire du serveur, invisible
dans lURL du navigateur
13
Récupération des données :
14
Bouton submit :
Les données du formulaires sont accessibles dans la page php
cible dans le tableau associatif $_GET[] ou $_POST[]
2)%# #+1!.&) %/&+1::
/'+1:/:0
$HTTP_GET_VARS et $HTTP_GET_VARS pour PHP ver < 4.10
Chaque champ du formulaire produit une entrée dans le
le tableau $_GET[] (ou $_POST[]) dont la clé est le nom
de ce champ (attribut NAME)
cf exemple : $_GET['nom'] a pour valeur "Durand"
$_GET[''] vaut la valeur de lattribut VALUE
Lorsque lutilisateur appuie sur un bouton de type SUBMIT,
le navigateur envoie les données de tous les champs du
formulaire à son URL cible, y compris les données du
bouton SUBMIT lui-même
La valeur associée à une clé du tableau $_GET[] dépend
de la nature du champ correspondant du formulaire
cf exemple : $_GET['nom'] a pour valeur la chaine de
caractères saisie dans la zone de texte
15
16
Champ de saisie de texte :
Bôite de saisie de texte :
2)%# #+1 + %/&+1:!
:0
$_GET['txtSaisi'] vaut le texte (chaîne de caractère)
tapé par lutilisateur dans le champ de saisie (ici "Bonjour")
2 + /"+/1:. :
19379
19390
'
#*#
28 + /"+/0
2)%# #+1#/!!$",%/&+1:,#
:0
$_GET['. '] est la chaîne de caractères
correspondant au texte tapé dans la zone de saisie.
$_GET[',#
'] vaut le mot de passe tapé (chaîne)
on peut insérer un texte initial modifiable dans la boîte
entre les balises 2 + /"+/0et28 + /"+/0
17
18
Boutons radio :
Cases à cocher :
2)%# #+1"/,)$%/&+1:"6:/'+1:6:-*+-(+,0
,2)%# #+1"/,)$%/&+1:"6:/'+1:5:0
2)%# #+1"/,)$%/&+1:"6:/'+1:4:0
2)%# #+1-*+-(.$%/&+1:-
6:/'+1:6:0
,2)%# #+1-*+-(.$%/&+1:-
5:/'+1:5:0
2)%# #+1-*+-(.$%/&+1:-
4:/'+1:4:0
$_GET['"6'] vaut la valeur de lattribut VALUE du
bouton coché par lutilisateur (ici "1")
$_GET['Case1'] vaut la VALUE de la case C1, c.a.d "1"
$_GET['Case2'] nexiste pas
$_GET['Case3'] vaut la VALUE de la case C2, c.a.d "3"
le dernier bouton du même nom possédant lattribut CHECKED
est sélectionné par défaut.
les entrées dans le tableau $_GET[] ne sont crées que pour
les cases cochées.
19
20
Cases à cocher (2) :
Liste à choix unique :
2)%# #+1-*+-(.$%/&+1:-
:/'+1:6:0
,2)%# #+1-*+-(.$%/&+1:-
:/'+1:5:0
2)%# #+1-*+-(.$%/&+1:-
:/'+1:4:0
#!#
#!#!"
# # "
##"
##"
"
$_GET['Cases'] est un tableau des VALUE des cases
de lutilisateur parmi les champs OPTION de la liste.
$_GET['Liste1'] vaut la VALUE de lunique sélection de
lutilisateur parmi les champs OPTION de la liste (ici "2").
Ici, $_GET['Cases'] est le tableau ("1", "3")
on peut présélectionner une OPTION par lattribut SELECTED
quand lattribut NAME dun champ se termine par [], la
valeur associée est insérée dans un tableau.
si lattribut SIZE vaut 1 ou nest pas
présent on obtient une liste déroulante
21
Liste à choix multiple :
22
Champ caché :
2)%# #+1*),,+%%/&+1:-:/'+1::0
Champ invisible du formulaire, permet de transmettre une
valeur particulière à lURL cible (par exemple une variable)
# #
#!#!"
# # "
##"
##"
"
$_GET['-'] vaut la valeur de lattribut VALUE
on doit maintenir appuyée la touche CTRL ou MAJ pour
selectionner plusieurs choix
Bouton reset :
2)%# #+1"+!+ /'+1:"
:0
$_GET['Liste2'] est un tableau des VALUE des sélections
de lutilisateur parmi les champs OPTION de la liste.
Ici, $_GET['Liste2'] est le tableau ("1", "3")
Le navigateur ne charge pas la page cible mais remet le
formulaire à son état initial
on peut présélectionner des OPTION par lattribut SELECTED
23
24

Documents pareils