Faculté des sciences Dhar El Mahraz Année universitaire : 2017 - 2018
Licence professionnelle SIGL
Travaux pratiques N°4, Web dynamique
On utilisant l’outil PhpMyAdmin, créer la base de donnée « scott », les tables seront
générées automatiquement en important le schéma relationnel « scott.sql ».
Connectez-vous à cette base de données.
Exercice 1 :
Réaliser un formulaire contenant un nom d’utilisateur et un mot de passe. Vérifier que le
compte utilisateur existe dans la table « passwd ». Un message (un div situé au haut du
formulaire) est apparu affichant une authentification réussite où une connexion
échouée.
Correction: Exercice N°1
<form action="" method="POST">
<table>
<tr align="center">
<td colspan=2><div id="message"
style="color:white;background:red; border-radius:5px; font-size:18px;"></div></td>
</tr>
<tr>
<td> <label for="login">Nom d'utilisateur:</label> </td>
<td> <input type="text" id="login" name="login"/> </td>
</tr>
<tr>
<td> <label for="pass">Mot de passe</label> </td>
<td> <input type="password" id="pass" name="pass"/> </td>
</tr>
<tr align="left">
<td colspan=2><input type="submit"><input type="reset"></td>
</tr>
<tr align="center">
<td colspan=2><a href="traitement.php?new=0">Créer un nouveau
utilisateur</a></td>
</tr>
</table>
</form>
<script>
$('#message').hide();
</script>"
<?php
function database_open($db) {
$host = '127.0.0.1';
$user = 'root';
$pass = '';
$acces = new mysqli($host, $user ,$pass ,$db);
$errnum=mysqli_connect_errno();
if ($errnum)
{ $errmsg=mysqli_connect_error();
echo "Connexion impossible:$errmsg";
exit();
return $acces;
}
function database_close($link) {
mysql_close($link);
if(isset($_POST['login']) && !empty($_POST['login']) && isset($_POST['pass']) &&
!empty($_POST['pass'])){
$db=database_open('scott');
$login=$db->real_escape_string(htmlspecialchars($_POST['login']));
$pass=$db->real_escape_string(htmlspecialchars($_POST['pass']));
$req=$db->query("select count(*) from passwd where login='$login' and
pass='$pass'");
$data=$req->fetch_row();
if($data[0]==1){
echo "
<script>
$('#message').html('Vous êtes connecté');
$('#message').slideDown(1000);
</script>";
}else{
echo "
<script>
$('#message').html('Connection échouée!!!');
$('#message').slideDown(1000);
</script>";
?>
Exercice 2 :
Ajouter au formulaire de l’exercice 1 un lien hypertexte qui permet d’ajouter un nouveau
compte. Ce lien va vous diriger vers une page qui vous permettra de créer un nouvel employé
dans la table « emp », et par conséquant, un nouveau compte dans la table « passwd ».
1- Créer un fichier comportant une fonction « list_option » qui permet de créer une liste.
Cette fonction accepte comme arguments : un tableau des éléments de la liste et le
nom de la liste
2- Créer un fichier comportant une fonction « list_modifiable » qui permet de créer une
liste modifiable en utilisant le « datalist » de HTML5. Cette fonction accepte comme
arguments : un tableau des éléments de la liste et le nom de la liste
3- Créer une interface/formulaire permettant de saisir les données du nouvel employé (le
login et le mot de passe sont le nom de l’employé et son numéro).
Correction: Exercice 2
<?php
require("list_modifiable.php");
require("list_option.php");
function database_open($db) {
$host = '127.0.0.1';
$user = 'root';
$pass = '';
$acces = new mysqli($host, $user ,$pass ,$db);
$errnum=mysqli_connect_errno();
if ($errnum)
{ $errmsg=mysqli_connect_error();
echo "Connexion impossible:$errmsg";
exit();
return $acces;
function database_close($link) {
mysql_close($link);
$db=database_open('scott');
function creer_nouveau(){
?>
<form method="post" action="">
<table>
<tr>
<td> <label for="nom">Nom d'employé:</label> </td>
<td> <input type="text" id="nom" name="nom"/> </td>
</tr>
<tr>
<td> <label for="n">N° employé:</label> </td>
<td> <input type="text" id="n" name="n"/> </td>
</tr>
<tr>
<td> <label for="job">Fonction d'employé:</label> </td>
<td> <input type="text" id="job" name="job" list="job"/> </td>
<?php
$db=database_open('scott');
$req=$db->query("select distinct(job) from emp");
$tableau=array();
while($data=$req->fetch_row()){
$tableau[]=$data[0];
list_modifiable($tableau,"job");
?>
</tr>
<tr>
<td> <label for="chef">Chef:</label> </td>
<td>
<?php
$db=database_open('scott');
$req=$db->query("select distinct(ename) from emp");
$tableau=array();
while($data=$req->fetch_row()){
$tableau[]=$data[0];
list_option($tableau,"chef");
?></td>
</tr>
<tr>
<td> <label for="d">Date d'embauche:</label> </td>
<td> <input type="date" id="d" name="d"
placeholder="JJ/MM/AAAA"/> </td>
</tr>
<tr>
<td> <label for="sal">Salaire de l'employé:</label> </td>
<td> <input type="text" id="sal" name="sal"/> </td>
</tr>
<tr>
<td> <label for="dept">Département:</label> </td>
<td>
<?php
$db=database_open('scott');
$req=$db->query("select distinct(dname) from dept");
$tableau=array();
while($data=$req->fetch_row()){
$tableau[]=$data[0];
list_option($tableau,"dept");
?> </td>
</tr>
<tr>
<tr align="left">
<td colspan=2><input type="submit" value="Ajouter"><input type="reset"
value="Effacer"></td>
</tr>
</table>
</form>
<?php
if (isset($_GET['new'])){
if($_GET['new']==0){
creer_nouveau();
if (isset($_POST['nom'])){
$nom=$_POST['nom'];
$num=$_POST['n'];
$job=$_POST['job'];
$chef=$_POST['chef'];
$sal=$_POST['sal'];
$dept=$_POST['dept'];
$dat=$_POST['d'];
$db=database_open("scott");
$req=$db->query("select empno from emp where ename='$chef'");
$mgr=$req->fetch_row()[0];
$req=$db->query("select deptno from dept where dname='$dept'");
$ndept=$req->fetch_row()[0];
$dat=strtotime($dat);
$dat1=date('y-m-d',$dat);
$sql="insert into emp values($num,'$nom','$job',$mgr,'$dat1',$sal,NULL,$ndept)";
$req=$db->query($sql);
$sql="insert into passwd values('$nom','$num')";
$req=$db->query($sql);
}}}
?>
Fichier liste_modifiable.php
<?php
function list_modifiable($tableau,$name){
echo "<datalist name='$name' id='$name'>";
for($i=0;$i<count($tableau);$i++){
echo "<option value='" . $tableau[$i]. "'>" . $tableau[$i]. "</option>";
echo "</datalist>";
}
?>
Fichier list_option.php
<?php
function list_option($dept,$name){
echo "<select name='$name' id='$name'>";
for($i=0;$i<count($dept);$i++){
echo "<option value='" . $dept[$i]. "'>" . $dept[$i]. "</option>";
echo "</select>";
?>