problème "No database selected"
Posté : 14 août 2008, 14:07
bonjour,
j'ai beau cherché sur les forum une solution à mon problème , mais en vain
voici mon code :
fichier : add_user.php :
et le fichier : register_new.php :
et le fichier fonctions.php :
le fichier create.php qui permet de créer ma base et mes tables :
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
j'ai beau cherché sur les forum une solution à mon problème , mais en vain
voici mon code :
fichier : add_user.php :
Code : Tout sélectionner
<?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 :
Code : Tout sélectionner
<?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;
} */
?>
Code : Tout sélectionner
<?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 :
Code : Tout sélectionner
<?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