Vous êtes sur la page 1sur 29

Programmation web dynamique avec PHP

Atelier 3 Les Formulaires et laccs aux BDD

Pr. A. MESRAR --Cours PHP--

Formulaires
Principaux attributs dun formulaire
<FORM ACTION="script" METHOD="post" NAME ="nom_form">

ACTION: URL du script ou prog excuter


Chemin du script excuter sur les donnes du formulaire
ACTION= "chemin_script"

Adresse mail laquelle les donnes du formulaire seront envoys


ACTION="mailto : destinataire@serveur.com"

Formulaires
Principaux attributs dun formulaire <FORM ACTION="script" METHOD="post" NAME ="nom_form">

METHOD: mthode denvoi des donnes GET ou POST


GET : donnes du form envoyes avec lURL du script

(limite) POST: donnes du form envoyes sparment de lURL (meilleure)

NAME

: nom du formulaire
4

Rcupration des paramtres


Les paramtres sont rcuprs dans un tableau :
$_POST["nom_champs"] si la mthode denvoi est POST $_GET["nom_champs"] si la mthode denvoi est GET

Exemple
Dans le formulaire <input name="nom" > Dans le script, cet lment est rcupr selon la mthode denvoi

par :
$_POST["nom"] $_GET["nom"]

Rcupration des paramtres

Zone de saisie, bouton radio et zone de texte


Llment est rcupr par son nom

$_POST["nom_champs"] ou $_GET ["nom_champs"]

Cases cocher
Chaque lment a un nom diffrent Seuls les lments cochs seront envoys

Rcupration des paramtres

Liste de slection
A choix unique : de la mme faon que la zone de saisie
A choix multiple :

Le nom de llment dans le formulaire doit tre suivi des [ ]

Dans le script PHP la liste est rcupre dans un tableau selon la mthode

:
$tb = $_POST["nom_list_sel"] $tb = $_GET["nom_list_sel"]

Traitement du formulaire

Du code PHP : tout est permis


Calcul Transformation

Manipulation des fichiers


Accs aux BD

PHP et MySQL

PHP et Bases de Donnes

PHP interagit avec des bases de donnes pour produire des pages web dynamiques PHP : l'interfaage avec plusieurs SGBDs

Access DB2 MySQL Oracle SQL server ...

MySQL reste le plus utilis avec PHP

10

PHP et MySQL : Requtes SQL

Cration/suppression et modification des tables


CREATE, DROP, ALTER

Slection/Ajout/modification et suppression des donnes SELECT, INSERT, UPDATE, DELETE

11

Scnario dinteraction entre PHP et MySQL

Etablissement de Connexion MySQL


$lien_db = mysql_connect (serveur, login, passwd)

Slection d une BD
mysql_select_db(base)

Excution dune requte et renvoi du rsultat


$resultat = mysql_query ($requete)

Formatage du rsultat sous forme dobjet


mysql_fetch_array ($resultat)

Fermeture de connexion
mysql_close($lien_db)

12

PHP et MySQL Fonctions dexploitation du rsultat

Une seule ligne dans le rsultat


mysql_fetch_row($resultat)
retourne une ligne de rsultat sous forme de tableau indic

mysql_fetch_array($resultat)
retourne une ligne de rsultat sous forme de tableau associatif

13

Exemple de script PHP : interrogation de BD


Exemple 1 <?php $liendb = mysql_connect("localhost","root",""); mysql_select_db("BD", $liendb ); $sql = "SELECT nom, prenom FROM Etudiant where CNE = 99"; $resultat = mysql_query($sql, $liendb ); $eleve = mysql_fetch_array($resultat); $nom = $eleve["nom"]; $prenom = $eleve["prenom"]; echo "$nom <br> $prenom"; mysql_close($liendb); ?>
14

PHP et MySQL Fonctions dexploitation du rsultat

Plusieurs lignes dans le rsultat


mysql_num_rows($resultat) retourne le nombre de lignes du rsultat de la requte Plusieurs appels des fonctions mysql_fetch_row($resultat) mysql_fetch_array($resultat)
A chaque appel le pointeur du rsultat passe la ligne

