Site de e-commerce Quels langages pour cela ? Le langage PHP L

1Programmation avancée
Systèmes d'informations
¾C'est un ensemble d'outils pour stocker / gérer / diffuser
des informations / des données
¾Le stockage : Bases de données + SGDBR
¾La gestion : Saisie, Mise à jour, Contrôle
¾La diffusion : Catalogue, Sites Web, Services spécifiques
Programmation avancée 2
Exemple : Site de e-commerce
¾Bases de données :
Articles en ventes
Clients + commandes / factures
¾Diffusion du catalogue sur le Web
Extraction et affichage des données
Outils de recherche
¾Un client passe commande :
Ajout de données dans la table "commandes"
Diffusion de la commande au service expédition
Suivi du paiement
Programmation avancée 3
Quels langages pour cela ?
¾L'utilisateur ne peut pas accéder directement aux BD
¾Il faut transiter par un serveur Web
ÖAffichage + formulaires
¾Le serveur accède aux données et déclenche des actions
ÖRequêtes sur le SGDBR
ÖAlertes au services d'expédition / de facturation
¾Plusieurs langages possibles coté serveur :
ÖPHP (Apache, ...)
ÖASP (IIS, ...)
ÖProgrammes CGI : C/C++, Perl, Python
Programmation avancée 4
Le langage PHP
¾Généralités
¾Liaison avec un serveur de base de données
¾Génération d'une page d’après une BD
¾Réception de données provenant d'un formulaire
¾Insertion de données reçues dans une BD
Programmation avancée 5
L'architecture Client/Serveur en PHP
¾Le client demande une URL classique :
Le serveur envoie un fichier HTML
¾Le client demande une URL contenant du PHP :
Le serveur exécute le script
Le serveur peut accéder à des fichiers, des BD
Le serveur envoie les résultats sous forme HTML
¾Conséquences
Öle client n'a pas à connaître PHP
Öle client ne voit pas les scripts PHP, mais leurs résultats
Programmation avancée 6
Insertion dans un document HTML
¾Le document HTML doit avoir l ’extension ".php"
et doit être ouvert via un serveur Web (http://…)
¾Pour insérer un script :
<? print("coucou"); ?>
¾ou
<?php
instruction1;
instruction2;
?>
Programmation avancée 7
Les variables
¾Les noms de variables commencent tous par "$"
¾Il existe 4 principaux types de variables :
integer (entiers) :
$i = 4;
float (réel = nombres à virgule flottante) :
$x = 4.2; $y = 1.035e-3;
string (chaînes de caractères) :
$nom = "Dupond";
array (tableaux)
Programmation avancée 8
Les tableaux
¾Ils sont définis de 2 façons :
d'un bloc :
$tab = array("Lundi","Mardi",…);
case par case (avec l'indice précis) :
$tab[0] = "Lundi";
$tab[3] = "Mardi";
comme résultat d'une fonction (ex : requête SQL)
¾La taille du tableau et la création des cases vides sont
gérées automatiquement
Programmation avancée 9
Lire les valeurs d'un tableau
¾Lire une seule case et placer sa valeur dans une variable :
$x = $tab[8];
¾Lire plusieurs cases et remplir une liste de variables :
$t = array("1","Dupond","Paris");
list($num,$nom) = $t;
// résultats
// $num = "1";
// $nom = "Dupond";
// la valeur "Paris" n'est pas lue
Programmation avancée 10
Définir une fonction
¾Mot clé "function" + nom des arguments + instructions :
function affiche($nom,$prénom) {
print("Nom = $nom<BR>");
print("Prénom = $prénom<BR>");
}
¾Appelle de la fonction avec des valeurs :
affiche("Dupond","Jean");
¾Produit le code HTML suivant :
Nom = Dupond<BR>Prénom = Jean<BR>
Programmation avancée 11
Structure d'un programme
¾Identique au langage Java / JavaScript / C :
conditionnelles simples :
if (condition) instruction;
alternatives :
if (condition) { instructions; }
else { instructions; };
boucles :
for ($i=6; $i<12; $i++) { ... };
while (conditions) { ... };
Programmation avancée 12
La diffusion d'information
¾Pour diffuser des données sur une page Web en PHP,
il faut :
se connecter à un serveur (PostgreSQL ici)
demander l'exécution d'une requête
afficher un entête
afficher les données :
Öboucle : pour chaque ligne
Ömise en forme HTML
afficher un pied de page
fermer la connexion
Programmation avancée 13
Accéder à un serveur PostgreSQL
¾Connexion à une base de donnée
$c = pg_connect("host=nom-du-serveur
dbname=nom-de-la-base
user=nom-de-login
password=mot-de-passe");
la variable $c contient un numéro de connexion
$c est nulle (booléen faux) si la connexion a échoué :
if (!$c) {
print("Erreur de connexion.");…
}
Programmation avancée 14
Exécuter une requête
¾On exécute une requête SQL à travers la connexion crée :
$result = pg_Exec($c,"requête SQL;");
$result est un tableau à deux dimensions contenant la
table résultant de la requête (éventuellement vide)
$result est nul si la requête a échoué :
if (!$result) {
print("Erreur dans la requête.");...
}
Programmation avancée 15
Exemple de requêtes
$c = pg_connect("host=iuthaprojet
dbname=biblio
user=biblio");
if (!$c) {
print("Echec de la connection");
exit;
}
$result = pg_exec($,
"SELECT titre,prix FROM livres;");
Programmation avancée 16
Afficher le résultat d'une requête
¾Il faut rechercher le nombre de lignes :
$nlignes = pg_numrows($result);
¾Il faut faire une boucle pour afficher chaque ligne :
for ($i=0;$i < $n;$i++) {
extraire les données de la ligne $i
produire le HTML pour la ligne $i}
¾Il faut extraire les données ligne par ligne :
list($case1,$case2,…,$caseN) =
pg_fetch_row($result,$i);
Programmation avancée 17
Exemple : affichage simple
$result = pg_exec($,
"SELECT titre,prix FROM livres;");
$nlignes = pg_numrows($result);
for ($i=0;$i<$nlignes;$i++) {
list($titre,$prix) =
pg_fetch_row($result,$i);
print("$titre $prix<BR>");
}
Programmation avancée 18
Exemple pour afficher une table
print("<TABLE>");
print("<TR><TH>ISBN</TH><TH>Prix</TH></TR
>");
for ($i=0;$i<$nlignes;$i++) {
list($titre,$prix) =
pg_fetch_row($result,$i);
print("<TR><TD>$titre</TD>");
print("<TD
ALIGN='RIGHT'>$prix</TD></TR>");
}
print("</TABLE>");
Programmation avancée 19
Recevoir des données sur le serveur
¾Envoi : créer un formulaire avec :
action = l'URL du fichier contenant le script PHP
méthode = POST (ou GET pour débugger)
nommer tous les éléments du formulaire à lire
donner des valeurs aux boutons radio et choix
¾Réception : dans le script PHP :
une variable est créée par élément (elle porte son nom)
pour un groupe de bouton radio, une liste de choix :
valeur de variable = "value" de l'élément choisi
Programmation avancée 20
Exemple de formulaire
<FORM ACTION="recept.php"METHOD="POST">
Nom : <INPUT TYPE="TEXT" NAME="nom">
<BR>Enfants :<BR>
<INPUT TYPE="RADIO" NAME="x" VALUE="0">
aucun<BR>
<INPUT TYPE="RADIO" NAME="x" VALUE="1">
1<BR>
<INPUT TYPE="RADIO" NAME="x" VALUE="2">
2<BR>
<INPUT TYPE="RADIO" NAME="x" VALUE="3">
plus
</FORM>
Programmation avancée 21
Exemple de réception : recept.php
<BODY>Bonjour
<? print($nom); ?>
<BR>Vous avez &nbsp;
<?php
switch ($x) {
case 0 : print("aucun enfant");
case 1 : print("1 enfant");
case 2 : print("2 enfants");
case 3 : print("3 enfants ou plus");
}
?>
</HTML>
Programmation avancée 22
Réception et insertion dans une BD
¾Connexion à la base de données
¾Exécution d'une requête de type "INSERT INTO" avec les
variables contenant les données du formulaires reçues
¾Affichage d'un message de confirmation
ou redirection vers une autre page du site
Programmation avancée 23
Exemple
<?php
$c = pg_connect("host=iuthaprojet
dbname=clients");
pg_exec($c,
"INSERT INTO clients VALUES (
$nom,$x);");
?>
<H3>Inscription effectuées</H3>
<A HREF="...">Retour à l'accueil</A>
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !