Bonjour,
j'ai beau cherché sur les forum une solution à mon problème , mais en vain
voici mon code :
fichier : add_user.php :
<?php
// connexion à la base
include_once('fonctions.php');
$result = db_connect();
if (!$result)
die(mysql_error());
// selection de la base de données$select = @mysql_select_db($dbName,$result);
if (!$select)
die(mysql_error());
?>
<form action="register_new.php" method="post" >
<table width="100%" class="menubar" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="menudottedline" width="40%"> </td>
<td class="menudottedline" align="right">
<table cellpadding="0" cellspacing="0" border="0" id="toolbar">
<tr valign="middle" align="center">
<td>
<a class="toolbar" >
<input type='submit' name='save' value='' class='bt_sauver' />sauver</a> <br>
</td>
<td> </td>
<td>
<a class="toolbar" >
<input type='submit' name='apply' value='' class='bt_apply'/>
appliquer</a> <br> </td>
<td> </td>
<td>
<a class="toolbar">
<input type='submit' name='cancel' value='' class='bt_cancel'/><br>
Annuler</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br />
<table class="adminheading">
<tr>
<th class="menus"> Utilisateur: <small>Ajouter</small> </th>
</tr>
</table>
<table width="100%" >
<tr>
<td width="60%" valign="top">
<table class="adminform">
<tr>
<th colspan="2">
Détails utilisateur </th>
</tr>
<tr>
<td >
Nom*:</td>
<td>
<input type="text" name="nom" class="inputbox" size="40" value="<?=stripslashes($nom); ?>" maxlength="50"> </td>
</tr>
<tr>
<td>
Prénom*: </td>
<td>
<input type="text" name="prénom" class="inputbox" size="40" value="<?=stripslashes($prénom); ?>" maxlength="25"> </td>
<tr>
<td>Adresse E-mail* :</td>
<td><input type="text" name="email" class="inputbox" size="40" value="<?=stripslashes($email); ?>" maxlength="25"> </td>
</tr>
<tr>
<td>Login :</td>
<td><input type="text" name="login" class="inputbox" size="40" value="<?=stripslashes($login); ?>" maxlength="50"></td>
</tr>
<tr>
<td>Mot de passe* : </td>
<td><input class="inputbox" type="password" name="passwd" size="40" value="" maxlength="25"></td>
</tr>
<tr>
<td> Confirmer le mot de passe: </td>
<td><input class="inputbox" type="password" name="passwd2" size="40" value=""> </td>
</tr>
<tr>
<td>Numero de téléphone : </td>
<td><input class="inputbox" type="text" name="num_téléphone" size="40" value="<?=stripslashes($num_téléphone); ?>"></td>
</tr>
<tr>
<td>Numero de portable :</td>
<td><input class="inputbox" type="text" name="num_portable" size="40" value="<?=stripslashes( $num_portable); ?>"></td>
</tr>
<tr>
<td >Poste interne : </td>
<td><input class="inputbox" type="text" name="poste_interne" size="40" value="<?=stripslashes($poste_interne); ?>"></td>
</tr>
<tr>
<td> Fax : </td>
<td><input class="inputbox" type="text" name="fax" size="40" value="<?=stripslashes($fax); ?>"></td>
</tr>
<tr>
<td valign="top">Adresse : </td>
<td><textarea cols="60" rows="10" name="adresse" class="inputbox"></textarea></td>
</tr>
<tr>
<td >Division* : </td>
<? $Result= mysql_query("Select * from division");
$nb = mysql_num_rows($Result);
$ListDiv = '<option value="0">Toutes Divisions</option>';
while ($data = mysql_fetch_row($Result))
{
echo '<option value="'.$data['id_division'].'">'.$data[' division'].'</option>';
}
?>
<td><select name="id_division" id="id_division">
<?=$ListDiv?>
</select>
</td>
</tr>
<tr>
<td>profession : </td>
<td><input class="inputbox" type="text" name="profession" size="40" value="<?=stripslashes($profession); ?>"></td>
</tr>
</table> </td>
</tr>
</table>
</form>
et le fichier : register_new.php :
<?php
// Inclut le fichier de fonctions pour cette application.
require_once('fonctions.php');
// création des variables aux noms abrégés
$nom = isset($_POST[ 'nom' ]) ? $_POST[ 'nom' ] : '';
$prénom = isset($_POST['prénom']) ? $_POST['prénom'] : '';
$email = isset($_POST[ 'email']) ? $_POST[ 'email'] : '';
$login = isset($_POST[ 'login']) ?$_POST[ 'login'] : '';
$passwd = isset($_POST[ 'passwd']) ?$_POST[ 'passwd'] : '';
$passwd2 = isset($_POST[ 'passwd2']) ? $_POST[ 'passwd2'] : '';
$num_téléphone = isset($_POST[ 'num_téléphone'])? $_POST[ 'num_téléphone' ]: '';
$num_portable = isset($_POST[ 'num_portable' ])? $_POST[ 'num_portable' ]: '';
$poste_interne = isset($_POST[ 'poste_interne'])? $_POST[ 'poste_interne' ]: '';
$fax = isset($_POST[ 'fax' ])? $_POST[ 'fax' ]: '';
$adresse = isset($_POST[ 'adresse']) ? $_POST[ 'adresse' ]: '';
$division =isset($_POST[ 'division']) ? $_POST[ 'division' ]: '';
$profession =isset($_POST[ 'profession']) ? $_POST[ 'profession' ]: '';
$loginAttempts =isset($_POST[ 'loginAttempts']) ? $_POST[ 'loginAttempts' ]: '';
// Démarrage d'une session dont nous aurons besoin plus tard.
session_start();
// Vérifie les formulaires remplis.
if((isset($_POST["apply"]))||(isset($_POST["save"])))
{
$verif=true;
// connexion à la base
$result = db_connect();
if (!$result)
die(mysql_error());
// selection de la base de données
$select = @mysql_select_db($dbName,$result);
if (!$select)
die(mysql_error());
$res=mysql_query("select * from hd_utilisateur where username='$login'");
$num=mysql_num_rows($res);
if (!$num)
die(mysql_error());
if (!filled_out($HTTP_POST_VARS))
{
$verif=false;
echo ('<font color="red">Attention, veuillez remplir tout les champs </font>');
//on recharge la page :le meme formulaire : appliquer cette instruction ailleurs
header("Location:add_user.php") ;
}
// L'adresse e-mail n'est pas valide.
elseif (!valid_email($email))
{
$verif=false;
echo ('Entrez une adresse e-mail valide!!');
header("Location:add_user.php") ;
}
elseif($num >=1)
{
$verif=false;
echo "Désolé, ce login existe déja choisir un autre login S.V.P ";
}
//Les mots de passe ne sont pas identiques.
elseif ($passwd != $passwd2)
{
$verif=false;
echo ('Les mots de passes ne correspondent pas');
header("Location:add_user.php") ;
}
// Vérifie lalongueur du mot de passe.
//elseif ((strlen($passwd)<6 || (strlen($passwd) >16))
//{
// $verif=false;
//echo ('Votre mot de passe doit être compris entre 6 et 16 caractères');
// header("Location:add_user.php") ;
//}
// Vérifie si la longueur du nom d'utilisateur est ok.
elseif (strlen($login)>16)
{
$verif=false;
echo ('Votre nom d\'utilisateur doit etre inférieur à 16 caractères');
//exit;
}
elseif (!ereg ("[a-zA-Z]", $nom, $regs) or ereg ("[0-9]", $nom, $regs))
{
$verif=false;
echo "Format de nom invalide : $nom";
}
elseif (!ereg ("[a-zA-Zéè'à]", $prenom, $regs) or ereg ("[0-9]", $prenom, $regs))
{
$verif=false;
echo "Format de prenom invalide : $prenom";
}
elseif (!ereg ("[0-9/-:+-]", $num_téléphone, $regs) or ereg ("[a-zA-Z]", $num_téléphone, $regs))
{
$verif=false;
echo "Format de telephone invalide : $num_téléphone";
}
elseif (!ereg ("[0-9/-:+-]", $num_portable, $regs) or ereg ("[a-zA-Z]", $num_portable, $regs))
{
$verif=false;
echo "Format de telephone invalide : $num_portable";
}
elseif (!ereg ("[0-9/-:+-]", $poste_interne, $regs) or ereg ("[a-zA-Z]", $poste_interne, $regs))
{
$verif=false;
echo "Format de telephone invalide : $poste_interne";
}
elseif (!ereg ("[0-9/-:+-]", $fax, $regs) or ereg ("[a-zA-Z]", $fax, $regs))
{
$verif=false;
echo "Format de fax invalide : $fax";
}
elseif(strlen($adresse)>255)
{
$verif=false;
echo "Format d'adresse invalide : elle a dépassé 255 caractères";
}
//Aucun champ n'est vide, on peut enregistrer dans la table
else
{
if($verif)
{
// connexion à la base
$result = db_connect();
if (!$result)
die(mysql_error());
// selection de la base de données
$select = @mysql_select_db($dbName,$result);
if (!$select)
die(mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO hd_utilisateur (nom, prenom,email, username, passwd,telephone,user_mobile,poste_interne,fax,adresse,division,profession) VALUES('$nom','$prénom','$email','$login','$passwd','$num_téléphone','$num_portable','$poste_interne','$fax ', '$adresse ','$division','$profession ')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !');
mysql_close();
// on affiche le résultat pour le visiteur
echo 'Vos données ont été ajoutées.';
} }
}
// Tente d'enregistrer l'uitilsateur.
// Cette fonction peut également lever une exception.
//register($login, $email, $passwd);
// Enregistre la variable de session.
// $_SESSION['valid_user'] = $login;
//if username or password is blank, send to errorlogin.html
//if ((!$username) || (!$password))
//{
// header("Location:erreur.php");
// exit;
//}
// {
/*function to check the length of the requested password
function password_check($min_pass, $max_pass, $pass)
{
$valid = "yes";
if ($min_pass > strlen($pass) || $max_pass < strlen($pass))
{
$valid = "no";
}
return $valid;
} */
?>
et le fichier fonctions.php :
<?php
//require_once("db_connect.php");
/*
-------------------------------------------------------------------------------------
*Fonction qui établit la connexion à la base de données MySQL
-----------------------------------------------------------------------------------------
*/
Function db_connect()
{
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$dbName = "db_helpdesk";
$result = @mysql_connect($dbHost, $dbUser, $dbPass) ;
$select= @mysql_select_db($dbName,$result);
if (!$select)
die (mysql_error());
if (!$result)
die(mysql_error());
else
return $result;
}
// ALL PATHS BELOW ARE RELATIVE TO THE DIRECTORY WHERE YOU HAVE INSTALLED vAuthenticate
//$resultpage = "login1.php"; // THIS IS THE PAGE THAT WOULD CHECK FOR AUTHENTICITY
//$admin = "administrateur/accueil.php"; // THIS IS THE PATH TO THE ADMIN INTERFACE
//$success = "administrateur/index.php"; // THIS IS THE PAGE TO BE SHOWN IF USER IS AUTHENTICATED
//$failure = "erreur.php"; // THIS IS THE PAGE TO BE SHOWN IF USERNAME-PASSWORD COMBINATION DOES NOT MATCH
/*
-------------------------------------------------------------------------------------
*Fonction qui vérifie que le formulaire a bien été rempli
-----------------------------------------------------------------------------------------
*/
function filled_out($form_vars)
{
// Teste si chaque variable contient une valeur.
foreach ($form_vars as $key => $value)
{
if (!isset($key)||($value == ''))
return false;
}
return true;
}
/*
-------------------------------------------------------------------------------------
*Fonction qui vérifie que l'adresse e-mail est valide
-----------------------------------------------------------------------------------------
*/
function valid_email($address)
{
// Vérifie que l'adresse e-mail est valide.
if (ereg('^[a-zA-Z0-9 \._\-]+@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]+$', $address))
return true;
else
return false;
}
/*
-------------------------------------------------------------------------------------
*Fonction login() - vérifie les informations d'ouverture de session d'un utilisateur
-----------------------------------------------------------------------------------------
*/
Function login($login, $password)
// Vérifie le nom de l'utilisateur et son mot de passe avec
// la base de données.
// Si c'est bon, on retourne le type d'ouverture de session.
// Sinon on retourne false.
{
// Connexion à la base de données.
$conn = db_uconnect();
if (!conn){
echo"Echec de la connexion ";
return 0;
}
$query = "select username from hd_utilisateur
where username = '$login'
and passwd = sha1('$password')";
$result = mysql_query($query);
if(!$result){
echo"Impossible d'éxécuter la requète, réessayez plus tard";
return false;
}
if (mysql_num_rows($result)<1)
return false;
$row = $result->fetch_array();
if ($row[0] =='admin')
{
return 'admin';
header("location:accueil.php");
}
else
{
return 'normal';
header("location:index1.php");
}
}
function Login_User(){
//global $_SESSION;
global $username, $password, $submit;
if(isset($_POST['submit']))
{
$login = $_POST['login'];
$password = $_POST['passwd'];
if(!filled_out($_POST))
{
echo"Vous n'avez pas remplis tous les champs";
include("../index.php");
exit;
}
if(login($login, $passwd))
{
$_SESSION['valid_user'] = $username;
if ($row[0] =='admin')
{
return 'admin';
header("location:accueil.php");
}
else
{
return 'normal';
header("location:index1.php");
}
exit;
}
else
{
echo"Le nom et le mot de passe sont incorrects";
include("../index.php");
exit;
}
}
else
include("../index.php");
}
?>
le fichier create.php qui permet de créer ma base et mes tables :
<?php
//include("../connect.php");
$link = "CREATE DATABASE db_helpdesk";
$res = mysql_query($link) or die(mysql_error());
mysql_select_db("db_helpdesk");
$link = "
CREATE TABLE `hd_utilisateur` (
`id_user` int(11) NOT NULL auto_increment PRIMARY KEY,
`nom` text NOT NULL,
`prenom` text NOT NULL,
`email` varchar(255) NOT NULL default '',
`username` varchar(16) NOT NULL,
`passwd` varchar(50) NOT NULL default '',
`telephone` varchar(50) NOT NULL default '',
`user_mobile` varchar(50) NOT NULL default '',
`poste_interne` varchar(50) NOT NULL default '',
`fax` varchar(50) NOT NULL default '',
`adresse` varchar(200) NOT NULL default '',
`profession` text NOT NULL,
`fk_division` int(11),
`user_type` text NOT NULL
) AUTO_INCREMENT=1;" ;
$res = mysql_query($link) or die(mysql_error());
$link = "
CREATE TABLE `hd_division` (
`id_division` int(11) NOT NULL auto_increment PRIMARY KEY,
`division` text NOT NULL,
`fk_centre_cout` int(11)
) AUTO_INCREMENT=1;";
$res = mysql_query($link) or die(mysql_error());
$link = "
CREATE TABLE `hd_centre_cout` (
`id_centre_cout` int(11) NOT NULL auto_increment PRIMARY KEY
) AUTO_INCREMENT=1;";
$res = mysql_query($link) or die(mysql_error());
$link = "
CREATE TABLE `hd_incident` (
`id_incident` int(11) NOT NULL auto_increment PRIMARY KEY,
`fk_type_incident` varchar(200) NOT NULL default '',
`fk_sous_type_incident` varchar(200) NOT NULL default '',
`fk_statut` int(11),
`fk_user` int(11),
`Date_creation` date,
`Date_échéance` date ,
`Date_fermeture` date ,
`objet` varchar(200) NOT NULL default '',
`message` varchar(200) NOT NULL
)AUTO_INCREMENT=1;";
$res = mysql_query($link) or die(mysql_error());
$link = "
CREATE TABLE `hd_statut` (
`id_statut` int(11) NOT NULL auto_increment PRIMARY KEY,
`nom_statut` text NOT NULL,
`description` text NOT NULL
)AUTO_INCREMENT=1;";
$res = mysql_query($link) or die(mysql_error());
$link = "
CREATE TABLE `hd_type_incident` (
`id_type_incident` int(11) NOT NULL auto_increment PRIMARY KEY,
`description` text NOT NULL,
`fk_user` int(11)
)AUTO_INCREMENT=1;";
$res = mysql_query($link) or die(mysql_error());
$link = "
CREATE TABLE `hd_sous_type_incident` (
`id_sous_type_incident` int(11) NOT NULL auto_increment PRIMARY KEY,
`description` text NOT NULL,
`fk_type_incident` int(11),
`fk_user` int(11)
)AUTO_INCREMENT=1;";
$res = mysql_query($link) or die(mysql_error());
if ($res)
die("<p>Base de données créee avec succés . SVP supprimez ce fichier pour des raisons de sécurité .</p>");
?>
une question qui m'intrigue concernant les clés étrangères , pourai-je ajouter le type innodb dans le fichier create.php pour bien les gérer ? si oui au niveau de quelles tables ? est_ce celles contenant les clés étrangères ? et comment l'ajouter ?
désolée si vous trouvez mon code pas trés propre " je suis novice"
merci pour tous ceux qui prondront le temps pour lire mon message et de me dire où j'ai commis des erreurs
Configuration: Windows XP
Firefox 2.0.0.14