Noms de champ et de variables

Présentation à faire...

 

Base de données MySQL

Soit une base de données avec une table, toute simple servant pour l'exemple, telle que ci-dessous avec les champs suivants :
idcli (clef primaire auto_increment), nom, prenom, dnaiss, telm et mail.


mysql> describe gc_Clients;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| idcli  | int(11)     | NO   | PRI | NULL    | auto_increment |
| nom    | varchar(25) | NO   |     | NULL    |                |
| prenom | varchar(25) | NO   |     | NULL    |                |
| dnaiss | date        | NO   |     | NULL    |                |
| telm   | varchar(15) | NO   |     | NULL    |                |
| mail   | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

mysql> select * from gc_Clients;
+-------+---------+--------------+------------+----------------+--------------------------+
| idcli | nom     | prenom       | dnaiss     | telm           | mail                     |
+-------+---------+--------------+------------+----------------+--------------------------+
|     1 | DUPONT  | Marie-Claude | 1985-07-18 | 06 85 42 37 19 | mclaude.dupont@gmail.com |
|     2 | CASERTA | Vittorio     | 1946-11-02 | 06 52 39 17 46 | vcaserta@yahoo.fr        |
+-------+---------+--------------+------------+----------------+--------------------------+
2 rows in set (0.01 sec)

 

HTML

Une page web (HTML ou PHP) sera réalisée et contiendra, tel ci-dessous, un formulaire destiné à saisir de nouveaux enregistrements dans cette table. Ce formulaire présentera donc des zones de saisie correspondant aux champs de la table, à l'exception du champ 'idcli' puisque, auto_incrément, il sera inséré automatiquement avec la bonne valeur lors de l'enregistrement.

Nom: Prénom: Date de naissance: Téléphone mobile: Adresse mail:

Ce formulaire sera réalisé avec des zones <input nommées (name="...") et chaque nom donné aux zones de saisie correspondra respectivement à chaque nom de colonne de la table, à savoir : name="nom", name="prenom" name="dnaiss", etc...

<form method="post" name="insc" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return verif()">
   Nom:<br/>
   <input type="text" name="nom" size="25"><br/>
   Prénom:<br/>
   <input type="text" name="prenom" size="25"><br/>
   Date de naissance:<br/>
   <input type="text" name="dnaiss" size="10"><br/>
   Téléphone mobile:<br/>
   <input type="text" name="telm" size="15"><br/>
   Adresse mail:<br/>
   <input type="text" name="mail" size="50"><br/>
   <input type="submit" name="submit" value="S'inscrire">
</form>

 

Javascript

Comme tout formulaire, celui-ci sera vérifié avant d'être soumis au seveur. Pour éviter du trafic réseau inutile et la surcharge du serveur il vaut mieux, en effet, vérifier la saisie effectuée côté client plutôt que sur le serveur. Cette vérification se fera avec un code javascript approprié et celui-ci reprendra comme ci-dessous des noms de variable correspondant aux mêmes noms de zones de saisie et noms de colonne de table MySQL : nom, prenom, dnaiss, telm, mail.

function verif() {

	// Récupération des valeurs du formulaire
	nom    = document.insc.nom.value;
	prenom = document.insc.prenom.value;
	dnaiss = document.insc.dnaiss.value;
	telm   = document.insc.telm.value;
	mail   = document.insc.mail.value;

	// ----- Vérification du nom
	// 1. vérification de la présence
	if(!nom) {
		alert('Veuillez indiquer votre nom de famille'); // Affichage d'un message d'erreur
		document.insc.nom.focus();  // positionnement sur le champ erroné
		return false;               // Retour sans envoi du formulaire
	}
	// 2. vérification de la validité de la saisie
	// Ci-dessous, fonction isValidText() (qui doit exister) de validation du champ
	// nom    = nom du champ à vérifier,
	// ca_nom = liste des caractères autorisés pour le champ nom,
	// 3, 25  = longueurs mini et maxi pour ce champ.
	// Cette fonction retourne OK ou le message de l'erreur rencontrée dans le champ et affecté à la variable msg
	msg = isValidText(nom, ca_nom, 3, 25);   // Fonction existante par ailleurs
	if(msg != 'OK') {                        // Si msg est différent de OK (donc erreur)
		alert('Nom: '+msg);              // Affichage du message d'erreur en question
		document.insc.nom.focus();       // positionnement sur le champ erroné (pour correction)
		return false;                    // Retour sans envoi du formulaire
	}

	// ----- Vérification des autres champs
	// ...

	return true;  // Retour avec envoi du formulaire
}

 

PHP

La saisie ayant été effectuée côté client, elle est supposée arriver correcte sur le serveur, prête à être traitée par le script approprié qui n'aura plus à affectuer certaines vérifications. La méthode utilisée pour la soumission du formulaire étant la méthode post (method="post"), tous les champs saisis seront récupérés dans la variable tableau $_POST.

Là encore, par souci de cohérence, on utilisera avec PHP les mêmes noms de variables que celles qui ont été utilisées pour le HTML, Javascript, MySQL : $nom, $prenom, $dnaiss, $telm, $mail.

<?php
if($_POST['submit']) {

	// Récupération des valeurs envoyées par le formulaire
	$nom    = strtoupper(trim($_POST['nom']));  // Nom mis en capitales
	$prenom = ucfirst(trim($_POST['prenom']));  // Prénom avec initiales en capitales
	$dnaiss = date2sql(trim($_POST['dnaiss'])); // Conversion de la date du format utilisateur au format MySQL
	$telm   = trim($_POST['telm']);             // N° de téléphone mobile
	$mail   = trim($_POST['mail']);             // Adresse mail

	// Suite du traitement...

	// Préparation de la requête MySQL
	$requete = "INSERT INTO gc_Clients (nom,prenom,dnaiss,telm,mail) "
	         . "VALUES('$nom','$prenom','$dnaiss','$telm','$mail');";
	// Insertion puis suite du script après soumission du formulaire...

}
// Suite du script (hors soumission du formulaire)...

 

Conseils

Cela peut sembler évident mais le respect des normes et la rigueur qu'on pourra s'imposer à les suivre vous évitera bien des erreurs. Quand il s'agira de faire référence à une donnée, en dehors du caractère $ qui précède les variables PHP, vous sauvez exactement comment l'appeler et l'écrire (en minuscules et au singulier). D'une part, ce sera beaucoup plus simple pour vous et d'autre part, ce le sera aussi pour la personne qui sera chargée d'assurer la maintenance ou l'évolution si ce n'est pas vous. Nul n'est irremplaçable ! ;-)

Il vient d'être dit : en minuscules et au singulier. Peu importe de suivre ces préconisations ou non car ce sont les miennes. Il importe seulement de trouver vos propres règles d'écriture : majuscules/minuscules, singulier/pluriel, utilisation ou non de l'underscore (_), (éviter toutefois le tiret qui est aussi un signe de soustraction), etc. Essayez seulement de trouver une logique à vos choix, ce sera le meilleur moyen de mémoriser l'appellation des données manipulées. Ce qui compte c'est de trouver votre style d'écriture et vos propres normes. Je vous assure, beaucoup d'aberrations, de fautes de frappes et des heures de recherches d'erreurs seront évitées...

 

Mise à jour le 15/06/2017 à 16:35:17