suivante

15

Exemples de plusieurs lignes dans le rsultat (1/2)


Exemple2 <?php $liendb = mysql_connect("localhost","Dupont","toto"); mysql_select_db("BD", $liendb ); $sql = "SELECT nom, prenom FROM Etudiant"; $resultat = mysql_query($sql, $liendb ); while( $eleve = mysql_fetch_array($resultat)) { $nom = $eleve["nom"]; $prenom = $eleve["prenom"]; echo "$nom $prenom <br>"; } mysql_close($liendb); ?>
16

Exemples de plusieurs lignes dans le rsultat (2/2)


<?php $liendb = mysql_connect("localhost","Dupont","toto"); mysql_select_db("BD", $liendb ); $sql = "SELECT nom, prenom FROM Etudiant; $resultat = mysql_query($sql, $liendb ); $n = mysql_num_rows($resultat); for($i=0;$i<$n;$i++) { $eleve = mysql_fetch_array($resultat); $nom = $eleve["nom"]; $prenom = $eleve["prenom"]; echo "$nom $prenom <br>"; } mysql_close($liendb); ?>
17

Complment de cours Les Fichiers

18

Fichiers

Objectifs
Stockage permanent des donnes chez le serveur

Accs ces donnes nimporte quel moment

Modifier ou supprimer ces donnes

19

Fichiers

Utilisation des fichiers


Stockage des donnes de petite taille (ne

ncessitant pas une BD)


Template ou fichier modle
Gnrer une page HTML partir dun fichier modle

Utilisation conjointe avec les BDs


Cache

20

Fichiers

Ouverture dun fichier


Indispensable avant toute utilisation du fichier
Notation

$fd = fopen(nom_fichier,mode);
nom_fichier : nom du fichier local ou une URL(fichier distant) mode : mode douverture du fichier $fd : identificateur qui sera utilis pour exploiter le fichier

21

Fichiers

Modes douverture dun fichier


a : ajout la fin du fichier sil existe, sinon le fichier est cr a+ : lecture et ajout la fin du fichier sil existe, sinon le fichier

est cr
r

: mode lecture uniquement

r+ : lecture et criture au dbut du fichier w : criture seule, cration du fichier ou crasement de son

contenu sil existe


w+ : criture et lecture, cration du fichier ou crasement de son

contenu sil existe


22

Fichiers

Lecture dun fichier


fread($fd,n);
Lit n caractres du fichier ou ce qui reste si la fin du fichier est

atteinte fgets($fd,[n]);
Lit n caractres si n est prsent Lit tous les caractres jusqu la fin de ligne ou la fin du fichier si n

est absent

fgetc($fd);
Lit un seul caractre du fichier

23

Fichiers

Ecriture dans un fichier


fwrite($fd,$chaine,[n]);
Ecrit n caractres de $chaine dans le fichier si n est

prsent
Ecrit toute la chane $chaine dans le fichier si n est

absent
fputs($fd,$chaine,[n]);
Mme chose que fwrite

24

Fichiers

Dplacement dans un fichier


rewind($fd);
Se positionner au dbut dun fichier

fseek($fd,n,[ref]);
Se dplacer de n caractres partir dune position donne
SEEK_SET partir du dbut (par dfaut) SEEK_CUR partir de la position courante

SEEK_END partir de la fin

25

Fichiers

Suppression, renommage et copie d un fichier


unlink(nom_fichier);
Supprime le fichier

rename(ancien_nom,nouveau_nom);
Renomme le fichier ancien_nom par nouveau_nom

copy(source,destination)
Copie le fichier source dans le fichier destination

26

Fichiers

Test de la fin d un fichier


feof($fd);
Teste si la fin du fichier est atteinte

Taille dun fichier


filesize(nom_fichier);
Retourne le nombre de caractres contenus dans le

fichier

28

Fichiers

Fermeture d un fichier

fclose($fd);
Ferme le fichier la fin de son utilisation

29

Vous aimerez peut-être aussi