Cours CPTIC 158
Bases de données sur Internet
16 et 17 avril 2002

Récupération des données fournies par le formulaire

Les modifications à effectuer vont être répartie en deux phases, la première s'occupe d'insérer les données reçues dans la base, et la seconde, plus cosmétique, effectue un travail en amont, à savoir vérifier que l'utilisateur a bien fourni quelque chose.

  1. Modifications à effectuer dans confirmation.asp
  2. Modifications à effectuer dans soumettre.hml

1. Modifications à effectuer dans confirmation.asp

1.1 Insérer les lignes d'entête et supprimer le commentaire

--> la ligne <% option explicit %> doit être la première de la page ASP

<% option explicit %>
<!--#include virtual="/adovbs.inc"-->

1.2 Déclaration des variables

DIM ConnectStr
DIM Connexion
DIM RS
DIM Texte
DIM Reference
DIM Contact
DIM Email

1.3 Récupération des paramètres

Reference = Request.Form("Reference")
Texte = Request.Form("Texte")
Contact = Request.Form("Contact")
Email = Request.Form("Email")

1.4 Ouverture de la connexion et d'un RecordSet

ConnectStr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("..\bd1.mdb")
Set Connexion = Server.CreateObject("ADODB.Connection")
Connexion.Open ConnectStr

Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open "Citations", Connexion, , adLockOptimistic, adCmdTable

1.5 Insertion des données dans le RecordSet et mise à jour de celui-ci

RS.AddNew
RS("Texte") = Texte
RS("Reference") = Reference
RS("Contact") = Contact
RS("Email") = Email
RS.Update

1.6 Fermeture du RecordSet et de la Connexion

RS.Close
Set RS = Nothing

Connexion.Close
Set Connexion = Nothing

1.7 Afficher le résultat de la saisie pour l'utilisateur

Remplacer les commentaires par des commande d'affichage <%= NomDeLaVariable %>, avec les noms de variables idoines.

2. Modifications à effectuer dans soumettre.html

Cette partie est relativement cosmétique, et il ne faudrait la faire que si vous avez trop de temps...

L'idée est la suivante: il est parfos judicieux d'effectuer un contrôle de cohérence des données avant de les insérer dans une base. Il est parfaitement inutile de stoquer une citation vide. Cette tâche peut aussi bien être effectuée du côté serveur que du côté client.
pour éviter de surcharger inutilement le travail du serveur, le choix effectué ici sera donc un contrôle de cohérence du côté du client, à savoir :

Cette partie de code sera donc exécutée sur la machine de l'utilisateur, et non sur le serveur. Pour cette raison, le langage utilisé pur cette partie est Javascript et non VBScript. Il s'agit donc d'une page statique pour le serveur ( il n'a aucun travail à effectuer avant de la fournir au client) et dynamique pour le client, car le formulaire qui est rempli dans cette page n'est pas simplement renvoyé au serveur, il y a un contrôle des données avant l'envoi.

2.1 Déclaration de la fonction de validation

Ce code est insérer dans la partie HEAD de la page HTML, car elle de va pas être exécutée lors de son chargement, mais au moment où l'utilisateur clique sur le bouton Envoyer

<script><!--
function valider()
{
  submitOK = "True";
  if (document.formulaire.texte.value.length == 0)
  {
    alert("Si vous désirez soumettre une citation, il faut remplir celle-ci...");
    document.formulaire.citation.focus();
    submitOK = "False"
  }
  else if (document.formulaire.reference.value.length == 0)
  {
    alert("Veuillez fournir une référence à votre citation...");
    document.formulaire.reference.focus();
    submitOK = "False";
  }
  else if (document.formulaire.contact.value.length == 0)
  {
    alert("Veuillez fournir votre nom afin qu'on puisse vous contacter au cas ou...");
    document.formulaire.contact.focus();
    submitOK = "False";
  }
  else if ((document.formulaire.email.value.length > 0) && (document.formulaire.email.value.indexOf("@")==-1))
  {
    alert("Veuillez fournir une adresse e-mail valide");
    document.formulaire.email.focus();
    submitOK = "False";
  }
  if (submitOK=="False")
  {
    return false;
  }
}
--></script>

2.2 Appel de la fonction de validation

Il suffit d'ajouter dans la balise du formulaire un paramètre onsubmit pour exécuter le code ci-dessus au moment où l'utilisateur clique sur le bouton d'envoi.

onsubmit="return valider()"