index |
L'objectif de ce TD est de réaliser votre propre site commercial dynamique.
Avant toute chose vous devez avoir créé votre base de donnée, et choisi les produits mis en ventre sur votre site. Ce TD ne s'intéresse qu'à la réalisation des pages dynamiques du site.
Ce schéma présente les différentes étapes de traitement de l'information sur un site dynamique. Les trois blocs représentent les 3 modules essentiels d'un tel site.
Le navigateur internet permet d'interagir avec l'utilisateur, on y requeille les demandes et les informations fournies par l'utilisateur, et on y restitue le résultat du traitement sous forme de page HTML.
Le serveur PHP traite les demandes et les informations fournies par l'utilisateur, et éventuellement interagit avec la base de données SQL. C'est lui qui génère la page HTML de réponse à la fin du traitement.
Le serveur SQL stocke les données dans une base, et les restitue à la demande.
La réalisation d'un site dynamique nécessite donc la connaissance des trois langages associés à chacun des blocs : HTML, PHP et SQL.
La figure ci-dessus décrit l'architecture du site internet. Elle décrit les différentes pages du site et les liens de navigation entre ces pages. Eventuellement le lien comporte l'information qui doit être passée d'un page à une autre.
Le principe du site est le suivant est de stocker les informations sur le client qu'il achète ou non. On lui demande donc de répondre à un questionnaire avant de lui présenter la liste des produits. Ensuite si le client achète le produit, on retient le produit qu'il a choisi.
Bien sûr cette architecture n'est pas très réaliste, aucun site ne vous demande d'information avant d'acheter. Mais on peut imaginer une opération promotionnelle visant à récolter des informations pour une étude de marché (offres spéciales pour les clients qui acceptent de répondre au questionnaire par exemple). Ou bien que les informations sur le client sont disponibles par ailleurs (compte ouvert après une premier achat, carte de fidélité). Au final l'objectif ici est de savoir réaliser un site qui va remplir notre base de données.
Le principe de ces deux pages est de réaliser des pages HTML simples, avec des liens de navigation entre elles.
La page d'accueil doit contenir le nom du site, et une description générale des produits vendus sur le site.
La page "Qui sommes-nous ?" doit contenir les noms, prénoms, le groupe de TD et le Master suivi par les auteurs.
Un lien doit permettre d'aller d'une page à l'autre.
(Si vous avez besoin d'un rafraîchissement en HTML : Elements sur HTML)
Cette page doit être accessible depuis la page d'accueil, ajoutez y un lien.
Le questionnaire est géré par deux pages distinctes : une page d'affichage du questionnaire en HTML et une page de traitement en PHP.
La page HTML doit afficher un message commercial pour introduire le questionnaire (par ex. "afin de mieux vous servir, merci de nous fournir ces quelques renseignements"). Puis un formulaire permettant saisir les caractéristiques des clients (age, sexe, csp, styel).
La page PHP, appellée par le formulaire, doit permettre de stocker ces information dans la base SQL.
Une fois le traitement terminé, il faut rediriger vers la liste des produits, en n'oubliant pas de passer comme paramètre la référence du client, afin de pouvoir ensuite mentionner un éventuel achat.
Indications
header("location: produits.php?idClient=$idClient");
$idClient = mysql_insert_id();
Comme pour le questionnaire, l'achat est géré par deux pages, mais ce coup-ci elles sont toutes les deux en php.
La liste des produits doit être générée automatiquement en php, a partir de la lecture de la table produit.
Cette liste doit être présentée dans un formulaire, avec un bouton radio par produit, permettant de choisir le produit acheté, et deux boutons d'action, permettant d'acheter ou non.
La page de traitement de ce formulaire doit uniquement renvoyer vers la page d'acceuil si le client ne souhaite pas acheter. En cas d'achat il faut inscrire cet achat dans la base (UPDATE) et afficher une confirmation.
Indications
Vérifiez que chaque page fonctionne. Il est recommandé de tester les pages une par une. A chaque fois vérifiez que les modifications de la base de donnée se passe bien.
Indications
$idClient = $_GET['idClient'];
echo "<p>DEBUG: idClient = $idClient</p>";
$sql = "SELECT * FROM produits";
$resultat = mysql_query($sql)
if($resultat == 0) echo "Erreur dans la requete '$sql'";
Une fois qui tout marche bien, et seulement lorsque tout marche bien, vous pouvez améliorer le design du site. Par exemple vous pouvez ajouter un cadre spécifique à votre site, ou afficher des photos pour vos produits (indication: stockez le nom des photos dans la table des produits), etc.
Bien entendu cela ne doit pas altérer le fonctionnement de votre site !