"No database selected"

Résolu/Fermé
batoule80 Messages postés 8 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 17 août 2008 - 14 août 2008 à 17:57
batoule80 Messages postés 8 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 17 août 2008 - 16 août 2008 à 11:57
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%">&nbsp;</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>&nbsp;</td>
 
<td>
<a class="toolbar" >
<input type='submit' name='apply' value='' class='bt_apply'/>
appliquer</a> <br> </td>
<td>&nbsp;</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&eacute;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

2 réponses

batoule80 Messages postés 8 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 17 août 2008
16 août 2008 à 02:11
salut,
j'ai pu réglé le problème , j'ai désinstallé wamp et je suis passée à easyphp "problème de configuration" concernant l'affichage des erreurs
voici le nouveau message d'erreur :

Notice: Undefined variable: dbName in c:\program files\easyphp1-8\www\help desk\administrateur\add_user.php on line 50
No database selected

en effet dans ma fonction :

Function db_connect()
{
    
    $dbHost = "localhost";
    $dbUser = "root";
    $dbPass = "";
global $dbHost,$dbUser, $dbPass,$dbName;     $dbName = "db_helpdesk";
    $result = mysql_connect($dbHost,  $dbUser, $dbPass) ;
if (!$result)
   die(mysql_error());
$select=  mysql_select_db($dbName,$result);
if (!$select) 
 die (mysql_error());
 
 else
   return $result;  
 
}
 
 



les variables déclarées dans cette fonction ne sont accéssible qu'à l'intérieur de cette meme fonction alors il suffisait d'ajouter la ligne suivante pour y accéder depuis n'importe quel fichier :

global $dbHost,$dbUser, $dbPass,$dbName; 



voilà et un problème de plus résolu
0
Plusieurs points:

deja essaie de ne JAMAIS mélanger dans un meme fichier du php avec du html c'est vraiment la pire des erreurs a faire, utilises du templating (il en existe pleins, genre smarty)


2: Rend le code plus propre en programmant en objet, et en creant des classes, ca evite souvent de passer par des variables globales.

A la vu de ton code tu dois bien te prendre la tete a debugguer ;-)

bon courage
0
batoule80 Messages postés 8 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 17 août 2008
16 août 2008 à 11:57
bonjour,

en effet, ma manière de cofidier est loin d'etre propre vue que je suis novice en programmation php/mysql , mais je vais m'améliorer dans les projets à venir " c'est juste une question de temps et de volonté surtout" .

pour le moment je me contenterai de la programmation procédurale , la programmation objet offre beaucoup d'avantages tel que la réutilisation du code ... mais pour le moment je ne la maitrise pas vraiment .

merci texouille d'avoir pris un peu de temps pour me donner ces conseils que sans doute je vais les prendre en considération prochainement

cordialement.
0