Examen PHP-MySQL - Espace d'authentification univ-brest.fr
... cet exercice est d'écrire un programme PHP permettant de convertir une
somme ... Une fois validées, ces données sont stockées dans une base de
données ...
Part of the document
|Examen PHP-MySQL |2h | |
|avec document | |24 /04/2009 |
Exercice :
1- L'objectif de cet exercice est d'écrire un programme PHP permettant de
convertir une somme saisie soit en euros soit en franc. Pour ce faire,
il faut passer par un formulaire comportant deux champs : une case
pour la somme en franc, et une autre pour la case en euros. Une fois
la saisie dans une des deux cases effectuée (bouton valider), la
conversion apparaît dans l'autre case.
Problème :
L'objectif est de ce problème est de créer une liste de diffusion, pour
laquelle les personnes intéressées peuvent s'inscrire en ligne via un
formulaire (nom, prénom, adresse mail). Une fois validées, ces données sont
stockées dans une base de données appelée DIFFUSION. La deuxième partie
consistera à utiliser ces données pour envoyer un mail à cette liste. Il
vous est demandé : 1. De donner un code PHP permettant de créer une base DIFFUSION.
2. D'écrire une fonction dans un fichier connexion.inc.php (qui servira
dans la suite de l'exercice) pour vous connecter au serveur MySQL, et
de sélectionner une base Les paramètres de la fonction seront au
nombre de 4 (nom de la base, nom du serveur, login et mot de passe). 3. De créer une table liste dans la base DIFFUSION toujours en PHP,
comportant 4 champs :
- un indice auto incrémenté,
- le nom de la personne,
- son prénom,
- son email.
Vous réfléchirez aux types de données à utiliser pour chacun des
champs et vous prendrez comme clé primaire l'indice. Vous n'oublierez
pas de vous connecter au serveur MySQL (fonction écrite question 2).
4. D'écrire le code permettant d'alimenter la base, pour cela vous
utiliserez un formulaire avec champs obligatoires.
5. Vous vérifiez notamment que le champ email, correspond bien à un
texte du style :
XXXXX@YYYY.fr
Sinon vous refusez l'inscription. 2-1 D'écrire alors le code PHP permettant d'envoyer un mail à la liste
entière stockée dans la base diffusion. Le sujet du mail et le corps du
message seront saisis par l'intermédiaire d'un formulaire.
Rappel : CREATE DATABASE 'nom_base' ;
< $idcom =mysql_connect (string $host, string $user, string $pass)
. $host : nom du serveur défini par l'hébergeur, il s'agit souvent
de la chaîne localhost
. $user : nom sous lequel l'utilisateur est autorisé à accéder au
serveur
. $pass : mot de passe associé à l'utilisateur
. Si la connexion n'est pas établit, cette fonction retourne FALSE
. < Sélection d'une base : $idbase=@mysql_select_db($base);
. CREATE TABLE `note` (`indice` TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY
,`nom` VARCHAR( 10 ) NOT NULL , `prenom` ....); Insertion de données :
INSERT INTO `etudiant` ( `id_etu` , `nom` , `prenom` , `date_naissance` ,
`adresse` , `ville` , `mail` , `moyenne1` ) VALUES (NULL , 'lagaffe',
'gaston', '1950', 'chez franklin', 'paris', NULL , '0');
< Lecture du résultat d'une requête $requete
$result=@mysql_query($requete,$idcom); < Méthode 2
. récupération du nombre de colonnes et de lignes:
int mysql_num_fields($result)
int mysql_num_rows ($result)
. récupération des intitulés des champs de la table :
string mysql_field_name ($result, int field_index)
. récupération du contenu d'une ligne:
array mysql_fetch_row ($result) < libération de l'espace mémoire occupé si plus besoin des données:
int mysql_free_result (resource result_identifier) Instruction de sélection :
< toutes les lignes :
SELECT * FROM `etudiant`
< des villes :
SELECT ville FROM `etudiant`
< affichage des villes sans doublon :
SELECT DISTINCT ville FROM `etudiant`
< affichage des villes sans doublon et ordonnées (ASC croissant ou DESC
décroissant):
SELECT DISTINCT ville FROM `etudiant` ORDER BY ville ASC
< des id_etu, nom, prenom :
SELECT id_etu,nom,prenom FROM `etudiant`
< restrition du nombre de ligne
SELECT nom,prenom FROM etudiant WHERE `date_naissance`>1970
< Forme générale :
SELECT col1,col3, ... FROM table WHERE condition Modification de données dans la base
< Utilisation de l'instruction UPDATE:
UPDATE `table` SET `champ` = 'valeur' WHERE condition
< Le langage : Les formulaires
Exemple :
. Action : URL cible
. Method : dans la pratique GET ou POST
< Rappel en html :
. Boutons d'action
. Entrées textuelles
. Boites de saisie
texte... < L'action du formulaire est redirigé vers un script qui peut être le
fichier formulaire lui-même. Dans ce cas, on peut spécifier le
paramètre action comme suit : action=""
< Récupération des données saisies : lorsque l'utilisateur clique sur le
bouton envoi, une requête HTTP est envoyée au serveur vers le script
action,cette requête contient toutes les association entre les noms,
les champs et leur valeur. Cette requête se trouve dans l'entête HTTP
si la méthode POST est utilisée, ou dans l'URL si il s'agit de la
méthode GET.
< Depuis PHP 4.1, ces valeurs sont contenues sur le serveur dans des
tableaux associatifs dits superglobaux $_POST ou $_GET. Les clés de
ces tableaux sont les noms associés aux champs par l'attribue name. < Vous avez la possibilité d'envoyer un mail du serveur vers le poste
client par l'utilisation de la fonction mail() qui prend comme
paramètres :
. $dest : @ email du destinataire
. $objet : chaine de caractère spécifiant l'objet du mail
. $texte : le contenu du mail
. $entete : contient les entêtes nécessaires à l'envoi d'email
. Exemple:
mail("sysadmin",
"*** alerte ***",
"Aïe aïe aïe !",
"Content-Type: text/html") ; <