Vous êtes sur la page 1sur 9

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>";

?>

Vous aimerez peut-être aussi